mirror of
https://github.com/nextcloud/docker.git
synced 2025-03-14 18:35:08 +01:00
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: https://travis-ci.org/1john2/docker/builds/530329740 Deployment notes: - Clone source code - Create user-defined network for Docker - Start fpm container - Start nginx container
61 lines
1.2 KiB
Bash
Executable file
61 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# ##
|
|
# file name: start_ncd.sh
|
|
# Author: Malanik Jan
|
|
# Email: malanik (_dot_) jan (_at_) gmail (_dot_) com
|
|
# Description:
|
|
# - Helper script to start Nextcloud container
|
|
# ##
|
|
|
|
set -x
|
|
|
|
NAME=''
|
|
NCD_VOL='/srv/nextcloud:/var/www/html:rprivate'
|
|
TAG='20190509'
|
|
|
|
read -p "Would you like to handle apache/nginx/fpm? [nginx/apache/fpm]" NAME
|
|
read -p "Remove image? [y/n]" REMOVEIMAGE
|
|
read -p "Start container? [y/n]" STARTCONTAINER
|
|
if [ "${STARTCONTAINER}" == 'y' ]; then
|
|
read -p "Do you want to start with /bin/sleep infinity? [y/n]" STARTSLEEP
|
|
fi
|
|
|
|
IMAGE="1john2ci/nextcloud:${NAME}-ncd-${TAG}"
|
|
NAME="${NAME}-ncd"
|
|
|
|
declare -A PUBLISH=(
|
|
[nginx-ncd]=' -p 80:80 '
|
|
[fpm-ncd]=''
|
|
)
|
|
|
|
# ##
|
|
# Cleanup
|
|
# ##
|
|
docker stop "${NAME}"
|
|
docker rm "${NAME}"
|
|
if [ "${REMOVEIMAGE}" == 'y' ]; then
|
|
docker rmi "${IMAGE}"
|
|
fi
|
|
|
|
if [ "${STARTCONTAINER}" != 'y' ] ; then
|
|
exit 0
|
|
fi
|
|
# ##
|
|
# Start Container
|
|
# ##
|
|
if [ "${STARTSLEEP}" == 'y' ]; then
|
|
EXECCMD='/bin/sleep infinity'
|
|
else
|
|
EXECCMD=''
|
|
fi
|
|
eval "CMD='docker run -dit \
|
|
--hostname "${NAME}" \
|
|
--name "${NAME}" \
|
|
--net 'nextcloud' \
|
|
--volume ${NCD_VOL} \
|
|
"${PUBLISH[$NAME]}" \
|
|
"${IMAGE}" \
|
|
"${EXECCMD}" \
|
|
'"
|
|
|
|
${CMD}
|