From cd94b9901d22d98f91cad28dc5adb6309e23da8e Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Wed, 11 Jul 2018 13:23:17 +0000 Subject: [PATCH 1/5] Updating to compose api version 3.3 --- deploy/deploy-test.sh | 3 +- deploy/docker-compose-common.yml | 25 ---- deploy/docker-compose-prod-full-stack.yml | 88 ++++++++----- deploy/docker-compose-test.yml | 154 ++++++++++++++-------- 4 files changed, 154 insertions(+), 116 deletions(-) delete mode 100644 deploy/docker-compose-common.yml diff --git a/deploy/deploy-test.sh b/deploy/deploy-test.sh index c9a59bf..d6ab59b 100755 --- a/deploy/deploy-test.sh +++ b/deploy/deploy-test.sh @@ -1,7 +1,8 @@ #!/bin/bash project_dir="$(dirname $( dirname $(readlink -f ${BASH_SOURCE[0]})))" -docker build -t wrestlingdev -f ${project_dir}/deploy/rails-prod-Dockerfile ${project_dir} +docker build -t wrestlingdev:test -f ${project_dir}/deploy/rails-prod-Dockerfile ${project_dir} docker-compose -f ${project_dir}/deploy/docker-compose-test.yml kill +#docker-compose -f ${project_dir}/deploy/docker-compose-test.yml pull docker-compose -f ${project_dir}/deploy/docker-compose-test.yml up -d echo Make sure your local mysql database has a wrestlingtourney db diff --git a/deploy/docker-compose-common.yml b/deploy/docker-compose-common.yml deleted file mode 100644 index 0de23b1..0000000 --- a/deploy/docker-compose-common.yml +++ /dev/null @@ -1,25 +0,0 @@ -app: - image: wrestlingdev - ports: - - "80:80" - - "443:443" -jobs: - image: wrestlingdev - command: bundle exec rake:jobs -db: - image: mysql:5.5 - ports: - - "3306:3306" - volumes: - - /srv/docker/mysql:/var/lib/mysql - -email: - image: postfix - -memcached: - image: memcached - mem_limit: 64000000 - -worker: - image: wrestlingdev - command: /bin/bash -c "cd /rails && bundle exec rake jobs:work RAILS_ENV=production" diff --git a/deploy/docker-compose-prod-full-stack.yml b/deploy/docker-compose-prod-full-stack.yml index 09430ec..a94f6a9 100644 --- a/deploy/docker-compose-prod-full-stack.yml +++ b/deploy/docker-compose-prod-full-stack.yml @@ -1,36 +1,54 @@ -app: - extends: - file: docker-compose-common.yml - service: app - image: wrestlingdev-prod - links: - - db - restart: always - env_file: - - ./prod.env -db: - extends: - file: docker-compose-common.yml - service: db - restart: always - env_file: - - ./prod.env -worker: - extends: - file: docker-compose-common.yml - service: worker - image: wrestlingdev-prod - links: - - db - restart: always - env_file: - - ./prod.env - healthcheck: - test: ps -ef | grep rake | grep ruby - command: bundle exec rake jobs:work RAILS_ENV=production +version: "3.3" +networks: + database: + caching: -memcached: - extends: - file: docker-compose-common.yml - service: memcached - restart: always +volumes: + mysql: + +services: + app: + image: wrestlingdev-prod + ports: + - "80:80" + - "443:443" + networks: + database: + caching: + restart: always + env_file: + - ./prod.env + healthcheck: + test: curl --insecure https://127.0.0.1/ + + db: + image: mysql:5.5 + ports: + - "3306:3306" + volumes: + - mysql:/var/lib/mysql + restart: always + env_file: + - ./prod.env + networks: + database: + + worker: + image: wrestlingdev-prod + networks: + database: + caching: + restart: always + env_file: + - ./prod.env + healthcheck: + test: ps -ef | grep rake | grep ruby + command: bundle exec rake jobs:work RAILS_ENV=production + + + memcached: + image: memcached + mem_limit: 64000000 + restart: always + networks: + caching: \ No newline at end of file diff --git a/deploy/docker-compose-test.yml b/deploy/docker-compose-test.yml index 5429e85..e7ef11b 100644 --- a/deploy/docker-compose-test.yml +++ b/deploy/docker-compose-test.yml @@ -1,59 +1,103 @@ -app: - image: registry:5000/wrestlingdev:dev - extends: - file: docker-compose-common.yml - service: app - environment: - - WRESTLINGDEV_DB_NAME=wrestlingtourney - - WRESTLINGDEV_DB_USR=root - - WRESTLINGDEV_DB_PWD=password - - WRESTLINGDEV_DB_HOST=db - - WRESTLINGDEV_DB_PORT=3306 - - WRESTLINGDEV_DEVISE_SECRET_KEY=2f29d49db6704377ba263f7cb9db085b386bcb301c0cd501126a674686ab1a109754071165b08cd72af03cec4642a4dd04361c994462254dd5d85e9594e8b9aa - - WRESTLINGDEV_SECRET_KEY_BASE=077cdbef5c2ccf22543fb17a67339f234306b7fa2e1e4463d851c444c10a5611829a2290b253da78339427f131571fac9a42c83d960b2d25ecc10a4a0a7ce1a2 - - MEMCACHIER_SERVERS=memcached:11211 - - MEMCACHIER_USERNAME= - - MEMCACHIER_PASSWORD= - links: - - db - - memcached - restart: always +version: "3.3" +networks: + database: + caching: -db: - extends: - file: docker-compose-common.yml - service: db - environment: - - MYSQL_ROOT_PASSWORD=password - restart: always +volumes: + mysql: + +services: + app: + image: wrestlingdev:dev + environment: + - WRESTLINGDEV_DB_NAME=wrestlingtourney + - WRESTLINGDEV_DB_USR=root + - WRESTLINGDEV_DB_PWD=password + - WRESTLINGDEV_DB_HOST=db + - WRESTLINGDEV_DB_PORT=3306 + - WRESTLINGDEV_DEVISE_SECRET_KEY=2f29d49db6704377ba263f7cb9db085b386bcb301c0cd501126a674686ab1a109754071165b08cd72af03cec4642a4dd04361c994462254dd5d85e9594e8b9aa + - WRESTLINGDEV_SECRET_KEY_BASE=077cdbef5c2ccf22543fb17a67339f234306b7fa2e1e4463d851c444c10a5611829a2290b253da78339427f131571fac9a42c83d960b2d25ecc10a4a0a7ce1a2 + - MEMCACHIER_SERVERS=memcached:11211 + - MEMCACHIER_USERNAME= + - MEMCACHIER_PASSWORD= + networks: + database: + caching: + restart: always + ports: + - "80:80" + - "443:443" + deploy: + resources: + limits: + cpus: '0.25' + memory: 512M + reservations: + cpus: '0.25' + memory: 256M + healthcheck: + test: curl --insecure https://127.0.0.1/ -worker: - image: registry:5000/wrestlingdev:dev - extends: - file: docker-compose-common.yml - service: worker - environment: - - WRESTLINGDEV_DB_NAME=wrestlingtourney - - WRESTLINGDEV_DB_USR=root - - WRESTLINGDEV_DB_PWD=password - - WRESTLINGDEV_DB_HOST=db - - WRESTLINGDEV_DB_PORT=3306 - - WRESTLINGDEV_DEVISE_SECRET_KEY=2f29d49db6704377ba263f7cb9db085b386bcb301c0cd501126a674686ab1a109754071165b08cd72af03cec4642a4dd04361c994462254dd5d85e9594e8b9aa - - WRESTLINGDEV_SECRET_KEY_BASE=077cdbef5c2ccf22543fb17a67339f234306b7fa2e1e4463d851c444c10a5611829a2290b253da78339427f131571fac9a42c83d960b2d25ecc10a4a0a7ce1a2 - - MEMCACHIER_SERVERS=memcached:11211 - - MEMCACHIER_USERNAME= - - MEMCACHIER_PASSWORD= - links: - - db - - memcached - restart: always - healthcheck: - test: ps -ef | grep rake | grep ruby - command: bundle exec rake jobs:work RAILS_ENV=production + db: + image: mysql:5.5 + ports: + - "3306:3306" + volumes: + - mysql:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD=password + restart: always + networks: + database: + deploy: + resources: + limits: + cpus: '0.25' + memory: 512M + reservations: + cpus: '0.25' + memory: 256M -memcached: - extends: - file: docker-compose-common.yml - service: memcached - restart: always + worker: + image: wrestlingdev:dev + environment: + - WRESTLINGDEV_DB_NAME=wrestlingtourney + - WRESTLINGDEV_DB_USR=root + - WRESTLINGDEV_DB_PWD=password + - WRESTLINGDEV_DB_HOST=db + - WRESTLINGDEV_DB_PORT=3306 + - WRESTLINGDEV_DEVISE_SECRET_KEY=2f29d49db6704377ba263f7cb9db085b386bcb301c0cd501126a674686ab1a109754071165b08cd72af03cec4642a4dd04361c994462254dd5d85e9594e8b9aa + - WRESTLINGDEV_SECRET_KEY_BASE=077cdbef5c2ccf22543fb17a67339f234306b7fa2e1e4463d851c444c10a5611829a2290b253da78339427f131571fac9a42c83d960b2d25ecc10a4a0a7ce1a2 + - MEMCACHIER_SERVERS=memcached:11211 + - MEMCACHIER_USERNAME= + - MEMCACHIER_PASSWORD= + networks: + database: + caching: + restart: always + healthcheck: + test: ps -ef | grep rake | grep ruby + command: bundle exec rake jobs:work RAILS_ENV=production + deploy: + resources: + limits: + cpus: '0.25' + memory: 512M + reservations: + cpus: '0.25' + memory: 256M + + memcached: + image: memcached + deploy: + resources: + limits: + cpus: '0.10' + memory: 64M + reservations: + cpus: '0.10' + memory: 64M + restart: always + networks: + caching: From ab87b78b4d84350abc43c5a32ce39d68c25f16ee Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Wed, 11 Jul 2018 14:06:22 +0000 Subject: [PATCH 2/5] Added build to test compose --- deploy/deploy-test.sh | 4 ++-- deploy/docker-compose-test.yml | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/deploy/deploy-test.sh b/deploy/deploy-test.sh index d6ab59b..adab91b 100755 --- a/deploy/deploy-test.sh +++ b/deploy/deploy-test.sh @@ -1,8 +1,8 @@ #!/bin/bash project_dir="$(dirname $( dirname $(readlink -f ${BASH_SOURCE[0]})))" -docker build -t wrestlingdev:test -f ${project_dir}/deploy/rails-prod-Dockerfile ${project_dir} +#docker build -t wrestlingdev:test -f ${project_dir}/deploy/rails-prod-Dockerfile ${project_dir} docker-compose -f ${project_dir}/deploy/docker-compose-test.yml kill -#docker-compose -f ${project_dir}/deploy/docker-compose-test.yml pull +docker-compose -f ${project_dir}/deploy/docker-compose-test.yml build docker-compose -f ${project_dir}/deploy/docker-compose-test.yml up -d echo Make sure your local mysql database has a wrestlingtourney db diff --git a/deploy/docker-compose-test.yml b/deploy/docker-compose-test.yml index e7ef11b..35403b8 100644 --- a/deploy/docker-compose-test.yml +++ b/deploy/docker-compose-test.yml @@ -9,6 +9,9 @@ volumes: services: app: image: wrestlingdev:dev + build: + context: ../ + dockerfile: rails-prod-Dockerfile environment: - WRESTLINGDEV_DB_NAME=wrestlingtourney - WRESTLINGDEV_DB_USR=root @@ -60,6 +63,9 @@ services: worker: image: wrestlingdev:dev + build: + context: ../ + dockerfile: rails-prod-Dockerfile environment: - WRESTLINGDEV_DB_NAME=wrestlingtourney - WRESTLINGDEV_DB_USR=root From 94b6d9aaa385583f53021973fe8742ed0d7dbbb0 Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Wed, 11 Jul 2018 17:20:53 +0000 Subject: [PATCH 3/5] Trying to get compose build working --- deploy/docker-compose-test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy/docker-compose-test.yml b/deploy/docker-compose-test.yml index 35403b8..1142ee3 100644 --- a/deploy/docker-compose-test.yml +++ b/deploy/docker-compose-test.yml @@ -8,10 +8,10 @@ volumes: services: app: - image: wrestlingdev:dev + image: wrestlingdev build: context: ../ - dockerfile: rails-prod-Dockerfile + dockerfile: ./deploy/rails-prod-Dockerfile environment: - WRESTLINGDEV_DB_NAME=wrestlingtourney - WRESTLINGDEV_DB_USR=root @@ -62,10 +62,10 @@ services: memory: 256M worker: - image: wrestlingdev:dev + image: wrestlingdev build: context: ../ - dockerfile: rails-prod-Dockerfile + dockerfile: ./deploy/rails-prod-Dockerfile environment: - WRESTLINGDEV_DB_NAME=wrestlingtourney - WRESTLINGDEV_DB_USR=root From 1a6e2a08a8edae91b4edbd0c66db8ff17317d370 Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Tue, 17 Jul 2018 11:30:36 +0000 Subject: [PATCH 4/5] Switching to passenger --- Gemfile | 3 ++- Procfile | 3 ++- deploy/rails-prod-Dockerfile | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 763cb1e..500aed0 100644 --- a/Gemfile +++ b/Gemfile @@ -52,7 +52,8 @@ gem 'cancancan' gem 'round_robin_tournament' gem 'rb-readline' gem 'delayed_job_active_record' -gem 'puma' +#gem 'puma' +gem 'passenger' gem 'travis' group :development do diff --git a/Procfile b/Procfile index 2561a76..bc4cbfd 100644 --- a/Procfile +++ b/Procfile @@ -1,2 +1,3 @@ worker: bundle exec rake jobs:work -web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development} +#web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development} +web: bundle exec passenger start -p $PORT --max-pool-size 3 diff --git a/deploy/rails-prod-Dockerfile b/deploy/rails-prod-Dockerfile index 90f448e..f204733 100644 --- a/deploy/rails-prod-Dockerfile +++ b/deploy/rails-prod-Dockerfile @@ -70,4 +70,5 @@ RUN RAILS_ENV=production bundle exec rake assets:precompile # By default, simply start puma. WORKDIR /rails -CMD bundle exec puma -t 5:5 -b 'ssl://0.0.0.0:443?key=/ssl/server.key&verify_mode=none&cert=/ssl/server.crt' -e production +#CMD bundle exec puma -t 3:3 -b 'ssl://0.0.0.0:443?key=/ssl/server.key&verify_mode=none&cert=/ssl/server.crt' -e production +CMD bundle exec passenger start -p 443 --max-pool-size 3 --environment production --ssl --ssl-certificate /ssl/server.crt --ssl-certificate-key /ssl/server.key \ No newline at end of file From 933aa522b7689891cb47d37fa6b33e18d67969b4 Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Tue, 17 Jul 2018 11:34:06 +0000 Subject: [PATCH 5/5] Forgot to update Gemfile.lock --- Gemfile.lock | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 14a6d29..806ed73 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -151,8 +151,10 @@ GEM parallel (1.12.1) parser (2.5.1.0) ast (~> 2.4.0) + passenger (5.3.3) + rack + rake (>= 0.8.1) powerpack (0.1.2) - puma (3.11.4) pusher-client (0.6.2) json websocket (~> 1.0) @@ -275,7 +277,7 @@ DEPENDENCIES jquery-rails mysql2 newrelic_rpm - puma + passenger rails (= 5.2.0) rails_12factor rb-readline