summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsquare <msquare@notrademark.de>2019-07-21 13:43:11 +0200
committerGitHub <noreply@github.com>2019-07-21 13:43:11 +0200
commit3fed76876c7f72faa0dd0dbf38c6b03543aa2d84 (patch)
tree00df255fcd7c3777855bee27967117440c4add8c
parent1e16f4c47ec15ffea41e1fa612d205b8db2a16d1 (diff)
parent43fa21f6553bb9e46f00d0768eab56e74c842bb4 (diff)
Merge pull request #625 from MyIgel/docker
Docker: Decouple nginx and fpm builds
-rw-r--r--.gitlab-ci.yml11
-rw-r--r--README.md2
-rw-r--r--contrib/Dockerfile7
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
diff --git a/README.md b/README.md
index 2e06be9f..02508157 100644
--- a/README.md
+++ b/README.md
@@ -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