From 1b2223e100bdd0c3715569733113c2fcaa91d361 Mon Sep 17 00:00:00 2001 From: Nicholas J Anderson Date: Fri, 31 Aug 2018 19:49:10 +0000 Subject: [PATCH] Docker build in CI, use nginx for 'web' image --- .gitlab-ci.yml | 29 ++++++++++++++++++++++++++++- docker-cloud.yml | 28 ++++++++++++++++++++++++++++ schedules_api/Dockerfile | 2 ++ schedules_web/Dockerfile | 9 ++++----- 4 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 docker-cloud.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2b34080..de1ad67 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ stages: - test + - build test_api: image: ruby:2.5 @@ -16,4 +17,30 @@ test_web: script: - cd schedules_web - yarn - - yarn build \ No newline at end of file + - yarn build + +build_web: + stage: build + retry: 2 + image: + name: gcr.io/kaniko-project/executor:debug + entrypoint: [""] + script: + - mkdir -p /root/.docker + - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /root/.docker/config.json + - /kaniko/executor --context $CI_PROJECT_DIR/schedules_web --dockerfile $CI_PROJECT_DIR/schedules_web/Dockerfile --destination $CI_REGISTRY_IMAGE/web:$CI_COMMIT_TAG + only: + - tags + +build_api: + stage: build + retry: 2 + image: + name: gcr.io/kaniko-project/executor:debug + entrypoint: [""] + script: + - mkdir -p /root/.docker + - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /root/.docker/config.json + - /kaniko/executor --context $CI_PROJECT_DIR/schedules_api --dockerfile $CI_PROJECT_DIR/schedules_api/Dockerfile --destination $CI_REGISTRY_IMAGE/api:$CI_COMMIT_TAG + only: + - tags diff --git a/docker-cloud.yml b/docker-cloud.yml new file mode 100644 index 0000000..1e666f1 --- /dev/null +++ b/docker-cloud.yml @@ -0,0 +1,28 @@ +version: "3.3" + +volumes: + dbdata: + +configs: + nginx_conf: + file: ./schedules_web/nginx.conf + +networks: + front: + back: + +services: + api: + image: registry.srct.gmu.edu/srct/schedules/api:0.1.0 + networks: + back: + + web: + image: registry.srct.gmu.edu/srct/schedules/web:0.1.0 + networks: + front: + back: + volumes: + - ./schedules_web:/web + ports: + - 8085:80 diff --git a/schedules_api/Dockerfile b/schedules_api/Dockerfile index 01152e0..fa2afb3 100644 --- a/schedules_api/Dockerfile +++ b/schedules_api/Dockerfile @@ -6,6 +6,8 @@ ADD . /api EXPOSE 3000 +ENV RAILS_ENV production + RUN bundle install RUN rails db:migrate RUN rails db:seed diff --git a/schedules_web/Dockerfile b/schedules_web/Dockerfile index 391d9f2..8ba8782 100644 --- a/schedules_web/Dockerfile +++ b/schedules_web/Dockerfile @@ -1,10 +1,9 @@ FROM node:9 -RUN mkdir /web +COPY . /web WORKDIR /web -ADD . /web -EXPOSE 8080 +RUN yarn install && yarn run build -RUN yarn -RUN yarn build +FROM nginx:1.15.0 +COPY --from=0 /web/dist /web -- GitLab