145 lines
3.2 KiB
YAML
145 lines
3.2 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
mysql:
|
|
image: mysql:8.0.36
|
|
container_name: mci-mysql
|
|
profiles: ["infra"]
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: root
|
|
MYSQL_DATABASE: sino_mci
|
|
ports:
|
|
- "3306:3306"
|
|
volumes:
|
|
- mci-mysql-data:/var/lib/mysql
|
|
networks:
|
|
- mci-network
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proot"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 20
|
|
start_period: 30s
|
|
|
|
redis:
|
|
image: redis:7.2
|
|
container_name: mci-redis
|
|
profiles: ["infra"]
|
|
ports:
|
|
- "6379:6379"
|
|
networks:
|
|
- mci-network
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 10s
|
|
|
|
rabbitmq:
|
|
image: rabbitmq:3.13-management
|
|
container_name: mci-rabbitmq
|
|
profiles: ["infra"]
|
|
environment:
|
|
RABBITMQ_DEFAULT_USER: guest
|
|
RABBITMQ_DEFAULT_PASS: guest
|
|
ports:
|
|
- "5672:5672"
|
|
- "15672:15672"
|
|
networks:
|
|
- mci-network
|
|
healthcheck:
|
|
test: ["CMD", "rabbitmq-diagnostics", "ping"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 15
|
|
start_period: 30s
|
|
|
|
seaweedfs:
|
|
image: chrislusf/seaweedfs:3.62
|
|
container_name: mci-seaweedfs
|
|
profiles: ["infra"]
|
|
ports:
|
|
- "9333:9333"
|
|
- "8888:8888"
|
|
command: server -dir=/data
|
|
volumes:
|
|
- mci-seaweedfs-data:/data
|
|
networks:
|
|
- mci-network
|
|
|
|
mci-server:
|
|
build:
|
|
context: ./backend/mci-server
|
|
dockerfile: Dockerfile
|
|
container_name: mci-server
|
|
profiles: ["app"]
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
- SPRING_PROFILES_ACTIVE=dev
|
|
- SPRING_DATASOURCE_URL=jdbc:mysql://mci-mysql:3306/sino_mci?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
|
|
- SPRING_DATASOURCE_USERNAME=root
|
|
- SPRING_DATASOURCE_PASSWORD=root
|
|
- SPRING_DATA_REDIS_HOST=mci-redis
|
|
- SPRING_RABBITMQ_HOST=mci-rabbitmq
|
|
networks:
|
|
- mci-network
|
|
depends_on:
|
|
mysql:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-fsS", "http://localhost:8080/msg-platform/api/v1/health"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 15
|
|
start_period: 90s
|
|
|
|
admin-web:
|
|
build:
|
|
context: ./admin-web
|
|
dockerfile: Dockerfile
|
|
container_name: mci-admin-web
|
|
profiles: ["app"]
|
|
ports:
|
|
- "80:80"
|
|
networks:
|
|
- mci-network
|
|
depends_on:
|
|
mci-server:
|
|
condition: service_healthy
|
|
|
|
channel-service:
|
|
build:
|
|
context: ./channel-service
|
|
dockerfile: Dockerfile
|
|
container_name: mci-channel-service
|
|
profiles: ["app"]
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- MCI_SERVER_URL=http://mci-server:8080/msg-platform
|
|
networks:
|
|
- mci-network
|
|
depends_on:
|
|
mci-server:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-fsS", "http://localhost:8000/health"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 30s
|
|
|
|
volumes:
|
|
mci-mysql-data:
|
|
mci-seaweedfs-data:
|
|
|
|
networks:
|
|
mci-network:
|
|
driver: bridge
|