uci-nextcloud/docker-compose.yml

148 lines
4.0 KiB
YAML

# https://www.datanovia.com/en/lessons/docker-compose-wait-for-container-using-wait-tool/docker-compose-wait-for-mysql-container-to-be-ready/
# todo add wait on db
version: '3'
# networks:
# default:
# external:
# name: nextcloud_net
services:
nextcloud-db:
image: mariadb:latest
container_name: nextcloud-db
hostname: nextcloud-db
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb_read_only_compressed=OFF
restart: unless-stopped
env_file: ${ENV_FILE}
volumes:
- ${HOST_NEXTCLOUD_DB:-db}:/var/lib/mysql
#
# nextcloud-db-admin:
# image: phpmyadmin:latest
# container_name: nextcloud-db-admin
# depends_on:
# - nextcloud-db
# links:
# - nextcloud-db:db
# environment:
# PMA_HOST: db
# PMA_PORT: 3306
# PMA_ARBITRARY: 1
# restart: unless-stopped
# ports:
# - 8081:80
nextcloud-redis:
image: redis:alpine
container_name: nextcloud-redis
depends_on:
- nextcloud-db
hostname: nextcloud-redis
restart: unless-stopped
nextcloud-app:
image: uci-nextcloud-app
build:
context: .
container_name: nextcloud-app
hostname: nextcloud-app
restart: ${RESTART:-unless-stopped}
privileged: true
env_file: ${ENV_FILE}
environment:
- NEXTCLOUD_INSTALL
- MYSQL_HOST=nextcloud-db
- REDIS_HOST=nextcloud-redis
- NEXTCLOUD_DATA_DIR=/var/www/data
- OVERWRITEPROTOCOL=https
- OVERWRITECLIURL=${NEXTCLOUD_DOMAIN}
depends_on:
- nextcloud-db
- nextcloud-redis
volumes:
- ${HOST_NEXTCLOUD_SRC:-app}:/app
- ${HOST_NEXTCLOUD_USERFILES:-user-files}:/user-files
nextcloud-web:
image: caddy:latest
container_name: nextcloud-web
hostname: nextcloud-web
restart: unless-stopped
depends_on:
- nextcloud-app
ports:
- 8080:80
links:
- nextcloud-app
# volumes_from:
# - nextcloud-app:ro
volumes:
- ./.Caddyfile:/etc/caddy/Caddyfile
- ${HOST_NEXTCLOUD_SRC:-app}:/var/www/html:ro
# - ${HOST_NEXTCLOUD_SRC}:/var/www/html:ro
#
# collabora:
# image: collabora/code:latest
# container_name: nextcloud-collabora
# restart: unless-stopped
# volumes:
# # make sure these exist on your host
# - /etc/localtime:/etc/localtime
# - /etc/timezone:/etc/timezone
# ports:
# - "9980:9980"
# depends_on:
# - nextcloud-web
# environment:
# - 'server_name=${NEXTCLOUD_DOMAIN}'
# - 'dictionaries=${COLLABRA_DICTIONARIES:-en_US}'
# - extra_params=--o:ssl.enable=true --o:ssl.termination=false
# cap_add:
# - MKNOD
# tty: true
#
# nextcloud-cron:
# image: nextcloud:fpm-alpine
# container_name: nextcloud-cron
# hostname: nextcloud-cron
# restart: unless-stopped
# env_file: ${ENV_FILE}
# environment:
# - MYSQL_HOST=nextcloud-db
# - REDIS_HOST=nextcloud-redis
# - NEXTCLOUD_DATA_DIR=/var/www/data
# - OVERWRITEPROTOCOL=https
# - OVERWRITECLIURL=${NEXTCLOUD_DOMAIN}
# volumes:
# - ${HOST_NEXTCLOUD_SRC:-app}:/var/www/html
# - ${HOST_NEXTCLOUD_USERFILES:-user-files}:/var/www/data
# entrypoint: /cron.sh
# depends_on:
# - nextcloud-app
# if bindings are desired then uncomment out driver and driveropts for a volume
# YOU MUST FIRST move volumes to this location
volumes:
db:
# driver: local
# driver_opts:
# o: bind
# type: none
# device: ${HOST_NEXTCLOUD_DB}
app:
# driver: local
# driver_opts:
# o: bind
# type: none
# device: ${HOST_NEXTCLOUD_SRC}
user-files:
# driver: local
# driver_opts:
# o: bind
# type: none
# device: ${HOST_NEXTCLOUD_USERFILES}