version: '3.8' services: fts: build: . container_name: fts-service ports: - "8080:8080" environment: - ENV=dev - GIN_MODE=release volumes: - ./etc:/root/etc:ro - ./logs:/var/log/fts depends_on: - postgres - redis - etcd networks: - fts-network restart: unless-stopped postgres: image: postgres:15-alpine container_name: fts-postgres environment: POSTGRES_DB: fts POSTGRES_USER: fts POSTGRES_PASSWORD: fts123456 ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data networks: - fts-network restart: unless-stopped redis: image: redis:7-alpine container_name: fts-redis ports: - "6379:6379" volumes: - redis_data:/data networks: - fts-network restart: unless-stopped etcd: image: quay.io/coreos/etcd:v3.5.9 container_name: fts-etcd environment: - ETCD_NAME=etcd-server - ETCD_DATA_DIR=/etcd-data - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 - ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379 - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 - ETCD_INITIAL_ADVERTISE_PEER_URLS=http://0.0.0.0:2380 - ETCD_INITIAL_CLUSTER=etcd-server=http://0.0.0.0:2380 - ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster - ETCD_INITIAL_CLUSTER_STATE=new ports: - "2379:2379" - "2380:2380" volumes: - etcd_data:/etcd-data networks: - fts-network restart: unless-stopped minio: image: minio/minio:latest container_name: fts-minio command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: admin MINIO_ROOT_PASSWORD: admin123456 ports: - "9000:9000" - "9001:9001" volumes: - minio_data:/data networks: - fts-network restart: unless-stopped volumes: postgres_data: redis_data: etcd_data: minio_data: networks: fts-network: driver: bridge