docker-compose.yml
· 2.5 KiB · YAML
Raw
services:
caddy:
image: lucaslorentz/caddy-docker-proxy:ci-alpine
container_name: reverse-proxy
ports:
- 80:80
- 443:443
environment:
- CADDY_INGRESS_NETWORKS=nextcloud_network
networks:
- nextcloud_network
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- caddy_data:/data
restart: unless-stopped
web:
image: nginx:alpine
container_name: nextcloud-web
networks:
- nextcloud_network
links:
- nextcloud
labels:
caddy: nextcloud.emanuelegori.uno
caddy.reverse_proxy: "{{upstreams}}"
caddy.header: /*
caddy.header.Strict-Transport-Security: '"max-age=15552000;"'
caddy.rewrite_0: /.well-known/carddav /remote.php/dav
caddy.rewrite_1: /.well-known/caldav /remote.php/dav
caddy.rewrite_2: /.well-known/webfinger /index.php/.well-known/webfinger
caddy.rewrite_3: /.well-known/nodeinfo /index.php/.well-known/nodeinfo
volumes:
- nextcloud_data:/var/www/html:z,ro
- ./nginx.conf:/etc/nginx/nginx.conf:ro
restart: unless-stopped
db:
image: mariadb:lts
container_name: mariadb-database
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
networks:
- nextcloud_network
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_DATABASE
restart: unless-stopped
redis:
image: redis:alpine
container_name: redis-dbcache
networks:
- nextcloud_network
restart: unless-stopped
nextcloud:
image: nextcloud:stable-fpm
container_name: nextcloud-app
networks:
- nextcloud_network
volumes:
- nextcloud_data:/var/www/html:z
- ./php-fpm-www.conf:/usr/local/etc/php-fpm.d/www.conf:ro
environment:
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_DATABASE
- MYSQL_HOST
- REDIS_HOST
- OVERWRITEPROTOCOL
- OVERWRITEHOST
- TRUSTED_PROXIES
- APACHE_DISABLE_REWRITE_IP
restart: unless-stopped
depends_on:
- caddy
- db
- redis
cron:
image: nextcloud:stable-fpm
container_name: nextcloud-cron
networks:
- nextcloud_network
volumes:
- nextcloud_data:/var/www/html:z
entrypoint: /cron.sh
restart: unless-stopped
depends_on:
- db
- redis
networks:
nextcloud_network:
external: true
volumes:
caddy_data: {}
db_data: {}
nextcloud_data: {}
| 1 | services: |
| 2 | |
| 3 | caddy: |
| 4 | image: lucaslorentz/caddy-docker-proxy:ci-alpine |
| 5 | container_name: reverse-proxy |
| 6 | ports: |
| 7 | - 80:80 |
| 8 | - 443:443 |
| 9 | environment: |
| 10 | - CADDY_INGRESS_NETWORKS=nextcloud_network |
| 11 | networks: |
| 12 | - nextcloud_network |
| 13 | volumes: |
| 14 | - /var/run/docker.sock:/var/run/docker.sock |
| 15 | - caddy_data:/data |
| 16 | restart: unless-stopped |
| 17 | |
| 18 | web: |
| 19 | image: nginx:alpine |
| 20 | container_name: nextcloud-web |
| 21 | networks: |
| 22 | - nextcloud_network |
| 23 | links: |
| 24 | - nextcloud |
| 25 | labels: |
| 26 | caddy: nextcloud.emanuelegori.uno |
| 27 | caddy.reverse_proxy: "{{upstreams}}" |
| 28 | caddy.header: /* |
| 29 | caddy.header.Strict-Transport-Security: '"max-age=15552000;"' |
| 30 | caddy.rewrite_0: /.well-known/carddav /remote.php/dav |
| 31 | caddy.rewrite_1: /.well-known/caldav /remote.php/dav |
| 32 | caddy.rewrite_2: /.well-known/webfinger /index.php/.well-known/webfinger |
| 33 | caddy.rewrite_3: /.well-known/nodeinfo /index.php/.well-known/nodeinfo |
| 34 | volumes: |
| 35 | - nextcloud_data:/var/www/html:z,ro |
| 36 | - ./nginx.conf:/etc/nginx/nginx.conf:ro |
| 37 | restart: unless-stopped |
| 38 | |
| 39 | db: |
| 40 | image: mariadb:lts |
| 41 | container_name: mariadb-database |
| 42 | command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW |
| 43 | networks: |
| 44 | - nextcloud_network |
| 45 | volumes: |
| 46 | - db_data:/var/lib/mysql |
| 47 | environment: |
| 48 | - MYSQL_ROOT_PASSWORD |
| 49 | - MYSQL_USER |
| 50 | - MYSQL_PASSWORD |
| 51 | - MYSQL_DATABASE |
| 52 | restart: unless-stopped |
| 53 | |
| 54 | redis: |
| 55 | image: redis:alpine |
| 56 | container_name: redis-dbcache |
| 57 | networks: |
| 58 | - nextcloud_network |
| 59 | restart: unless-stopped |
| 60 | |
| 61 | nextcloud: |
| 62 | image: nextcloud:stable-fpm |
| 63 | container_name: nextcloud-app |
| 64 | networks: |
| 65 | - nextcloud_network |
| 66 | volumes: |
| 67 | - nextcloud_data:/var/www/html:z |
| 68 | - ./php-fpm-www.conf:/usr/local/etc/php-fpm.d/www.conf:ro |
| 69 | environment: |
| 70 | - MYSQL_USER |
| 71 | - MYSQL_PASSWORD |
| 72 | - MYSQL_DATABASE |
| 73 | - MYSQL_HOST |
| 74 | - REDIS_HOST |
| 75 | - OVERWRITEPROTOCOL |
| 76 | - OVERWRITEHOST |
| 77 | - TRUSTED_PROXIES |
| 78 | - APACHE_DISABLE_REWRITE_IP |
| 79 | restart: unless-stopped |
| 80 | depends_on: |
| 81 | - caddy |
| 82 | - db |
| 83 | - redis |
| 84 | |
| 85 | cron: |
| 86 | image: nextcloud:stable-fpm |
| 87 | container_name: nextcloud-cron |
| 88 | networks: |
| 89 | - nextcloud_network |
| 90 | volumes: |
| 91 | - nextcloud_data:/var/www/html:z |
| 92 | entrypoint: /cron.sh |
| 93 | restart: unless-stopped |
| 94 | depends_on: |
| 95 | - db |
| 96 | - redis |
| 97 | |
| 98 | networks: |
| 99 | nextcloud_network: |
| 100 | external: true |
| 101 | |
| 102 | volumes: |
| 103 | caddy_data: {} |
| 104 | db_data: {} |
| 105 | nextcloud_data: {} |