at main 1.6 kB view raw
1services: 2 postgres: 3 image: postgres:16-alpine 4 container_name: plc-mirror-db 5 restart: unless-stopped 6 ports: 7 - "5432:5432" 8 environment: 9 - POSTGRES_DB=${POSTGRES_DB} 10 - POSTGRES_USER=${POSTGRES_USER} 11 - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} 12 volumes: 13 - postgres_data:/var/lib/postgresql/data 14 healthcheck: 15 test: ["CMD-SHELL", "pg_isready -U plc_user -d plc_mirror"] 16 interval: 10s 17 timeout: 5s 18 retries: 5 19 command: [ 20 "postgres", 21 "-c", "log_statement=all", 22 "-c", "log_duration=on", 23 "-c", "log_min_duration_statement=0", 24 "-c", "max_connections=200", 25 "-c", "shared_preload_libraries=pg_stat_statements" 26 ] 27 networks: 28 - plc-network 29 30 api: 31 build: . 32 container_name: plc-api 33 restart: unless-stopped 34 command: ["./api"] 35 ports: 36 - "3000:3000" 37 volumes: 38 - ./plc.toml:/app/plc.toml:ro 39 depends_on: 40 postgres: 41 condition: service_healthy 42 healthcheck: 43 test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/_health"] 44 interval: 30s 45 timeout: 10s 46 retries: 3 47 start_period: 40s 48 networks: 49 - plc-network 50 51 mirror: 52 build: . 53 container_name: plc-mirror 54 restart: unless-stopped 55 command: ["./mirror"] 56 volumes: 57 - ./plc.toml:/app/plc.toml:ro 58 depends_on: 59 postgres: 60 condition: service_healthy 61 networks: 62 - plc-network 63 64volumes: 65 postgres_data: 66 driver: local 67 68networks: 69 plc-network: 70 driver: bridge