130 lines
2.7 KiB
YAML
130 lines
2.7 KiB
YAML
---
|
|
# Adapted from:
|
|
# https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/postgres/fpm/docker-compose.yml
|
|
|
|
version: '3'
|
|
|
|
volumes:
|
|
postgres:
|
|
nextcloud_src:
|
|
nextcloud_data:
|
|
certs:
|
|
vhost.d:
|
|
html:
|
|
redis:
|
|
minidlna_state:
|
|
minidlna_data:
|
|
|
|
networks:
|
|
proxy-tier:
|
|
|
|
services:
|
|
|
|
postgres:
|
|
build: ./postgres
|
|
restart: always
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
volumes:
|
|
- postgres:/var/lib/postgresql/data
|
|
env_file:
|
|
- postgres.env
|
|
|
|
redis:
|
|
restart: always
|
|
image: redis:6.0.9-alpine
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
volumes:
|
|
- redis:/data
|
|
|
|
nextcloud:
|
|
image: nextcloud:18.0.13-fpm-alpine
|
|
restart: always
|
|
volumes:
|
|
- nextcloud_src:/var/www/html
|
|
- nextcloud_data:/var/www/data
|
|
- minidlna_data:/var/www/ext/media
|
|
- /srv:/srv
|
|
links:
|
|
- postgres
|
|
- redis
|
|
env_file:
|
|
- nextcloud.env
|
|
environment:
|
|
- POSTGRES_HOST=postgres
|
|
- REDIS_HOST=redis
|
|
- POSTGRES_USER=nextcloud
|
|
# healthcheck:
|
|
# test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:3000/health || exit 1"]
|
|
|
|
nextcloud_cron:
|
|
image: nextcloud:18.0.13-fpm-alpine
|
|
restart: always
|
|
volumes:
|
|
- nextcloud_src:/var/www/html
|
|
- nextcloud_data:/var/www/data
|
|
entrypoint: /cron.sh
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
|
|
web:
|
|
build: ./web
|
|
restart: always
|
|
volumes:
|
|
- nextcloud_src:/var/www/html:ro
|
|
env_file:
|
|
- web.env
|
|
depends_on:
|
|
- nextcloud
|
|
networks:
|
|
- proxy-tier
|
|
- default
|
|
|
|
proxy:
|
|
build: ./proxy
|
|
restart: always
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
labels:
|
|
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
|
|
volumes:
|
|
- certs:/etc/nginx/certs:ro
|
|
- vhost.d:/etc/nginx/vhost.d
|
|
- html:/usr/share/nginx/html
|
|
- /var/run/docker.sock:/tmp/docker.sock:ro
|
|
networks:
|
|
- proxy-tier
|
|
|
|
letsencrypt-companion:
|
|
image: jrcs/letsencrypt-nginx-proxy-companion:v1.13.1
|
|
restart: always
|
|
volumes:
|
|
- certs:/etc/nginx/certs
|
|
- vhost.d:/etc/nginx/vhost.d
|
|
- html:/usr/share/nginx/html
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
networks:
|
|
- proxy-tier
|
|
depends_on:
|
|
- proxy
|
|
env_file:
|
|
- letsencrypt-companion.env
|
|
|
|
minidlna:
|
|
image: vladgh/minidlna:0.5
|
|
restart: always
|
|
volumes:
|
|
- minidlna_state:/minidlna
|
|
- minidlna_data:/media:ro
|
|
network_mode: host
|
|
environment:
|
|
- UPID=2000
|
|
- UGID=2000
|
|
- MINIDLNA_INOTIFY=yes
|
|
- MINIDLNA_MEDIA_DIR_1=A,/media/audio
|
|
- MINIDLNA_MEDIA_DIR_2=V,/media/video
|
|
- MINIDLNA_FRIENDLY_NAME=Snackpot
|