version: "3" services: db: container_name: db image: postgres:13.2 restart: always expose: - "5432" ports: - "5431:5432" env_file: - ./.env.sample volumes: - db:/var/lib/postgresql/data app: container_name: app build: ./ healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000"] interval: 10s timeout: 10s retries: 10 start_period: 1m30s depends_on: - db env_file: - ./.env.sample ports: - "3000:3000" volumes: - ./:/app links: - db worker: container_name: worker build: ./worker depends_on: db: condition: service_started app: condition: service_healthy env_file: - ./.env.sample ports: - "8080:8080" volumes: - ./:/app links: - db entrypoint: ["/bin/sh", "-c"] command: - node worker/index.js imgproxy: container_name: imgproxy image: darthsim/imgproxy:v3.18.1 healthcheck: test: [ "CMD", "imgproxy", "health" ] timeout: 10s interval: 10s retries: 3 restart: always env_file: - ./.env.sample expose: - "8080" ports: - "3001:8080" links: - app volumes: db: