From b8ebfb68587623ef94f811189b4141fa297f2cd9 Mon Sep 17 00:00:00 2001 From: Thor77 Date: Wed, 17 Apr 2019 08:22:06 +0200 Subject: [PATCH 1/6] Add .dockerignore --- .dockerignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6b8710a --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.git From fa6b3545f9c56f7f53e19a90e6c0c192a3ca1bd7 Mon Sep 17 00:00:00 2001 From: Thor77 Date: Wed, 17 Apr 2019 08:22:10 +0200 Subject: [PATCH 2/6] Add Dockerfile --- Dockerfile | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5af2fc2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM ruby:2.6.2-alpine +RUN apk add build-base tzdata sqlite sqlite-dev && gem install tzinfo-data +WORKDIR /app +COPY Gemfile /app/Gemfile +COPY Gemfile.lock /app/Gemfile.lock +RUN bundle install --deployment --without development test +COPY . /app +ENV RAILS_ENV production +CMD bundle exec rails db:migrate && bundle exec rails s -p 3000 -b 0.0.0.0 From 201f08f09c6354d5a4b8957a03c5ad9d5738081d Mon Sep 17 00:00:00 2001 From: Thor77 Date: Wed, 17 Apr 2019 08:22:17 +0200 Subject: [PATCH 3/6] Add rake docker tasks --- lib/tasks/docker.rake | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lib/tasks/docker.rake diff --git a/lib/tasks/docker.rake b/lib/tasks/docker.rake new file mode 100644 index 0000000..a4c97e7 --- /dev/null +++ b/lib/tasks/docker.rake @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +IMAGE_NAME = 'turniere/backend' + +namespace :docker do + desc 'Build docker image' + task :build, [:tag] do |_, args| + args.with_defaults(tag: 'latest') + sh "docker build -t #{IMAGE_NAME}:#{args.tag} ." + end + + desc 'Tag docker image with Travis build number' + task :tag do + next if ENV['TRAVIS_PULL_REQUEST'] != 'false' + + tag = "build#{ENV['TRAVIS_BUILD_NUMBER']}" + sh "docker tag #{IMAGE_NAME} #{IMAGE_NAME}:#{tag}" + end + + desc 'Push docker image' + task :push do + sh "docker push #{IMAGE_NAME}" + end + + desc 'Run TravisCI tasks' + task travis: %i[build tag push] do + end +end From 6633774342ba01dada1afdc23bdb55d735d33cde Mon Sep 17 00:00:00 2001 From: Thor77 Date: Wed, 17 Apr 2019 08:22:26 +0200 Subject: [PATCH 4/6] Add docker-compose.yml --- docker-compose.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ebb4c1e --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: "3" +services: + app: + image: turniere/backend + environment: + - RAILS_ENV=development + ports: + - 3000:3000 From 277c362d156aa17ed5bb62b9048b19df07cda559 Mon Sep 17 00:00:00 2001 From: Malaber <32635600+Malaber@users.noreply.github.com> Date: Wed, 17 Apr 2019 09:14:30 +0200 Subject: [PATCH 5/6] Add development dirs/files to .dockerignore Co-Authored-By: Thor77 --- .dockerignore | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.dockerignore b/.dockerignore index 6b8710a..6cbf964 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1 +1,11 @@ .git +test/** +spec/** +tmp/** +.gitignore +.hound.yml +.rspec +.rubocop.yml +.travis-yml +docker-compose.yml +README.md From f751a2ac59cf80edd94537c942593dc55b06f281 Mon Sep 17 00:00:00 2001 From: Thor77 Date: Wed, 17 Apr 2019 09:15:00 +0200 Subject: [PATCH 6/6] Use production env (defined in Dockerfile) --- docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ebb4c1e..5a0d907 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,5 @@ version: "3" services: app: image: turniere/backend - environment: - - RAILS_ENV=development ports: - 3000:3000