services: db: image: postgres:16 container_name: daylog-db restart: always env_file: - .env ports: - 5432:5432 healthcheck: test: [ 'CMD-SHELL', 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB} -h ${POSTGRES_HOST} -p ${POSTGRES_PORT}', ] interval: 5s timeout: 5s retries: 5 volumes: - data:/var/lib/postgresql/data redis: image: redis:7-alpine container_name: daylog-redis restart: always ports: - 6379:6379 healthcheck: test: ['CMD', 'redis-cli', 'ping'] interval: 5s timeout: 5s retries: 5 volumes: - redis:/data app: build: context: . dockerfile: Dockerfile image: davidartifacts/daylog:${TAG_NAME} container_name: daylog-app ports: - 3000:3000 env_file: - .env depends_on: db: condition: service_healthy redis: condition: service_healthy volumes: - storage:/app/storage volumes: data: redis: storage: driver: local