-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
203 lines (192 loc) · 7.21 KB
/
docker-compose.yml
File metadata and controls
203 lines (192 loc) · 7.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
version: '3.5'
# 网络配置
networks:
backend:
driver: ${NETWORKS_DRIVER}
# 服务容器配置
services:
php:
image: tangshaoxu/php-swoole-dev8:v2.0
container_name: mall-php
volumes:
- ${PHP_CODE_PATH}:/app
ports: # 设置端口映射 暂时支持最多3个服务运行 不够自己再加
- "9501:9501"
- "9502:9502"
- "9503:9503"
- "9601:9601"
- "9602:9602"
- "9603:9603"
- "9701:9701"
- "9702:9702"
- "9703:9703"
networks:
- backend
privileged: true
stdin_open: true # 打开标准输入,可以接受外部输入
tty: true
restart: always
# #Consul 若选择 consul请关闭注释
# consul: # 自定义容器名称
# image: consul:1.14.2
# container_name: mall-consul
# environment:
# - CONSUL_BIND_INTERFACE=eth0
# ports: # 设置端口映射
# - "${CONSUL_PORT}:8500"
# networks:
# - backend
# command: ["consul","agent","-server","-bootstrap","-data-dir","/consul","-ui","-bind","127.0.0.1","-client","0.0.0.0"]
# restart: always
mysql:
# image: mysql:8.0
build:
context: ./config/mysql
container_name: mall-mysql
environment:
- TZ=${TZ}
- MYSQL_USER=${MYSQL_USERNAME} # 设置 Mysql 用户名称
- MYSQL_PASSWORD=${MYSQL_PASSWORD} # 设置 Mysql 用户密码
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} # 设置 Mysql root 用户密码
privileged: true
volumes:
- ${DATA_PATH_HOST}/mysql:/var/lib/mysql # 引用 .env 配置中 DATA_PATH_HOST 变量,将宿主机上存放 Mysql 数据的目录挂载到容器中 /var/lib/mysql 目录
ports:
- "${MYSQL_PORT}:3306" # 设置容器3306端口映射指定宿主机端口
networks:
- backend
restart: always
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
interval: 5s
timeout: 10s
retries: 10
redis:
image: redis:5.0
container_name: mall-redis
environment:
- TZ=${TZ}
privileged: true
volumes:
- ${DATA_PATH_HOST}/redis:/data # 引用 .env 配置中 DATA_PATH_HOST 变量,将宿主机上存放 Redis 数据的目录挂载到容器中 /data 目录
ports:
- "${REDIS_PORT}:6379" # 设置容器6379端口映射指定宿主机端口
networks:
- backend
restart: always
# mysql-manage:
# image: phpmyadmin/phpmyadmin
# environment:
# - TZ=${TZ}
# - PMA_ARBITRARY=1
# - MYSQL_USER=${MYSQL_MANAGE_USERNAME} # 设置连接的 Mysql 服务用户名称
# - MYSQL_PASSWORD=${MYSQL_MANAGE_PASSWORD} # 设置连接的 Mysql 服务用户密码
# - MYSQL_ROOT_PASSWORD=${MYSQL_MANAGE_ROOT_PASSWORD} # 设置连接的 Mysql 服务 root 用户密码
# - PMA_HOST=${MYSQL_MANAGE_CONNECT_HOST} # 设置连接的 Mysql 服务 host,可以是 Mysql 服务容器的名称,也可以是 Mysql 服务容器的 ip 地址
# - PMA_PORT=${MYSQL_MANAGE_CONNECT_PORT} # 设置连接的 Mysql 服务端口号
# ports:
# - "${MYSQL_MANAGE_PORT}:80" # 设置容器80端口映射指定宿主机端口,用于宿主机访问可视化web
# depends_on: # 依赖容器
# - mysql # 在 Mysql 服务容器启动后启动
# networks:
# - backend
# restart: always
# redis-manage:
# image: erikdubbelboer/phpredisadmin
# environment:
# - TZ=${TZ}
# - ADMIN_USER=${REDIS_MANAGE_USERNAME} # 设置 Redis 可视化管理的用户名称
# - ADMIN_PASS=${REDIS_MANAGE_PASSWORD} # 设置 Redis 可视化管理的用户密码
# - REDIS_1_HOST=${REDIS_MANAGE_CONNECT_HOST} # 设置连接的 Redis 服务 host,可以是 Redis 服务容器的名称,也可以是 Redis 服务容器的 ip 地址
# - REDIS_1_PORT=${REDIS_MANAGE_CONNECT_PORT} # 设置连接的 Redis 服务端口号
# ports:
# - "${REDIS_MANAGE_PORT}:80" # 设置容器80端口映射指定宿主机端口,用于宿主机访问可视化web
# depends_on: # 依赖容器
# - redis # 在 Redis 服务容器启动后启动
# networks:
# - backend
# restart: always
prometheus:
image: bitnami/prometheus
container_name: mall-prometheus
environment:
- TZ=${TZ}
privileged: true
volumes:
- ./config/prometheus/prometheus.yml:/opt/bitnami/prometheus/conf/prometheus.yml # 将 prometheus 配置文件挂载到容器里
ports:
- "${PROMETHEUS_PORT}:9090" # 设置容器9090端口映射指定宿主机端口,用于宿主机访问可视化web
networks:
- backend
restart: always
grafana:
image: grafana/grafana
container_name: mall-grafana
environment:
- TZ=${TZ}
ports:
- "${GRAFANA_PORT}:3000" # 设置容器3000端口映射指定宿主机端口,用于宿主机访问可视化web
networks:
- backend
restart: always
jaeger:
image: jaegertracing/all-in-one:1.28
container_name: mall-jaeger
environment:
- TZ=${TZ}
ports:
- "${JAEGER_PORT}:16686" # 设置容器16686端口映射指定宿主机端口,用于宿主机访问可视化web
networks:
- backend
restart: always
dtm:
image: yedf/dtm
container_name: mall-dtm
environment:
- TZ=${TZ}
entrypoint:
- "/app/dtm/dtm"
- "-c=/app/dtm/configs/config.yaml"
privileged: true
volumes:
- ./config/dtm/config.yml:/app/dtm/configs/config.yaml # 将 dtm 配置文件挂载到容器里
ports:
- "${DTM_HTTP_PORT}:36789"
- "${DTM_GRPC_PORT}:36790"
networks:
- backend
depends_on: # 依赖容器
- redis # 在 Redis 服务容器启动后启动
restart: always
# kafka:
# image: bashj79/kafka-kraft
# container_name: mall-kafka
# environment:
# - KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
# - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092
# networks:
# - backend
# restart: always
nacos:
image: nacos/nacos-server:v2.2.0
container_name: mall-nacos
environment:
- MODE=standalone
- PREFER_HOST_MODE=hostname
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_DB_NAME=nacos_config
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
volumes:
- ./logs/nacos:/home/nacos/logs
ports:
- "${NACOS_PORT}:8848"
networks:
- backend
depends_on:
mysql:
condition: service_healthy
restart: always