From fd68222ebaa08f49fe8a2c3657b0be9b77c9b0ca Mon Sep 17 00:00:00 2001 From: Nilesh Londhe Date: Fri, 14 Oct 2016 09:58:40 -0700 Subject: [PATCH] docker --- .dockerignore | 10 +++++++ .env | 2 ++ Dockerfile | 10 +++++++ Gemfile | 2 +- README-FOR-DOCKER.md | 14 ++++++++++ app.json | 27 ++++++++++++------- app/controllers/api/v1/events_controller.rb | 8 +++--- db/schema.rb | 3 +++ docker-compose.override.yml | 9 +++++++ docker-compose.yml | 29 +++++++++++++++++++++ 10 files changed, 99 insertions(+), 15 deletions(-) create mode 100644 .dockerignore create mode 100644 .env create mode 100644 Dockerfile create mode 100644 README-FOR-DOCKER.md create mode 100644 docker-compose.override.yml create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..55889ae --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +.git* +db/*.sqlite3 +db/*.sqlite3-journal +log/* +tmp/* +Dockerfile +.env +docker-compose.yml +docker-compose.override.yml +README.rdoc diff --git a/.env b/.env new file mode 100644 index 0000000..6bda8a4 --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +RAILS_ENV=development +PORT=8080 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6c47017 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +# FROM heroku/ruby + +FROM ruby:2.1.10-slim +RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs libsqlite3-dev +RUN mkdir /myapp +WORKDIR /myapp +ADD Gemfile /myapp/Gemfile +ADD Gemfile.lock /myapp/Gemfile.lock +RUN bundle install +ADD . /myapp diff --git a/Gemfile b/Gemfile index efa5516..9c0b492 100644 --- a/Gemfile +++ b/Gemfile @@ -36,4 +36,4 @@ group :doc do gem 'sdoc', require: false end -ruby "2.1.3" +ruby "2.1.10" diff --git a/README-FOR-DOCKER.md b/README-FOR-DOCKER.md new file mode 100644 index 0000000..4ec1a53 --- /dev/null +++ b/README-FOR-DOCKER.md @@ -0,0 +1,14 @@ +#### Clone this first and then + + docker-compose up + + firefox http://localhost:8080 + +#### Docker total cleanup + + docker rm -f $(docker ps -aq) + docker rmi -f $(docker images -aq) + docker volume rm $(docker volume ls -q) + docker ps -a + docker images + docker volume ls diff --git a/app.json b/app.json index e2badd6..31fa320 100644 --- a/app.json +++ b/app.json @@ -1,11 +1,18 @@ { - "name": "EventKit Rails", - "description": "An open source project for consuming notifications from SendGrid's Event Webhook.", - "repository": "https://github.com/sendgrid/eventkit-rails", - "logo": "https://sendgrid.com/brand/sg-logo-300.png", - "keywords": ["sendgrid", "eventkit", "webhook"], - "scripts": { - "postdeploy": "bundle exec rake db:migrate\nbundle exec rake db:seed" - }, - "addons": ["heroku-postgresql"] -} \ No newline at end of file + "name": "EventKit Rails", + "description": "An open source project for consuming notifications from SendGrid's Event Webhook.", + "repository": "https://github.com/sendgrid/eventkit-rails", + "logo": "https://sendgrid.com/brand/sg-logo-300.png", + "keywords": [ + "sendgrid", + "eventkit", + "webhook" + ], + "image": "ruby:2.1.3-slim", + "scripts": { + "postdeploy": "bundle exec rake db:migrate\nbundle exec rake db:seed" + }, + "addons": [ + "heroku-postgresql" + ] +} diff --git a/app/controllers/api/v1/events_controller.rb b/app/controllers/api/v1/events_controller.rb index 3998380..85f5106 100644 --- a/app/controllers/api/v1/events_controller.rb +++ b/app/controllers/api/v1/events_controller.rb @@ -16,7 +16,7 @@ def index if params[:like] then if params[:raw] then # WILD CARD SEARCH - events = Event.where(["raw LIKE ?", "%#{query[:raw]}%"]) + events = Event.where(["raw ILIKE ?", "%#{query[:raw]}%"]) elsif params[:detailed] then # DETAILED SEARCH details = JSON.parse params[:detailed] @@ -35,14 +35,14 @@ def index elsif key == "additional_arguments" hash = JSON.parse value hash.each do |k, v| - statement_array << "additional_arguments LIKE ?" + statement_array << "additional_arguments ILIKE ?" value_array << "%\"#{k}\":\"#{v}\"%" - statement_array << "additional_arguments LIKE ?" + statement_array << "additional_arguments ILIKE ?" value_array << "%\"#{k}\":#{v}%" end else - statement_array << "\"#{key}\" LIKE ?" + statement_array << "\"#{key}\" ILIKE ?" value_array << "%#{value}%" end end diff --git a/db/schema.rb b/db/schema.rb index 8d18815..22700d9 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -13,6 +13,9 @@ ActiveRecord::Schema.define(version: 20141014135702) do + # These are extensions that must be enabled in order to support this database + enable_extension "plpgsql" + create_table "events", force: true do |t| t.integer "timestamp", limit: 8 t.text "event" diff --git a/docker-compose.override.yml b/docker-compose.override.yml new file mode 100644 index 0000000..7a83a9c --- /dev/null +++ b/docker-compose.override.yml @@ -0,0 +1,9 @@ +web: + volumes: + - '.:/app/user' + environment: + RAILS_ENV: "${RAILS_ENV}" + +shell: + environment: + RAILS_ENV: "${RAILS_ENV}" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c4bb134 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,29 @@ +web: + build: . + command: 'bash -c ''bundle exec unicorn -p $PORT -c ./config/unicorn.rb''' + working_dir: /app/user + environment: + PORT: 8080 + DATABASE_URL: 'postgres://postgres:@herokuPostgresql:5432/postgres' + ports: + - '8080:8080' + links: + - herokuPostgresql + restart: always + +shell: + build: . + command: 'bundle exec rake db:migrate' + working_dir: /app/user + environment: + PORT: 8080 + DATABASE_URL: 'postgres://postgres:@herokuPostgresql:5432/postgres' + ports: + - '8081:8080' + links: + - herokuPostgresql + volumes: + - '.:/app/user' +herokuPostgresql: + image: postgres + restart: always