Merge pull request #625 from MyIgel/docker
Docker: Decouple nginx and fpm builds
This commit is contained in:
commit
3fed76876c
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue