services: api: build: context: . dockerfile: Dockerfile ports: - "3000:3000" environment: NODE_ENV: production OTEL_EXPORTER_OTLP_ENDPOINT: http://tracing:4318 OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf DATABASE_URL: ${DATABASE_URL} networks: - api-network depends_on: - tracing tracing: image: jaegertracing/all-in-one:latest environment: COLLECTOR_ZIPKIN_HOST_PORT: 9411 COLLECTOR_OTLP_ENABLED: true ports: - "16686:16686" networks: - api-network db: image: postgres:latest env_file: - .env environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: postgres ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data networks: - api-network minio: image: minio/minio:latest ports: - "9000:9000" - "9001:9001" environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY} MINIO_SECRET_KEY: ${MINIO_SECRET_KEY} command: server /data --console-address ":9001" volumes: - minio_data:/data healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 30s timeout: 20s retries: 3 networks: - api-network networks: api-network: driver: bridge volumes: postgres_data: minio_data: