migrate
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
services:
|
||||
<< service_name >>-app:
|
||||
image: docker.io/library/nextcloud:33.0.3-apache
|
||||
environment:
|
||||
- TZ=<< container_timezone >>
|
||||
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
|
||||
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
|
||||
- REDIS_HOST=<< service_name >>-redis
|
||||
<%- if database_type == 'mysql' %>
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=<< database_name >>
|
||||
- MYSQL_USER=<< database_user >>
|
||||
- MYSQL_HOST=<< service_name >>-db
|
||||
<%- elif database_type == 'postgres' %>
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- POSTGRES_DB=<< database_name >>
|
||||
- POSTGRES_USER=<< database_user >>
|
||||
- POSTGRES_HOST=<< service_name >>-db
|
||||
<%- endif %>
|
||||
<%- if traefik_enabled %>
|
||||
- NEXTCLOUD_TRUSTED_DOMAINS=<< traefik_host >>.<< traefik_domain >>
|
||||
- OVERWRITEHOST=<< traefik_host >>.<< traefik_domain >>
|
||||
<%- if traefik_tls_enabled %>
|
||||
- OVERWRITEPROTOCOL=https
|
||||
<%- else %>
|
||||
- OVERWRITEPROTOCOL=http
|
||||
<%- endif %>
|
||||
<%- endif %>
|
||||
<%- if not traefik_enabled %>
|
||||
ports:
|
||||
- target: 80
|
||||
published: << ports_http >>
|
||||
protocol: tcp
|
||||
mode: host
|
||||
<%- endif %>
|
||||
volumes:
|
||||
- nextcloud-data:/var/www/html
|
||||
networks:
|
||||
- << service_name >>-backend
|
||||
<%- if traefik_enabled %>
|
||||
- << traefik_network >>
|
||||
<%- endif %>
|
||||
depends_on:
|
||||
- << service_name >>-db
|
||||
- << service_name >>-redis
|
||||
deploy:
|
||||
replicas: << swarm_replicas >>
|
||||
<%- if traefik_enabled %>
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=<< traefik_network >>
|
||||
- traefik.http.services.<< service_name >>-web.loadbalancer.server.port=80
|
||||
- traefik.http.routers.<< service_name >>-web-http.rule=Host(`<< traefik_host >>.<< traefik_domain >>`)
|
||||
- traefik.http.routers.<< service_name >>-web-http.entrypoints=<< traefik_entrypoint >>
|
||||
- traefik.http.routers.<< service_name >>-web-http.service=<< service_name >>-web
|
||||
<%- if traefik_tls_enabled %>
|
||||
- traefik.http.routers.<< service_name >>-web-https.rule=Host(`<< traefik_host >>.<< traefik_domain >>`)
|
||||
- traefik.http.routers.<< service_name >>-web-https.entrypoints=<< traefik_tls_entrypoint >>
|
||||
- traefik.http.routers.<< service_name >>-web-https.tls=true
|
||||
- traefik.http.routers.<< service_name >>-web-https.tls.certresolver=<< traefik_tls_certresolver >>
|
||||
- traefik.http.routers.<< service_name >>-web-https.service=<< service_name >>-web
|
||||
<%- endif %>
|
||||
<%- endif %>
|
||||
|
||||
<< service_name >>-cron:
|
||||
image: docker.io/library/nextcloud:33.0.3-apache
|
||||
entrypoint: /cron.sh
|
||||
environment:
|
||||
- TZ=<< container_timezone >>
|
||||
- REDIS_HOST=<< service_name >>-redis
|
||||
<%- if database_type == 'mysql' %>
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=<< database_name >>
|
||||
- MYSQL_USER=<< database_user >>
|
||||
- MYSQL_HOST=<< service_name >>-db
|
||||
<%- elif database_type == 'postgres' %>
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- POSTGRES_DB=<< database_name >>
|
||||
- POSTGRES_USER=<< database_user >>
|
||||
- POSTGRES_HOST=<< service_name >>-db
|
||||
<%- endif %>
|
||||
volumes:
|
||||
- nextcloud-data:/var/www/html
|
||||
networks:
|
||||
- << service_name >>-backend
|
||||
depends_on:
|
||||
- << service_name >>-app
|
||||
deploy:
|
||||
replicas: 1
|
||||
|
||||
<< service_name >>-redis:
|
||||
image: docker.io/library/redis:8-alpine
|
||||
command: redis-server --appendonly yes
|
||||
volumes:
|
||||
- nextcloud-redis:/data
|
||||
networks:
|
||||
- << service_name >>-backend
|
||||
deploy:
|
||||
replicas: 1
|
||||
|
||||
<< service_name >>-db:
|
||||
<%- if database_type == 'mysql' %>
|
||||
# See compatibility matrix for Nextcloud 31
|
||||
# https://docs.nextcloud.com/server/31/admin_manual/installation/system_requirements.html
|
||||
image: docker.io/library/mariadb:10.11.16
|
||||
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||
environment:
|
||||
- TZ=<< container_timezone >>
|
||||
- MYSQL_RANDOM_ROOT_PASSWORD=true
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=<< database_name >>
|
||||
- MYSQL_USER=<< database_user >>
|
||||
volumes:
|
||||
- nextcloud-db:/var/lib/mysql
|
||||
networks:
|
||||
- << service_name >>-backend
|
||||
<%- elif database_type == 'postgres' %>
|
||||
image: docker.io/library/postgres:17.9
|
||||
environment:
|
||||
- TZ=<< container_timezone >>
|
||||
- POSTGRES_USER=<< database_user >>
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- POSTGRES_DB=<< database_name >>
|
||||
volumes:
|
||||
- nextcloud-db:/var/lib/postgresql/data
|
||||
networks:
|
||||
- << service_name >>-backend
|
||||
<%- endif %>
|
||||
deploy:
|
||||
replicas: 1
|
||||
|
||||
volumes:
|
||||
nextcloud-data:
|
||||
driver: local
|
||||
nextcloud-db:
|
||||
driver: local
|
||||
nextcloud-redis:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
<< service_name >>-backend:
|
||||
driver: overlay
|
||||
attachable: true
|
||||
<%- if traefik_enabled %>
|
||||
<< traefik_network >>:
|
||||
external: true
|
||||
<%- endif %>
|
||||
Reference in New Issue
Block a user