services: market-fetcher: build: context: ./market-fetcher dockerfile: Dockerfile container_name: 'market-fetcher' volumes: - ./market-fetcher/config.yaml:/app/config.yaml - ./secrets/coingecko_api_tokens.json:/app/coingecko_api_tokens.json environment: GO_ENV: 'production' PORT: '8081' restart: unless-stopped ports: - "8081:8081" networks: - 'markets-network' healthcheck: test: [ "CMD", "wget", "-q", "--spider", "http://localhost:8081/health" ] interval: 5s timeout: 3s retries: 3 start_period: 10s market-proxy: build: context: ./nginx-proxy dockerfile: Dockerfile container_name: 'market-proxy' volumes: - ./secrets/.htpasswd:/etc/nginx/.htpasswd:ro env_file: - .env restart: unless-stopped ports: - "8080:8080" networks: - 'markets-network' healthcheck: test: ['CMD-SHELL', 'nc -z 0.0.0.0 8080'] interval: '30s' timeout: '30s' retries: 3 start_period: '10s' depends_on: market-fetcher: condition: service_healthy market-proxy-metrics: image: 'nginx/nginx-prometheus-exporter:1.4' container_name: 'market-proxy-metrics' restart: 'always' command: - '--nginx.scrape-uri=http://market-proxy:8080/stub_status' - '--web.listen-address=:8090' ports: - '8090:8090' networks: - 'markets-network' networks: markets-network: driver: bridge