Files
IM_NEW/docker-compose.yml
T

231 lines
5.2 KiB
YAML

version: "3.8"
services:
nginx:
image: nginx:alpine
container_name: im-nginx
restart: always
ports:
- "8009:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- user-service
- contact-service
- group-service
- message-service
- file-service
- connector-service
networks:
- im-net
consul:
image: consul:1.15
container_name: im-consul
restart: always
volumes:
- ./consul/data:/consul/data
command: "agent -server -bootstrap-expect=1 -ui -client=0.0.0.0"
ports:
- "8501:8500"
networks:
- im-net
mysql:
image: mysql:8.0
container_name: im-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root123456
MYSQL_DATABASE: im_db
MYSQL_USER: im
MYSQL_PASSWORD: im123456
ports:
- "3307:3306"
command:
--default-authentication-plugin=mysql_native_password
volumes:
- mysql-data:/var/lib/mysql
networks:
- im-net
redis:
image: redis:7
container_name: im-redis
restart: always
command: redis-server --appendonly yes
ports:
- "6380:6379"
volumes:
- redis-data:/data
networks:
- im-net
rabbitmq:
image: rabbitmq:3-management
container_name: im-rabbitmq
restart: always
environment:
RABBITMQ_DEFAULT_USER: im
RABBITMQ_DEFAULT_PASS: im123456
ports:
- "5673:5672"
- "15673:15672"
volumes:
- rabbitmq-data:/var/lib/rabbitmq
networks:
- im-net
# ── 业务服务 ──────────────────────────────────────
user-service:
image: reg.nxsir.cn/im/user-service:latest
container_name: im-user-service
restart: always
depends_on:
consul:
condition: service_started
mysql:
condition: service_started
redis:
condition: service_started
rabbitmq:
condition: service_started
ports:
- "5001:8080"
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_URLS: http://+:8080
CONSUL_URL: http://consul:8500
networks:
- im-net
contact-service:
image: reg.nxsir.cn/im/contact-service:latest
container_name: im-contact-service
restart: always
depends_on:
consul:
condition: service_started
mysql:
condition: service_started
redis:
condition: service_started
rabbitmq:
condition: service_started
user-service:
condition: service_started
ports:
- "5002:8080"
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_URLS: http://+:8080
CONSUL_URL: http://consul:8500
networks:
- im-net
group-service:
image: reg.nxsir.cn/im/group-service:latest
container_name: im-group-service
restart: always
depends_on:
consul:
condition: service_started
mysql:
condition: service_started
redis:
condition: service_started
rabbitmq:
condition: service_started
user-service:
condition: service_started
ports:
- "5003:8080"
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_URLS: http://+:8080
CONSUL_URL: http://consul:8500
networks:
- im-net
message-service:
image: reg.nxsir.cn/im/message-service:latest
container_name: im-message-service
restart: always
depends_on:
consul:
condition: service_started
mysql:
condition: service_started
redis:
condition: service_started
rabbitmq:
condition: service_started
user-service:
condition: service_started
contact-service:
condition: service_started
group-service:
condition: service_started
ports:
- "5004:8080"
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_URLS: http://+:8080
CONSUL_URL: http://consul:8500
networks:
- im-net
file-service:
image: reg.nxsir.cn/im/file-service:latest
container_name: im-file-service
restart: always
depends_on:
consul:
condition: service_started
mysql:
condition: service_started
redis:
condition: service_started
rabbitmq:
condition: service_started
ports:
- "5005:8080"
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_URLS: http://+:8080
CONSUL_URL: http://consul:8500
networks:
- im-net
connector-service:
image: reg.nxsir.cn/im/connector-service:latest
container_name: im-connector-service
restart: always
depends_on:
consul:
condition: service_started
redis:
condition: service_started
rabbitmq:
condition: service_started
message-service:
condition: service_started
ports:
- "5008:8080"
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_URLS: http://+:8080
CONSUL_URL: http://consul:8500
networks:
- im-net
networks:
im-net:
driver: bridge
volumes:
mysql-data:
redis-data:
rabbitmq-data: