mirror of
https://github.com/nextcloud/docker.git
synced 2025-06-17 00:24:47 +02:00
UPDATE:
- stack.yml contains FPM & Mariadb containers, updated volumes, networking and hostnames for container
TODO:
- update config.ini for trusted proxies support
This PR introduce POC of Nextcloud based on Nginx web server with php-fpm in separated container.
Basic installation with SQLite and few operations in web gui were tested.
Nginx dockerfile is generated from Dockerfile-nginx.template
- FROM string has hardcoded variant - apache
- There is no upstream PHP image with Nginx, due this generate-stackbrew-library is not able to identify parent correctly
New files were introduced in image:
- Dockerfile-nginx.template
- nginx-foreground
+ simulates behavior of apache2-foreground cmd
- 16.0/nginx/Dockerfile
+ generated from template Dockerfile-nginx.template
- nextcloud.confx
+ Nginx vhost configuration
- start_net.sh (temporary)
+ Helper script to create user-defined network for Docker
+ '--link' option for docker create is obsolete and we need communication between fpm and nginx container
- start_container.sh (temporary)
+ Helper script to handle containers
- Dockerfile
+ /Dockerfile for verification purposes
Updated files:
- set -x added to all shell scripts for easier troubleshooting (temporary)
- update.sh
+ New variant introduced
+ Number of builded variant is limited for simplified CI.
- .travis.yml (temporary)
+ Image push to registry for testing purposes
- docker-entrypoint.sh
+ Recognizes new argument for entrypoint - nginx-foreground
Be careful during review, github recognizes removed files for 15.0 release as renamed to 16.0/nginx variant
Motivation/Usecase:
- I have openvz based VPS where only old Docker 1.10 is supported.
- Apache(in nextcloud container) in combination Nginx as a reverse proxy for multiple vhosts doesn't work correctly
Image pull link:
docker pull 1john2ci/nextcloud:apache-20190509
docker pull 1john2ci/nextcloud:fpm-20190509
Travis CI test: 530329740
Deployment notes:
- Clone source code
- Create user-defined network for Docker
- Start fpm container
- Start nginx container
73 lines
2.1 KiB
YAML
73 lines
2.1 KiB
YAML
language: bash
|
|
services: docker
|
|
|
|
branches:
|
|
only:
|
|
- master
|
|
- Nginx
|
|
|
|
install:
|
|
- git clone https://github.com/docker-library/official-images.git ~/official-images
|
|
|
|
before_script:
|
|
- env | sort
|
|
- wget -qO- 'https://github.com/tianon/pgp-happy-eyeballs/raw/master/hack-my-builds.sh' | bash
|
|
- image="nextcloud:${VERSION}${VARIANT:+-$VARIANT}"
|
|
- if [[ "$ARCH" == 'i386' ]]; then sed -i -e 's/FROM php/FROM i386\/php/g' "${VERSION}/${VARIANT}/Dockerfile"; fi
|
|
|
|
script:
|
|
- |
|
|
(
|
|
set -Eeuo pipefail
|
|
set -x
|
|
docker build -t "$image" "${VERSION}/${VARIANT}"
|
|
~/official-images/test/run.sh "$image"
|
|
.travis/test-example-dockerfiles.sh "$image"
|
|
)
|
|
|
|
after_script:
|
|
- docker images
|
|
|
|
# ##
|
|
# For testing purposes only
|
|
# ##
|
|
- echo "${DOCKER_PASSWORD}" | docker login -u "1john2" --password-stdin
|
|
|
|
- docker tag nextcloud:16.0-apache 1john2/nextcloud:16.0-apache
|
|
- docker push 1john2/nextcloud:16.0-apache
|
|
|
|
- docker tag nextcloud:16.0-nginx 1john2/nextcloud:16.0-nginx
|
|
- docker push 1john2/nextcloud:16.0-nginx
|
|
|
|
- docker tag nextcloud:16.0-fpm-full 1john2/nextcloud:16.0-fpm-full
|
|
- docker push 1john2/nextcloud:16.0-fpm-full
|
|
|
|
jobs:
|
|
include:
|
|
- &test-scripts
|
|
stage: test scripts
|
|
env: SCRIPT=update.sh
|
|
services: []
|
|
install: skip
|
|
before_script: skip
|
|
script:
|
|
- hash_before=$(git write-tree)
|
|
- ./update.sh
|
|
- bash -c "[[ $hash_before = $(git add -A && git write-tree) ]]"
|
|
after_script: skip
|
|
|
|
- <<: *test-scripts
|
|
env: SCRIPT=generate-stackbrew-library.sh
|
|
install:
|
|
- wget -O "$HOME/bin/bashbrew" https://doi-janky.infosiftr.net/job/bashbrew/lastSuccessfulBuild/artifact/bin/bashbrew-amd64
|
|
- chmod +x "$HOME/bin/bashbrew"
|
|
script:
|
|
- ./generate-stackbrew-library.sh
|
|
|
|
- stage: test images
|
|
env: VERSION=16.0 VARIANT=nginx ARCH=amd64
|
|
- env: VERSION=16.0 VARIANT=nginx ARCH=i386
|
|
- env: VERSION=16.0 VARIANT=fpm ARCH=amd64
|
|
- env: VERSION=16.0 VARIANT=fpm ARCH=i386
|
|
- env: VERSION=16.0 VARIANT=apache ARCH=amd64
|
|
- env: VERSION=16.0 VARIANT=apache ARCH=i386
|