volumes: tmp-postgres17: external: false tmp-mysql9: external: false services: mysql9: restart: unless-stopped container_name: mysql9 environment: MYSQL_ROOT_PASSWORD: mysqlrootpass volumes: - ./backups:/backups - tmp-mysql9:/var/lib/mysql healthcheck: test: ['CMD', 'mysqladmin', 'ping', '-h', 'localhost'] interval: 5s timeout: 10s retries: 5 image: mysql:9 postgres17: container_name: postgres17 restart: unless-stopped environment: - POSTGRES_USER=pguser - POSTGRES_PASSWORD=pgpass - POSTGRES_DB=_ volumes: - ./backups:/backups:rw - tmp-postgres17:/var/lib/postgresql/data image: postgres:17 healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 30s timeout: 5s retries: 5 start_period: 10s backup-cron: depends_on: postgres17: condition: service_healthy image: ghcr.io/yanhao98/docker-cron:main build: context: . dockerfile: Dockerfile environment: - APK_PACKAGES=curl jq - CRON_SCHEDULE=*/1 * * * * - RUN_CRON_ON_START=true volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./backups:/backups:ro # - ./examples/init:/docker-entrypoint-init.d - type: bind source: ./examples/cron/10-postgres-dump-docker-sock.sh target: /docker-cron.d/10-postgres-dump-docker-sock.sh bind: create_host_path: false restart: unless-stopped