Files
my-chat_-server/docker-compose.yml
2025-10-13 19:25:33 +08:00

221 lines
8.3 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# version: "3.8"
services:
etcd:
image: quay.io/coreos/etcd:v3.5.0
container_name: etcd-service
environment:
- ETCD_NAME=etcd-s1
- ETCD_DATA_DIR=/var/lib/etcd
- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
- ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
- ./middle/data/etcd:/var/lib/etcd:rw
ports:
- 2379:2379
restart: always
mysql:
image: mysql:8.0.42
container_name: mysql-service
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
- ./sql:/docker-entrypoint-initdb.d/:rw
- ./middle/data/mysql:/var/lib/mysql:rw
ports:
- 3306:3306
restart: always
redis:
image: redis:7.0.15
container_name: redis-service
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
- ./middle/data/redis:/var/lib/redis:rw
ports:
- 6379:6379
restart: always
elasticsearch:
image: elasticsearch:7.17.21
container_name: elasticsearch-service
environment:
- "discovery.type=single-node"
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
- ./middle/data/elasticsearch:/data:rw
ports:
- 9200:9200
- 9300:9300
restart: always
rabbitmq:
image: rabbitmq:3.10.8
container_name: rabbitmq-service
environment:
RABBITMQ_DEFAULT_USER: root
RABBITMQ_DEFAULT_PASS: 123456
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
- ./middle/data/rabbitmq:/var/lib/rabbitmq:rw
ports:
- 5672:5672
restart: always
file_server:
build: ./file
#image: server-user_server
container_name: file_server-service
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
# 挂载的信息: entrypoint.sh文件 数据目录(im/logs, im/data), 配置文件
- ./conf/file_server.conf:/im/conf/file_server.conf
- ./middle/data/logs:/im/logs:rw
- ./middle/data/data:/im/data:rw
- ./entrypoint.sh:/im/bin/entrypoint.sh
ports:
- 10002:10002
restart: always
entrypoint:
# 跟dockerfile中的cmd比较类似都是容器启动后的默认操作--替代dockerfile中的cmd
/im/bin/entrypoint.sh -h 10.0.0.235 -p 2379 -c "/im/bin/file_server -flagfile=/im/conf/file_server.conf"
depends_on:
- etcd
friend_server:
build: ./friend
#image: file-server:v1
container_name: friend_server-service
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
# 挂载的信息: entrypoint.sh文件 数据目录(im/logs, im/data), 配置文件
- ./conf/friend_server.conf:/im/conf/friend_server.conf
- ./middle/data/logs:/im/logs:rw
- ./middle/data/data:/im/data:rw
- ./entrypoint.sh:/im/bin/entrypoint.sh
ports:
- 10006:10006
restart: always
depends_on:
- etcd
- mysql
- elasticsearch
entrypoint:
# 跟dockerfile中的cmd比较类似都是容器启动后的默认操作--替代dockerfile中的cmd
/im/bin/entrypoint.sh -h 10.0.0.235 -p 2379,3306,9200 -c "/im/bin/friend_server -flagfile=/im/conf/friend_server.conf"
gateway_server:
build: ./gateway
#image: file-server:v1
container_name: gateway_server-service
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
# 挂载的信息: entrypoint.sh文件 数据目录(im/logs, im/data), 配置文件
- ./conf/gateway_server.conf:/im/conf/gateway_server.conf
- ./middle/data/logs:/im/logs:rw
- ./middle/data/data:/im/data:rw
- ./entrypoint.sh:/im/bin/entrypoint.sh
ports:
- 9000:9000
- 9001:9001
restart: always
depends_on:
- etcd
- redis
entrypoint:
# 跟dockerfile中的cmd比较类似都是容器启动后的默认操作--替代dockerfile中的cmd
/im/bin/entrypoint.sh -h 10.0.0.235 -p 2379,6379 -c "/im/bin/gateway_server -flagfile=/im/conf/gateway_server.conf"
message_server:
build: ./message
#image: file-server:v1
container_name: message_server-service
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
# 挂载的信息: entrypoint.sh文件 数据目录(im/logs, im/data), 配置文件
- ./conf/message_server.conf:/im/conf/message_server.conf
- ./middle/data/logs:/im/logs:rw
- ./middle/data/data:/im/data:rw
- ./entrypoint.sh:/im/bin/entrypoint.sh
ports:
- 10005:10005
restart: always
depends_on:
- etcd
- mysql
- elasticsearch
- rabbitmq
entrypoint:
# 跟dockerfile中的cmd比较类似都是容器启动后的默认操作--替代dockerfile中的cmd
/im/bin/entrypoint.sh -h 10.0.0.235 -p 2379,3306,9200,5672 -c "/im/bin/message_server -flagfile=/im/conf/message_server.conf"
speech_server:
build: ./speech
#image: file-server:v1
container_name: speech_server-service
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
# 挂载的信息: entrypoint.sh文件 数据目录(im/logs, im/data), 配置文件
- ./conf/speech_server.conf:/im/conf/speech_server.conf
- ./middle/data/logs:/im/logs:rw
- ./middle/data/data:/im/data:rw
- ./entrypoint.sh:/im/bin/entrypoint.sh
ports:
- 10001:10001
restart: always
depends_on:
- etcd
entrypoint:
# 跟dockerfile中的cmd比较类似都是容器启动后的默认操作--替代dockerfile中的cmd
/im/bin/entrypoint.sh -h 10.0.0.235 -p 2379 -c "/im/bin/speech_server -flagfile=/im/conf/speech_server.conf"
transmite_server:
build: ./transmite
#image: file-server:v1
container_name: transmite_server-service
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
# 挂载的信息: entrypoint.sh文件 数据目录(im/logs, im/data), 配置文件
- ./conf/transmite_server.conf:/im/conf/transmite_server.conf
- ./middle/data/logs:/im/logs:rw
- ./middle/data/data:/im/data:rw
- ./entrypoint.sh:/im/bin/entrypoint.sh
ports:
- 10004:10004
restart: always
depends_on:
- etcd
- mysql
- rabbitmq
entrypoint:
# 跟dockerfile中的cmd比较类似都是容器启动后的默认操作--替代dockerfile中的cmd
/im/bin/entrypoint.sh -h 10.0.0.235 -p 2379,3306,5672 -c "/im/bin/transmite_server -flagfile=/im/conf/transmite_server.conf"
user_server:
build: ./user
#image: file-server:v1
container_name: user_server-service
volumes:
# 1. 希望容器内的程序能够访问宿主机上的文件
# 2. 希望容器内程序运行所产生的数据文件能落在宿主机上
# 挂载的信息: entrypoint.sh文件 数据目录(im/logs, im/data), 配置文件
- ./conf/user_server.conf:/im/conf/user_server.conf
- ./middle/data/logs:/im/logs:rw
- ./middle/data/data:/im/data:rw
- ./entrypoint.sh:/im/bin/entrypoint.sh
ports:
- 10003:10003
restart: always
depends_on:
- etcd
- mysql
- redis
- elasticsearch
entrypoint:
# 跟dockerfile中的cmd比较类似都是容器启动后的默认操作--替代dockerfile中的cmd
/im/bin/entrypoint.sh -h 10.0.0.235 -p 2379,3306,5672,9200 -c "/im/bin/user_server -flagfile=/im/conf/user_server.conf"