diff options
author | msquare <msquare@notrademark.de> | 2019-07-21 13:43:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-21 13:43:11 +0200 |
commit | 3fed76876c7f72faa0dd0dbf38c6b03543aa2d84 (patch) | |
tree | 00df255fcd7c3777855bee27967117440c4add8c | |
parent | 1e16f4c47ec15ffea41e1fa612d205b8db2a16d1 (diff) | |
parent | 43fa21f6553bb9e46f00d0768eab56e74c842bb4 (diff) |
Merge pull request #625 from MyIgel/docker
Docker: Decouple nginx and fpm builds
-rw-r--r-- | .gitlab-ci.yml | 11 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | contrib/Dockerfile | 7 |
3 files changed, 11 insertions, 9 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7bbf24de..4e8bd7d9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,9 +30,17 @@ stages: build-image.nginx: <<: *docker_definition stage: build-frontend + artifacts: + name: "${CI_JOB_NAME}_${CI_JOB_ID}_assets" + expire_in: 1 day + paths: + - ./public/assets script: - docker build --pull -t "${TEST_IMAGE}-nginx" -f contrib/nginx/Dockerfile . - docker push "${TEST_IMAGE}-nginx" + - instance=$(docker create "${TEST_IMAGE}-nginx") + - docker cp "${instance}:/var/www/public/assets" public/ + - docker rm "${instance}" build-image: <<: *docker_definition @@ -40,7 +48,7 @@ build-image: script: - apk -q add git - VERSION="$(git describe --abbrev=0 --tags)-${CI_COMMIT_REF_NAME}+${CI_PIPELINE_ID}.${CI_COMMIT_SHORT_SHA}" - - docker build --pull --build-arg NGINX_IMAGE="${TEST_IMAGE}-nginx" --build-arg VERSION="${VERSION}" -t "${TEST_IMAGE}" -f contrib/Dockerfile . + - docker build --pull --build-arg VERSION="${VERSION}" -t "${TEST_IMAGE}" -f contrib/Dockerfile . - docker push "${TEST_IMAGE}" test: @@ -114,6 +122,7 @@ build-release-file: - ./release/ script: - rsync -vAax "${DOCROOT}" release/ + - rsync -vAax public/assets release/public/ deploy-staging: <<: *deploy_definition @@ -98,7 +98,7 @@ vendor/bin/phpunit ### CI & Build Pipeline The engelsystem can be tested and automatically deployed to a testing/staging/production environment. -This functionality requires a [GitLab](https://about.gitlab.com/) server with a running docker minion. +This functionality requires a [GitLab](https://about.gitlab.com/) server with a working docker runner. To use the deployment features the following secret variables need to be defined (if undefined the step will be skipped): ```bash diff --git a/contrib/Dockerfile b/contrib/Dockerfile index 051e1cb7..be6818fe 100644 --- a/contrib/Dockerfile +++ b/contrib/Dockerfile @@ -1,15 +1,9 @@ -# Setup -ARG NGINX_IMAGE=engelsystem-nginx:latest - # composer install FROM composer AS composer COPY ./ /app/ RUN composer --no-ansi install --no-dev --ignore-platform-reqs RUN composer --no-ansi dump-autoload --optimize -# Use frontend container for assets -FROM ${NGINX_IMAGE} AS frontend - # Intermediate container for less layers FROM alpine as data COPY bin/ /app/bin @@ -18,7 +12,6 @@ COPY db/ /app/db COPY import/ /app/import COPY includes/ /app/includes COPY public/ /app/public -COPY --from=frontend /var/www/public/assets/ /app/public/assets COPY resources/lang /app/resources/lang COPY resources/views /app/resources/views COPY src/ /app/src |