services: plugin-db: # One DB instance for all plugins, which point to different databases image: postgres:15 environment: POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword POSTGRES_DB: vultisig-copytrader ports: - "5431:5432" volumes: - db_data:/var/lib/postgresql/data healthcheck: test: [ "CMD", "pg_isready", "-d", "vultisig-copytrader", "-U", "myuser" ] interval: 1s timeout: 5s retries: 3 networks: - shared_network redis-copytrader: image: redis:latest ports: - "6378:6379" networks: - shared_network healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 1s timeout: 5s retries: 3 volumes: - redis_copytrader:/data minio-plugin: build: context: . dockerfile: Dockerfile.minio platforms: - linux/amd64 ports: - "9100:9000" # s3 api - "9091:9090" # console environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin volumes: - minio_data:/data networks: - shared_network copytrader-server: build: context: . dockerfile: Dockerfile.Copytrader.server platforms: - linux/amd64 environment: REDIS_HOST: redis-copytrader REDIS_PORT: 6379 BLOCK_STORAGE_HOST: http://minio-plugin:9000 DATABASE_DSN: postgres://myuser:mypassword@plugin-db:5432/vultisig-copytrader?sslmode=disable ports: - "8081:8080" depends_on: plugin-db: condition: service_healthy redis-copytrader: condition: service_healthy minio-plugin: condition: service_started networks: - shared_network copytrader-worker: build: context: . dockerfile: Dockerfile.Copytrader.worker platforms: - linux/amd64 environment: REDIS_HOST: redis-copytrader REDIS_PORT: 6379 BLOCK_STORAGE_HOST: http://minio-plugin:9000 DATABASE_DSN: postgres://myuser:mypassword@plugin-db:5432/vultisig-copytrader?sslmode=disable depends_on: plugin-db: condition: service_healthy redis-copytrader: condition: service_healthy minio-plugin: condition: service_started networks: - shared_network volumes: db_data: minio_data: redis_copytrader: networks: shared_network: external: true