diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 048b0a9..ce3b29c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,9 +1,11 @@ variables: GIT_SUBMODULE_STRATEGY: normal + DOCKER_TAG: ${CI_COMMIT_REF_NAME} + DOCKER_IMAGE_DEV: villas/web-dev:${DOCKER_TAG} cache: untracked: true - key: "$CI_PROJECT_ID" + key: ${CI_PROJECT_ID} paths: - node_modules/ - _site/vendor/ @@ -18,7 +20,7 @@ stages: prepare: stage: prepare script: - - docker build -t villas/web-dev . + - docker build -t ${DOCKER_IMAGE_DEV} -f packaging/docker/Dockerfile.dev . tags: - linux - shell @@ -30,7 +32,7 @@ build_job: script: - npm install - npm run build - image: villas/web-dev + image: ${DOCKER_IMAGE_DEV} artifacts: paths: - build/ @@ -42,7 +44,7 @@ test_job: stage: test script: - npm test - image: villas/web-dev + image: ${DOCKER_IMAGE_DEV} dependencies: - build_job tags: diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile new file mode 100644 index 0000000..28b1443 --- /dev/null +++ b/packaging/docker/Dockerfile @@ -0,0 +1,21 @@ +FROM node:12.2 AS builder + +RUN apt-get install -y \ + git + +# Create app directory +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +# use changes to package.json to force Docker not to use the cache +# when we change our application's nodejs dependencies: +ADD package.json /usr/src/app +RUN npm install + +# Install app dependencies +COPY . /usr/src/app +RUN npm run build + +FROM nginx + +COPY --from=builder /usr/src/app/build /usr/share/nginx/html diff --git a/packaging/docker/Dockerfile-dev b/packaging/docker/Dockerfile-dev new file mode 100644 index 0000000..a9d8a4e --- /dev/null +++ b/packaging/docker/Dockerfile-dev @@ -0,0 +1,4 @@ +FROM node:12.2 + +RUN apt-git install -y \ + git