version: '3.8' services: app: environment: - POSTGRES_HOST=db - POSTGRES_DB=nextcloud - POSTGRES_USER=nextcloud - POSTGRES_PASSWORD_FILE=/run/secrets/db_password - NEXTCLOUD_UPDATE=1 db: image: "pgautoupgrade/pgautoupgrade:17-debian" #setting max_connections with -c breaks pgautoupgrade #command: -c "max_connections=${MAX_DB_CONNECTIONS:-100}" volumes: - "postgres:/var/lib/postgresql/data" networks: - internal environment: POSTGRES_USER: nextcloud POSTGRES_PASSWORD_FILE: /run/secrets/db_password POSTGRES_DB: nextcloud secrets: - db_password # The pgautoupgrade image already ships its own HEALTHCHECK. # This runs pg_isready but also takes into accounts if pg_upgrade is being run. # No need to override it here. # healthcheck: # test: ["CMD", "/usr/local/bin/pgautoupgrade-healthcheck.sh"] deploy: labels: backupbot.backup.pre-hook: "/pg_backup.sh backup" backupbot.backup.volumes.postgres.path: "backup.sql" backupbot.restore.post-hook: '/pg_backup.sh restore' configs: - source: pg_backup target: /pg_backup.sh mode: 0555 volumes: postgres: configs: pg_backup: name: ${STACK_NAME}_pg_backup_${PG_BACKUP_VERSION} file: pg_backup.sh