From 5778ef3bc0be9a86c22024c8be28890728716845 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Thu, 3 Jan 2019 19:25:20 -0200 Subject: [PATCH 01/31] Multistage build docker --- .dockerignore | 5 +++++ Dockerfile | 30 ++++++++++++++++++------------ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/.dockerignore b/.dockerignore index 9f734654d..4ab35e506 100644 --- a/.dockerignore +++ b/.dockerignore @@ -11,3 +11,8 @@ scripts/ .env cypress/ + +README.md +screenshot*.png +lokalise.png +.editorconfig \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 8ebbb0393..ad59965f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ -FROM node:10-alpine +FROM node:10-alpine as base LABEL Description="Web Frontend of the Social Network Human-Connection.org" Vendor="Human-Connection gGmbH" Version="0.0.1" Maintainer="Human-Connection gGmbH (developer@human-connection.org)" # Expose the app port -EXPOSE 3000 - +ARG BUILD_COMMIT +ENV BUILD_COMMIT=$BUILD_COMMIT ARG WORKDIR=/nitro-web RUN mkdir -p $WORKDIR WORKDIR $WORKDIR @@ -11,18 +11,24 @@ WORKDIR $WORKDIR # See: https://github.com/nodejs/docker-node/pull/367#issuecomment-430807898 RUN apk --no-cache add git -# Install Web Application -COPY package.json . -COPY yarn.lock . +COPY package.json yarn.lock ./ COPY styleguide/ ./styleguide -RUN yarn install --production=false --frozen-lockfile --non-interactive -# Install and build Styleguide -COPY styleguide/ ./styleguide +FROM base as builder +RUN yarn install --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ - && yarn run styleguide:build + && yarn run styleguide:build +COPY . . +RUN yarn run build -COPY . . -RUN ["yarn", "run", "build"] +FROM base as production +ENV NODE_ENV=production +ADD package.json ./ +ADD nuxt.config.js ./ +COPY --from=builder ./nitro-web/node_modules ./node_modules/ +COPY --from=builder /nitro-web/.nuxt/ ./.nuxt +COPY --from=builder ./nitro-web/static ./static/ + +EXPOSE 3000 CMD ["yarn", "run", "start"] From e88b674a29d81509520a1c1169bfa33d47d6a3d1 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Thu, 3 Jan 2019 20:22:29 -0200 Subject: [PATCH 02/31] Configure docker-compose, travis multistage build --- .travis.yml | 4 ++-- docker-compose.override.yml | 3 +++ docker-compose.travis.yml | 8 ++++++++ docker-compose.yml | 4 +++- 4 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 docker-compose.travis.yml diff --git a/.travis.yml b/.travis.yml index 0ad6b5e30..90191674c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,8 +18,8 @@ before_install: - sudo mv docker-compose /usr/local/bin install: - - docker build --build-arg BUILD_COMMIT=$TRAVIS_COMMIT -t humanconnection/nitro-web . - - docker-compose -f docker-compose.yml up -d + - docker build --build-arg BUILD_COMMIT=$TRAVIS_COMMIT --target production -t humanconnection/nitro-web . + - docker-compose -f docker-compose.travis.yml up -d - git clone https://github.com/Human-Connection/Nitro-Backend.git ../Nitro-Backend - git -C "../Nitro-Backend" checkout $TRAVIS_BRANCH || echo "Branch \`$TRAVIS_BRANCH\` does not exist, falling back to \`master\`" - docker-compose -f ../Nitro-Backend/docker-compose.yml -f ../Nitro-Backend/docker-compose.travis.yml up -d diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 4188b42ce..0438f5fbb 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -2,6 +2,9 @@ version: '3.7' services: webapp: + build: + context: . + target: builder volumes: - .:/nitro-web - node_modules:/nitro-web/node_modules diff --git a/docker-compose.travis.yml b/docker-compose.travis.yml new file mode 100644 index 000000000..ab752a230 --- /dev/null +++ b/docker-compose.travis.yml @@ -0,0 +1,8 @@ +version: "3.7" + +services: + backend: + image: humanconnection/nitro-web:builder + build: + context: . + target: builder \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index f7c697889..c8bba8595 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,9 @@ version: '3.7' services: webapp: image: humanconnection/nitro-web:latest - build: . + build: + context: . + target: production ports: - 3000:3000 - 8080:8080 From c575565f8cd562d3b66765ad5bb7b880ce4ce68b Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Thu, 3 Jan 2019 21:06:28 -0200 Subject: [PATCH 03/31] Copy plugins from builder --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index ad59965f8..d9b679111 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,6 +26,7 @@ FROM base as production ENV NODE_ENV=production ADD package.json ./ ADD nuxt.config.js ./ +COPY --from=builder ./nitro-web/plugins ./plugins/ COPY --from=builder ./nitro-web/node_modules ./node_modules/ COPY --from=builder /nitro-web/.nuxt/ ./.nuxt COPY --from=builder ./nitro-web/static ./static/ From 744362a4d7a492ab6a047f9b63d4fcfa85521464 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Thu, 3 Jan 2019 22:37:48 -0200 Subject: [PATCH 04/31] Link docker-compose to docker-compose.travis --- .travis.yml | 2 +- docker-compose.travis.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 90191674c..d92b68c35 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ before_install: install: - docker build --build-arg BUILD_COMMIT=$TRAVIS_COMMIT --target production -t humanconnection/nitro-web . - - docker-compose -f docker-compose.travis.yml up -d + - docker-compose -f docker-compose.yml -f docker-compose.travis.yml up -d - git clone https://github.com/Human-Connection/Nitro-Backend.git ../Nitro-Backend - git -C "../Nitro-Backend" checkout $TRAVIS_BRANCH || echo "Branch \`$TRAVIS_BRANCH\` does not exist, falling back to \`master\`" - docker-compose -f ../Nitro-Backend/docker-compose.yml -f ../Nitro-Backend/docker-compose.travis.yml up -d diff --git a/docker-compose.travis.yml b/docker-compose.travis.yml index ab752a230..80942a27a 100644 --- a/docker-compose.travis.yml +++ b/docker-compose.travis.yml @@ -2,7 +2,6 @@ version: "3.7" services: backend: - image: humanconnection/nitro-web:builder build: context: . target: builder \ No newline at end of file From 014392a7a5e4b511f3251d9aa33dbb34f1e665b7 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Fri, 4 Jan 2019 15:06:59 -0200 Subject: [PATCH 05/31] Add missing up in docker-compose up --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d92b68c35..c959673b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ before_install: install: - docker build --build-arg BUILD_COMMIT=$TRAVIS_COMMIT --target production -t humanconnection/nitro-web . - - docker-compose -f docker-compose.yml -f docker-compose.travis.yml up -d + - docker-compose -f docker-compose.yml up -f docker-compose.travis.yml up -d - git clone https://github.com/Human-Connection/Nitro-Backend.git ../Nitro-Backend - git -C "../Nitro-Backend" checkout $TRAVIS_BRANCH || echo "Branch \`$TRAVIS_BRANCH\` does not exist, falling back to \`master\`" - docker-compose -f ../Nitro-Backend/docker-compose.yml -f ../Nitro-Backend/docker-compose.travis.yml up -d From b8fb1bd1c0acd9472c404678c627e55bac68647a Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Fri, 4 Jan 2019 15:15:06 -0200 Subject: [PATCH 06/31] Revert docker-compose up command in travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c959673b7..d92b68c35 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ before_install: install: - docker build --build-arg BUILD_COMMIT=$TRAVIS_COMMIT --target production -t humanconnection/nitro-web . - - docker-compose -f docker-compose.yml up -f docker-compose.travis.yml up -d + - docker-compose -f docker-compose.yml -f docker-compose.travis.yml up -d - git clone https://github.com/Human-Connection/Nitro-Backend.git ../Nitro-Backend - git -C "../Nitro-Backend" checkout $TRAVIS_BRANCH || echo "Branch \`$TRAVIS_BRANCH\` does not exist, falling back to \`master\`" - docker-compose -f ../Nitro-Backend/docker-compose.yml -f ../Nitro-Backend/docker-compose.travis.yml up -d From 9b3161ae1567340528d58f731d0d7878517f1c81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Fri, 4 Jan 2019 19:18:53 +0100 Subject: [PATCH 07/31] Fix copy+paste error `backend`=>`webapp` @mattwr18 ouch, that was a hard to spot error. It struck my eye when I was switching back and forth between `docker-compose.override.yml` and `docker-compose.travis.yml`. --- Dockerfile | 4 ++-- docker-compose.travis.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index d9b679111..e28629294 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,8 +18,8 @@ FROM base as builder RUN yarn install --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ - && yarn run styleguide:build -COPY . . + && yarn run styleguide:build +COPY . . RUN yarn run build FROM base as production diff --git a/docker-compose.travis.yml b/docker-compose.travis.yml index 80942a27a..0c3293127 100644 --- a/docker-compose.travis.yml +++ b/docker-compose.travis.yml @@ -1,7 +1,7 @@ version: "3.7" services: - backend: + webapp: build: context: . - target: builder \ No newline at end of file + target: builder From 00d1ca0129db6b5251c567cede25b82711204ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Fri, 4 Jan 2019 19:52:52 +0100 Subject: [PATCH 08/31] Put CMD in base section in Dockerfile This should fix our build server. Probably the container immediately exited on Travis which is using the `builder` stage for testing. --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e28629294..e7cf44f50 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,7 @@ RUN apk --no-cache add git COPY package.json yarn.lock ./ COPY styleguide/ ./styleguide +CMD ["yarn", "run", "start"] FROM base as builder RUN yarn install --frozen-lockfile --non-interactive @@ -32,4 +33,3 @@ COPY --from=builder /nitro-web/.nuxt/ ./.nuxt COPY --from=builder ./nitro-web/static ./static/ EXPOSE 3000 -CMD ["yarn", "run", "start"] From 9541b81b08b31082399d2b57a7fd66f27caef7a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Fri, 4 Jan 2019 20:08:13 +0100 Subject: [PATCH 09/31] Add folder `/server` to docker stage `production` --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index e7cf44f50..03a572077 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,7 @@ RUN apk --no-cache add git COPY package.json yarn.lock ./ COPY styleguide/ ./styleguide +COPY server/ ./server CMD ["yarn", "run", "start"] FROM base as builder From 3e3065c4a4d52079562cc3f8b0266b8bc677065e Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Fri, 4 Jan 2019 19:46:07 -0200 Subject: [PATCH 10/31] Refactor multistage build names, copy locales in base --- Dockerfile | 21 ++++++++++----------- docker-compose.override.yml | 2 +- docker-compose.travis.yml | 2 +- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 03a572077..8e06ecbd6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,13 +11,14 @@ WORKDIR $WORKDIR # See: https://github.com/nodejs/docker-node/pull/367#issuecomment-430807898 RUN apk --no-cache add git -COPY package.json yarn.lock ./ -COPY styleguide/ ./styleguide -COPY server/ ./server +COPY locales ./locales +COPY styleguide ./styleguide +COPY server ./server +COPY package.json yarn.lock nuxt.config.js ./ CMD ["yarn", "run", "start"] -FROM base as builder -RUN yarn install --frozen-lockfile --non-interactive +FROM base as build-and-test +RUN yarn install --production=false --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ && yarn run styleguide:build @@ -26,11 +27,9 @@ RUN yarn run build FROM base as production ENV NODE_ENV=production -ADD package.json ./ -ADD nuxt.config.js ./ -COPY --from=builder ./nitro-web/plugins ./plugins/ -COPY --from=builder ./nitro-web/node_modules ./node_modules/ -COPY --from=builder /nitro-web/.nuxt/ ./.nuxt -COPY --from=builder ./nitro-web/static ./static/ +COPY --from=build-and-test ./nitro-web/node_modules ./node_modules +COPY --from=build-and-test ./nitro-web/plugins ./plugins +COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt +COPY --from=build-and-test ./nitro-web/static ./static EXPOSE 3000 diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 0438f5fbb..bb7a6c1d1 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -4,7 +4,7 @@ services: webapp: build: context: . - target: builder + target: build-and-test volumes: - .:/nitro-web - node_modules:/nitro-web/node_modules diff --git a/docker-compose.travis.yml b/docker-compose.travis.yml index 0c3293127..ced9719a2 100644 --- a/docker-compose.travis.yml +++ b/docker-compose.travis.yml @@ -4,4 +4,4 @@ services: webapp: build: context: . - target: builder + target: build-and-test From 40aedb12ee22df55e4addbc95d190f85692257b1 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Fri, 4 Jan 2019 20:12:20 -0200 Subject: [PATCH 11/31] Initialize eslint --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8e06ecbd6..6f5f6ec02 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ FROM base as build-and-test RUN yarn install --production=false --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ - && yarn run styleguide:build + && yarn run styleguide:build && eslint --init COPY . . RUN yarn run build From 11a7f0a41abc6229ff2a94c147fad37d85a06fc5 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Fri, 4 Jan 2019 20:29:45 -0200 Subject: [PATCH 12/31] Copy eslint config, test files --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6f5f6ec02..5b03c8373 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,14 +14,14 @@ RUN apk --no-cache add git COPY locales ./locales COPY styleguide ./styleguide COPY server ./server -COPY package.json yarn.lock nuxt.config.js ./ +COPY package.json yarn.lock .eslintrc.js .eslintignore store/auth.test.js components/Badges.spec.js nuxt.config.js ./ CMD ["yarn", "run", "start"] FROM base as build-and-test RUN yarn install --production=false --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ - && yarn run styleguide:build && eslint --init + && yarn run styleguide:build COPY . . RUN yarn run build From beac045d5fa21799872bcd68a7d8bf7a5705edc6 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Fri, 4 Jan 2019 20:42:01 -0200 Subject: [PATCH 13/31] Copy components and store, remove in production Needed to run tests --- Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5b03c8373..882b1cb73 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,9 @@ RUN apk --no-cache add git COPY locales ./locales COPY styleguide ./styleguide COPY server ./server -COPY package.json yarn.lock .eslintrc.js .eslintignore store/auth.test.js components/Badges.spec.js nuxt.config.js ./ +COPY components ./components +COPY store ./store +COPY package.json yarn.lock .eslintrc.js .eslintignore nuxt.config.js ./ CMD ["yarn", "run", "start"] FROM base as build-and-test @@ -27,6 +29,7 @@ RUN yarn run build FROM base as production ENV NODE_ENV=production +RUN rm -rf ./nitro-web/components ./nitro-web/store COPY --from=build-and-test ./nitro-web/node_modules ./node_modules COPY --from=build-and-test ./nitro-web/plugins ./plugins COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt From 9f8a292c7e39030a4fb05622c8830e5dbff967db Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Fri, 4 Jan 2019 20:59:33 -0200 Subject: [PATCH 14/31] Fix lint issues --- cypress/integration/common/steps.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cypress/integration/common/steps.js b/cypress/integration/common/steps.js index 55660d366..e48200a96 100644 --- a/cypress/integration/common/steps.js +++ b/cypress/integration/common/steps.js @@ -1,6 +1,6 @@ import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps' import find from 'lodash/find' -import { eq } from 'semver'; +import { eq } from 'semver' /* global cy */ @@ -73,7 +73,6 @@ Given('my user account has the role {string}', role => { // TODO: use db factories instead of seed data }) - When('I log out', logout) When('I visit the {string} page', page => { From 124f8be370d2569fa4901f3d45df971b7ef2aa75 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Sat, 5 Jan 2019 14:25:31 -0200 Subject: [PATCH 15/31] Copy everything over in the base image --- Dockerfile | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 882b1cb73..3eacaa0fe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,12 +11,7 @@ WORKDIR $WORKDIR # See: https://github.com/nodejs/docker-node/pull/367#issuecomment-430807898 RUN apk --no-cache add git -COPY locales ./locales -COPY styleguide ./styleguide -COPY server ./server -COPY components ./components -COPY store ./store -COPY package.json yarn.lock .eslintrc.js .eslintignore nuxt.config.js ./ +COPY . . CMD ["yarn", "run", "start"] FROM base as build-and-test From 890d22421cbf36eeac6536cecfa68bc4d6cdcc26 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Sat, 5 Jan 2019 15:46:56 -0200 Subject: [PATCH 16/31] Change node env to test for build-and-test --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3eacaa0fe..27aa21a9b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,7 @@ COPY . . CMD ["yarn", "run", "start"] FROM base as build-and-test +ENV NODE_ENV=test RUN yarn install --production=false --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ @@ -24,7 +25,6 @@ RUN yarn run build FROM base as production ENV NODE_ENV=production -RUN rm -rf ./nitro-web/components ./nitro-web/store COPY --from=build-and-test ./nitro-web/node_modules ./node_modules COPY --from=build-and-test ./nitro-web/plugins ./plugins COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt From ab541300acef5a0949ec7db30aed72e17c8df53e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 7 Jan 2019 16:55:57 +0100 Subject: [PATCH 17/31] Remove probably unused semver dependency --- cypress/integration/common/steps.js | 1 - 1 file changed, 1 deletion(-) diff --git a/cypress/integration/common/steps.js b/cypress/integration/common/steps.js index e48200a96..78266d96e 100644 --- a/cypress/integration/common/steps.js +++ b/cypress/integration/common/steps.js @@ -1,6 +1,5 @@ import { Given, When, Then } from 'cypress-cucumber-preprocessor/steps' import find from 'lodash/find' -import { eq } from 'semver' /* global cy */ From 9172cd253248cb85dbe841a74fd6165276e42815 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Tue, 8 Jan 2019 09:23:56 -0200 Subject: [PATCH 18/31] Change node env to test in travis.yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index d92b68c35..6936774db 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,7 @@ services: env: - DOCKER_COMPOSE_VERSION=1.23.2 + - NODE_ENV=test before_install: - sudo rm /usr/local/bin/docker-compose From 648e53456cc3b98b0c3b014905495116e4286aff Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Tue, 8 Jan 2019 09:37:30 -0200 Subject: [PATCH 19/31] Set node env to test in package.json --- .travis.yml | 1 - package.json | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6936774db..d92b68c35 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,6 @@ services: env: - DOCKER_COMPOSE_VERSION=1.23.2 - - NODE_ENV=test before_install: - sudo rm /usr/local/bin/docker-compose diff --git a/package.json b/package.json index f316df396..70edc4bcb 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,10 @@ "build": "nuxt build", "start": "cross-env node server/index.js", "generate": "nuxt generate", - "lint": "eslint --ext .js,.vue .", + "lint": "set NODE_ENV=test && eslint --ext .js,.vue .", "styleguide": "cd ./styleguide && yarn dev", "styleguide:build": "cd ./styleguide && yarn build:lib && cd ../", - "test": "jest", + "test": "set NODE_ENV=test && jest", "precommit": "yarn lint" }, "cypress-cucumber-preprocessor": { From ebc143f4555c73280a2c80faf830d871fdb43719 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Tue, 8 Jan 2019 09:50:48 -0200 Subject: [PATCH 20/31] Add node env correctly in travis.yml and echo --- .travis.yml | 3 ++- package.json | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index d92b68c35..918cdac9d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ services: - docker env: - - DOCKER_COMPOSE_VERSION=1.23.2 + - DOCKER_COMPOSE_VERSION=1.23.2 NODE_ENV=test before_install: - sudo rm /usr/local/bin/docker-compose @@ -27,6 +27,7 @@ install: - yarn add cypress-cucumber-preprocessor script: + - echo $NODE_ENV - docker-compose exec webapp yarn run lint - docker-compose exec webapp yarn run test - docker-compose -f ../Nitro-Backend/docker-compose.yml exec backend yarn run db:seed > /dev/null diff --git a/package.json b/package.json index 70edc4bcb..f316df396 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,10 @@ "build": "nuxt build", "start": "cross-env node server/index.js", "generate": "nuxt generate", - "lint": "set NODE_ENV=test && eslint --ext .js,.vue .", + "lint": "eslint --ext .js,.vue .", "styleguide": "cd ./styleguide && yarn dev", "styleguide:build": "cd ./styleguide && yarn build:lib && cd ../", - "test": "set NODE_ENV=test && jest", + "test": "jest", "precommit": "yarn lint" }, "cypress-cucumber-preprocessor": { From a4ae2aa35b03f457433989298383bf8ae11c1e43 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Tue, 8 Jan 2019 10:31:49 -0200 Subject: [PATCH 21/31] Add environment variable to commands --- .travis.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 918cdac9d..46a173ae7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ services: - docker env: - - DOCKER_COMPOSE_VERSION=1.23.2 NODE_ENV=test + - DOCKER_COMPOSE_VERSION=1.23.2 before_install: - sudo rm /usr/local/bin/docker-compose @@ -27,9 +27,8 @@ install: - yarn add cypress-cucumber-preprocessor script: - - echo $NODE_ENV - - docker-compose exec webapp yarn run lint - - docker-compose exec webapp yarn run test + - docker-compose exec -e NODE_ENV=test webapp yarn run lint + - docker-compose exec -e NODE_ENV=test webapp yarn run test - docker-compose -f ../Nitro-Backend/docker-compose.yml exec backend yarn run db:seed > /dev/null - wait-on http://localhost:3000 - cypress run --record --key $CYPRESS_TOKEN From c96e29bfcb0b71a59ed96572a5c19a46c0d3a641 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Tue, 8 Jan 2019 11:22:51 -0200 Subject: [PATCH 22/31] Clean up Dockerfile --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 27aa21a9b..35d8baaa5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,10 +12,8 @@ WORKDIR $WORKDIR RUN apk --no-cache add git COPY . . -CMD ["yarn", "run", "start"] FROM base as build-and-test -ENV NODE_ENV=test RUN yarn install --production=false --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ @@ -31,3 +29,4 @@ COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt COPY --from=build-and-test ./nitro-web/static ./static EXPOSE 3000 +CMD ["yarn", "run", "start"] From 39f581aefb59528bd6f1cd0d718c40dd7d65dc06 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Tue, 8 Jan 2019 20:39:45 -0200 Subject: [PATCH 23/31] Remove redundant copies, run yarn install in production image --- Dockerfile | 4 +--- package.json | 2 +- yarn.lock | 23 ++++++++++++++++++++++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 35d8baaa5..4e9714532 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,10 +23,8 @@ RUN yarn run build FROM base as production ENV NODE_ENV=production -COPY --from=build-and-test ./nitro-web/node_modules ./node_modules -COPY --from=build-and-test ./nitro-web/plugins ./plugins +RUN yarn install --frozen-lockfile --non-interactive COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt -COPY --from=build-and-test ./nitro-web/static ./static EXPOSE 3000 CMD ["yarn", "run", "start"] diff --git a/package.json b/package.json index f316df396..ed036ea1d 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "jsonwebtoken": "^8.3.0", "nuxt": "^2.0.0", "nuxt-env": "^0.0.4", + "nuxt-sass-resources-loader": "^2.0.5", "v-tooltip": "^2.0.0-rc.33", "vue-count-to": "^1.0.13", "vue-izitoast": "1.1.2", @@ -72,7 +73,6 @@ "jest": "^23.6.0", "node-sass": "^4.11.0", "nodemon": "^1.18.9", - "nuxt-sass-resources-loader": "^2.0.5", "prettier": "1.14.3", "sass-loader": "^7.1.0", "vue-jest": "^3.0.2", diff --git a/yarn.lock b/yarn.lock index 800a9deff..aabbf9fae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2777,6 +2777,11 @@ big.js@^3.1.3: resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" @@ -7177,6 +7182,13 @@ json5@^0.5.0, json5@^0.5.1: resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + json5@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" @@ -7382,7 +7394,7 @@ loader-utils@^0.2.16: json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.0.4, loader-utils@^1.1.0: +loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= @@ -7391,6 +7403,15 @@ loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.0.4, loader-utils@^1.1 emojis-list "^2.0.0" json5 "^0.5.0" +loader-utils@^1.0.4: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" From 1a234e70f8a28fb361def63a7c6048e6d99e341c Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 9 Jan 2019 18:54:42 -0200 Subject: [PATCH 24/31] Copy over styleguide/dist --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 4e9714532..afba80104 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,6 +25,7 @@ FROM base as production ENV NODE_ENV=production RUN yarn install --frozen-lockfile --non-interactive COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt +COPY --from=build-and-test ./styleguide/dist ./styleguide/dist EXPOSE 3000 CMD ["yarn", "run", "start"] From cca09415c3625c59d55eaebab7e5e85cac46a00e Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 9 Jan 2019 19:14:38 -0200 Subject: [PATCH 25/31] Fix copy path --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index afba80104..a50e03715 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,14 +18,13 @@ RUN yarn install --production=false --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ && yarn run styleguide:build -COPY . . RUN yarn run build FROM base as production ENV NODE_ENV=production RUN yarn install --frozen-lockfile --non-interactive COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt -COPY --from=build-and-test ./styleguide/dist ./styleguide/dist +COPY --from=build-and-test ./nitro-web/styleguide/dist ./styleguide/dist EXPOSE 3000 CMD ["yarn", "run", "start"] From 0acca8c73ffc2d9ac9246959657b1aebc5a3b199 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 9 Jan 2019 19:15:48 -0200 Subject: [PATCH 26/31] Add copy everything in build and test --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index a50e03715..1affdf80f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,7 @@ RUN yarn install --production=false --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ && yarn run styleguide:build +COPY . . RUN yarn run build FROM base as production From 19a298d7f6ed515ab543b2a6ca3ab5fc22c50774 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 9 Jan 2019 19:36:37 -0200 Subject: [PATCH 27/31] Add back static and plugins copy from build and test --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 1affdf80f..8f8b8a8c4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,6 +26,8 @@ ENV NODE_ENV=production RUN yarn install --frozen-lockfile --non-interactive COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt COPY --from=build-and-test ./nitro-web/styleguide/dist ./styleguide/dist +COPY --from=build-and-test ./nitro-web/plugins ./plugins +COPY --from=build-and-test ./nitro-web/static ./static EXPOSE 3000 CMD ["yarn", "run", "start"] From b17107438cbdedcb32d23bda408a85e4e8a1fe58 Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 9 Jan 2019 19:52:38 -0200 Subject: [PATCH 28/31] Revert to passing build --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8f8b8a8c4..75237af56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,7 @@ RUN apk --no-cache add git COPY . . FROM base as build-and-test +ENV NODE_ENV=test RUN yarn install --production=false --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ @@ -23,10 +24,9 @@ RUN yarn run build FROM base as production ENV NODE_ENV=production -RUN yarn install --frozen-lockfile --non-interactive -COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt -COPY --from=build-and-test ./nitro-web/styleguide/dist ./styleguide/dist +COPY --from=build-and-test ./nitro-web/node_modules ./node_modules COPY --from=build-and-test ./nitro-web/plugins ./plugins +COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt COPY --from=build-and-test ./nitro-web/static ./static EXPOSE 3000 From 6948c147e28d3e05bd930dd753e5081a4273df3e Mon Sep 17 00:00:00 2001 From: Matt Rider Date: Wed, 9 Jan 2019 20:05:04 -0200 Subject: [PATCH 29/31] Remove un-needed copies --- Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 75237af56..8f7df318b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,20 +14,16 @@ RUN apk --no-cache add git COPY . . FROM base as build-and-test -ENV NODE_ENV=test RUN yarn install --production=false --frozen-lockfile --non-interactive RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \ && cd .. \ && yarn run styleguide:build -COPY . . RUN yarn run build FROM base as production ENV NODE_ENV=production COPY --from=build-and-test ./nitro-web/node_modules ./node_modules -COPY --from=build-and-test ./nitro-web/plugins ./plugins COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt -COPY --from=build-and-test ./nitro-web/static ./static EXPOSE 3000 CMD ["yarn", "run", "start"] From 6b4601e9d14d63362877e293b7219d23cf1b4ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Thu, 10 Jan 2019 02:15:00 +0100 Subject: [PATCH 30/31] Try to help @mattwr18 I give up now after numerous attempts to reduce the docker image size. The only thing left is that I've put the NODE_ENV=.. configuration in the docker-compose.X.yml files, I think that's slightly cleaner --- .travis.yml | 6 +++--- docker-compose.override.yml | 2 ++ docker-compose.travis.yml | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 46a173ae7..1bb87acfd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,9 +27,9 @@ install: - yarn add cypress-cucumber-preprocessor script: - - docker-compose exec -e NODE_ENV=test webapp yarn run lint - - docker-compose exec -e NODE_ENV=test webapp yarn run test - - docker-compose -f ../Nitro-Backend/docker-compose.yml exec backend yarn run db:seed > /dev/null + - docker-compose exec webapp yarn run lint + - docker-compose exec webapp yarn run test + - docker-compose -f ../Nitro-Backend/docker-compose.yml exec backend yarn run db:seed - wait-on http://localhost:3000 - cypress run --record --key $CYPRESS_TOKEN diff --git a/docker-compose.override.yml b/docker-compose.override.yml index bb7a6c1d1..c0c893848 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -2,6 +2,8 @@ version: '3.7' services: webapp: + environment: + - NODE_ENV=development build: context: . target: build-and-test diff --git a/docker-compose.travis.yml b/docker-compose.travis.yml index ced9719a2..cf15e6916 100644 --- a/docker-compose.travis.yml +++ b/docker-compose.travis.yml @@ -2,6 +2,8 @@ version: "3.7" services: webapp: + environment: + - NODE_ENV=test build: context: . target: build-and-test From 521a868ca88a802d539c2ba792721031eb048cdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Fri, 11 Jan 2019 01:14:48 +0100 Subject: [PATCH 31/31] Revert "Try to help @mattwr18" This reverts commit 6b4601e9d14d63362877e293b7219d23cf1b4ecd. @mattwr18 for reasons I don't understand, our build server hangs https://travis-ci.com/Human-Connection/Nitro-Web/builds/96979338 Honestly, I start to think this is a bug in `docker-compose` --- .travis.yml | 6 +++--- docker-compose.override.yml | 2 -- docker-compose.travis.yml | 2 -- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1bb87acfd..46a173ae7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,9 +27,9 @@ install: - yarn add cypress-cucumber-preprocessor script: - - docker-compose exec webapp yarn run lint - - docker-compose exec webapp yarn run test - - docker-compose -f ../Nitro-Backend/docker-compose.yml exec backend yarn run db:seed + - docker-compose exec -e NODE_ENV=test webapp yarn run lint + - docker-compose exec -e NODE_ENV=test webapp yarn run test + - docker-compose -f ../Nitro-Backend/docker-compose.yml exec backend yarn run db:seed > /dev/null - wait-on http://localhost:3000 - cypress run --record --key $CYPRESS_TOKEN diff --git a/docker-compose.override.yml b/docker-compose.override.yml index c0c893848..bb7a6c1d1 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -2,8 +2,6 @@ version: '3.7' services: webapp: - environment: - - NODE_ENV=development build: context: . target: build-and-test diff --git a/docker-compose.travis.yml b/docker-compose.travis.yml index cf15e6916..ced9719a2 100644 --- a/docker-compose.travis.yml +++ b/docker-compose.travis.yml @@ -2,8 +2,6 @@ version: "3.7" services: webapp: - environment: - - NODE_ENV=test build: context: . target: build-and-test