docker-compose.yml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. version: '3'
  2. services:
  3. mysql:
  4. image: mysql:8.0.29
  5. container_name: mysql
  6. environment:
  7. # 时区上海
  8. TZ: Asia/Shanghai
  9. # root 密码
  10. MYSQL_ROOT_PASSWORD: ruoyi123
  11. # 初始化数据库
  12. MYSQL_DATABASE: ry-cloud
  13. ports:
  14. - "3306:3306"
  15. volumes:
  16. # 数据挂载
  17. - /docker/mysql/data/:/var/lib/mysql/
  18. # 配置挂载
  19. - /docker/mysql/conf/:/etc/mysql/conf.d/
  20. command:
  21. # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
  22. --default-authentication-plugin=mysql_native_password
  23. --character-set-server=utf8mb4
  24. --collation-server=utf8mb4_general_ci
  25. --explicit_defaults_for_timestamp=true
  26. --lower_case_table_names=1
  27. privileged: true
  28. network_mode: "host"
  29. nacos:
  30. image: nacos/nacos-server:v2.1.0
  31. container_name: nacos
  32. ports:
  33. - "8848:8848"
  34. - "9848:9848"
  35. - "9849:9849"
  36. environment:
  37. TZ: Asia/Shanghai
  38. MODE: standalone
  39. SPRING_DATASOURCE_PLATFORM: mysql
  40. MYSQL_SERVICE_HOST: 127.0.0.1
  41. MYSQL_SERVICE_PORT: 3306
  42. MYSQL_SERVICE_USER: root
  43. MYSQL_SERVICE_PASSWORD: ruoyi123
  44. MYSQL_SERVICE_DB_NAME: ry-config
  45. MYSQL_SERVICE_DB_PARAM: characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
  46. volumes:
  47. - /docker/nacos/logs/:/home/nacos/logs
  48. - /docker/nacos/config/custom.properties:/home/nacos/init.d/custom.properties
  49. privileged: true
  50. network_mode: "host"
  51. redis:
  52. image: redis:6.2.7
  53. container_name: redis
  54. ports:
  55. - "6379:6379"
  56. environment:
  57. # 时区上海
  58. TZ: Asia/Shanghai
  59. volumes:
  60. # 配置文件
  61. - /docker/redis/conf:/redis/config
  62. # 数据文件
  63. - /docker/redis/data/:/redis/data/
  64. command: "redis-server /redis/config/redis.conf"
  65. privileged: true
  66. network_mode: "host"
  67. minio:
  68. image: minio/minio:RELEASE.2022-05-26T05-48-41Z
  69. container_name: minio
  70. ports:
  71. # api 端口
  72. - "9000:9000"
  73. # 控制台端口
  74. - "9001:9001"
  75. environment:
  76. # 时区上海
  77. TZ: Asia/Shanghai
  78. # 管理后台用户名
  79. MINIO_ACCESS_KEY: ruoyi
  80. # 管理后台密码,最小8个字符
  81. MINIO_SECRET_KEY: ruoyi123
  82. # https需要指定域名
  83. MINIO_SERVER_URL: ""
  84. # 开启压缩 on 开启 off 关闭
  85. MINIO_COMPRESS: "off"
  86. # 扩展名 .pdf,.doc 为空 所有类型均压缩
  87. MINIO_COMPRESS_EXTENSIONS: ""
  88. # mime 类型 application/pdf 为空 所有类型均压缩
  89. MINIO_COMPRESS_MIME_TYPES: ""
  90. volumes:
  91. # 映射当前目录下的data目录至容器内/data目录
  92. - /docker/minio/data:/data
  93. # 映射配置目录
  94. - /docker/minio/config:/root/.minio/
  95. command: server --address ':9000' --console-address ':9001' /data # 指定容器中的目录 /data
  96. privileged: true
  97. network_mode: "host"
  98. seata-server:
  99. image: ruoyi/ruoyi-seata-server:1.0.0
  100. container_name: seata-server
  101. ports:
  102. - "7091:7091"
  103. - "8091:8091"
  104. environment:
  105. TZ: Asia/Shanghai
  106. # 注意 此处ip如果是外网使用 要改为外网ip
  107. # SEATA_IP: 127.0.0.1
  108. SEATA_PORT: 8091
  109. volumes:
  110. - /docker/ruoyi-seata-server/logs/:/ruoyi/seata-server/logs
  111. privileged: true
  112. network_mode: "host"
  113. nginx-web:
  114. image: nginx:1.21.6
  115. container_name: nginx-web
  116. environment:
  117. # 时区上海
  118. TZ: Asia/Shanghai
  119. ports:
  120. - "80:80"
  121. - "443:443"
  122. volumes:
  123. # 证书映射
  124. - /docker/nginx/cert:/etc/nginx/cert
  125. # 配置文件映射
  126. - /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
  127. # 页面目录
  128. - /docker/nginx/html:/usr/share/nginx/html
  129. # 日志目录
  130. - /docker/nginx/log:/var/log/nginx
  131. privileged: true
  132. network_mode: "host"
  133. sentinel:
  134. image: ruoyi/ruoyi-sentinel-dashboard:1.0.0
  135. container_name: sentinel
  136. environment:
  137. TZ: Asia/Shanghai
  138. ports:
  139. - "8718:8718"
  140. volumes:
  141. # 配置文件
  142. - /docker/ruoyi-sentinel-dashboard/logs/:/ruoyi/sentinel-dashboard/logs
  143. restart: always
  144. network_mode: "host"
  145. ruoyi-monitor-admin:
  146. image: ruoyi/ruoyi-monitor:1.0.0
  147. container_name: ruoyi-monitor
  148. environment:
  149. # 时区上海
  150. TZ: Asia/Shanghai
  151. ports:
  152. - "9100:9100"
  153. volumes:
  154. # 配置文件
  155. - /docker/ruoyi-monitor/logs/:/ruoyi/monitor/logs
  156. privileged: true
  157. network_mode: "host"
  158. ruoyi-xxl-job-admin:
  159. image: ruoyi/ruoyi-xxl-job-admin:1.0.0
  160. container_name: ruoyi-xxl-job-admin
  161. environment:
  162. # 时区上海
  163. TZ: Asia/Shanghai
  164. ports:
  165. - "9900:9900"
  166. volumes:
  167. # 配置文件
  168. - /docker/ruoyi-xxl-job-admin/logs/:/ruoyi/xxl-job-admin/logs
  169. privileged: true
  170. network_mode: "host"
  171. ruoyi-gateway:
  172. image: ruoyi/ruoyi-gateway:1.0.0
  173. container_name: ruoyi-gateway
  174. environment:
  175. # 时区上海
  176. TZ: Asia/Shanghai
  177. ports:
  178. - "8080:8080"
  179. volumes:
  180. # 配置文件
  181. - /docker/ruoyi-gateway/logs/:/ruoyi/gateway/logs
  182. privileged: true
  183. network_mode: "host"
  184. ruoyi-auth:
  185. image: ruoyi/ruoyi-auth:1.0.0
  186. container_name: ruoyi-auth
  187. environment:
  188. # 时区上海
  189. TZ: Asia/Shanghai
  190. ports:
  191. - "9200:9200"
  192. volumes:
  193. # 配置文件
  194. - /docker/ruoyi-auth/logs/:/ruoyi/auth/logs
  195. privileged: true
  196. network_mode: "host"
  197. ruoyi-system:
  198. image: ruoyi/ruoyi-system:1.0.0
  199. container_name: ruoyi-system
  200. environment:
  201. # 时区上海
  202. TZ: Asia/Shanghai
  203. ports:
  204. - "9201:9201"
  205. volumes:
  206. # 配置文件
  207. - /docker/ruoyi-system/logs/:/ruoyi/system/logs
  208. privileged: true
  209. network_mode: "host"
  210. ruoyi-gen:
  211. image: ruoyi/ruoyi-gen:1.0.0
  212. container_name: ruoyi-gen
  213. environment:
  214. # 时区上海
  215. TZ: Asia/Shanghai
  216. ports:
  217. - "9202:9202"
  218. volumes:
  219. # 配置文件
  220. - /docker/ruoyi-gen/logs/:/ruoyi/gen/logs
  221. privileged: true
  222. network_mode: "host"
  223. ruoyi-job:
  224. image: ruoyi/ruoyi-job:1.0.0
  225. container_name: ruoyi-job
  226. environment:
  227. # 时区上海
  228. TZ: Asia/Shanghai
  229. ports:
  230. - "9203:9203"
  231. volumes:
  232. # 配置文件
  233. - /docker/ruoyi-job/logs/:/ruoyi/job/logs
  234. privileged: true
  235. network_mode: "host"
  236. ruoyi-resource:
  237. image: ruoyi/ruoyi-resource:1.0.0
  238. container_name: ruoyi-resource
  239. environment:
  240. # 时区上海
  241. TZ: Asia/Shanghai
  242. ports:
  243. - "9300:9300"
  244. volumes:
  245. # 配置文件
  246. - /docker/ruoyi-resource/logs/:/ruoyi/resource/logs
  247. privileged: true
  248. network_mode: "host"
  249. #################################################################################################
  250. #################################### 以下为扩展根据需求搭建 #########################################
  251. #################################################################################################
  252. elasticsearch:
  253. image: elasticsearch:7.17.2
  254. container_name: elasticsearch
  255. ports:
  256. - "9200:9200"
  257. - "9300:9300"
  258. environment:
  259. # 设置集群名称
  260. cluster.name: elasticsearch
  261. # 以单一节点模式启动
  262. discovery.type: single-node
  263. ES_JAVA_OPTS: "-Xms512m -Xmx512m"
  264. volumes:
  265. - /docker/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
  266. - /docker/elk/elasticsearch/data:/usr/share/elasticsearch/data
  267. - /docker/elk/elasticsearch/logs:/usr/share/elasticsearch/logs
  268. network_mode: "host"
  269. kibana:
  270. image: kibana:7.17.2
  271. container_name: kibana
  272. ports:
  273. - "5601:5601"
  274. depends_on:
  275. # kibana在elasticsearch启动之后再启动
  276. - elasticsearch
  277. environment:
  278. #设置系统语言文中文
  279. I18N_LOCALE: zh-CN
  280. # 访问域名
  281. # SERVER_PUBLICBASEURL: https://kibana.cloud.com
  282. volumes:
  283. - /docker/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
  284. network_mode: "host"
  285. logstash:
  286. image: logstash:7.17.2
  287. container_name: logstash
  288. ports:
  289. - "4560:4560"
  290. volumes:
  291. - /docker/elk/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
  292. - /docker/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml
  293. depends_on:
  294. - elasticsearch
  295. network_mode: "host"
  296. mqnamesrv:
  297. image: apache/rocketmq:4.9.4
  298. container_name: mqnamesrv
  299. ports:
  300. - "9876:9876"
  301. environment:
  302. JAVA_OPT: -server -Xms512m -Xmx512m
  303. command: sh mqnamesrv
  304. volumes:
  305. - /docker/rocketmq/namesrv/logs:/home/rocketmq/logs/rocketmqlogs
  306. network_mode: "host"
  307. mqbroker1:
  308. image: apache/rocketmq:4.9.4
  309. container_name: mqbroker1
  310. ports:
  311. - "10911:10911"
  312. - "10909:10909"
  313. - "10912:10912"
  314. environment:
  315. JAVA_OPT_EXT: -server -Xms512M -Xmx512M -Xmn256m
  316. command: sh mqbroker -c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf
  317. depends_on:
  318. - mqnamesrv
  319. volumes:
  320. - /docker/rocketmq/broker1/conf/broker.conf:/home/rocketmq/rocketmq-4.9.4/conf/broker.conf
  321. - /docker/rocketmq/broker1/logs:/home/rocketmq/logs/rocketmqlogs
  322. - /docker/rocketmq/broker1/store:/home/rocketmq/store
  323. network_mode: "host"
  324. mqconsole:
  325. image: styletang/rocketmq-console-ng
  326. container_name: mqconsole
  327. ports:
  328. - "19876:19876"
  329. environment:
  330. JAVA_OPTS: -Dserver.port=19876 -Drocketmq.namesrv.addr=127.0.0.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false
  331. depends_on:
  332. - mqnamesrv
  333. network_mode: "host"
  334. rabbitmq:
  335. image: rabbitmq:3.10.6
  336. container_name: rabbitmq
  337. build:
  338. context: ./rabbitmq
  339. environment:
  340. RABBITMQ_DEFAULT_USER: ruoyi
  341. RABBITMQ_DEFAULT_PASS: ruoyi123
  342. ports:
  343. - "15672:15672" # 管理界面端口
  344. - "5672:5672" # api 端口
  345. volumes:
  346. - /docker/rabbitmq/log:/var/log/rabbitmq
  347. - /docker/rabbitmq/data:/var/lib/rabbitmq
  348. network_mode: "host"
  349. zookeeper:
  350. image: 'bitnami/zookeeper:3.8.0'
  351. container_name: zookeeper
  352. ports:
  353. - "2181:2181"
  354. environment:
  355. TZ: Asia/Shanghai
  356. ALLOW_ANONYMOUS_LOGIN: "yes"
  357. ZOO_SERVER_ID: 1
  358. ZOO_PORT_NUMBER: 2181
  359. network_mode: "host"
  360. kafka:
  361. image: 'bitnami/kafka:3.2.0'
  362. container_name: kafka
  363. ports:
  364. - "9092:9092"
  365. environment:
  366. TZ: Asia/Shanghai
  367. # 更多变量 查看文档 https://github.com/bitnami/bitnami-docker-kafka/blob/master/README.md
  368. KAFKA_BROKER_ID: 1
  369. # 监听端口
  370. KAFKA_CFG_LISTENERS: PLAINTEXT://:9092
  371. # 实际访问ip 本地用 127 内网用 192 外网用 外网ip
  372. KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://192.168.31.165:9092
  373. KAFKA_CFG_ZOOKEEPER_CONNECT: 127.0.0.1:2181
  374. ALLOW_PLAINTEXT_LISTENER: "yes"
  375. volumes:
  376. - /docker/kafka/data:/bitnami/kafka/data
  377. depends_on:
  378. - zookeeper
  379. network_mode: "host"
  380. kafka-manager:
  381. image: sheepkiller/kafka-manager:latest
  382. container_name: kafka-manager
  383. ports:
  384. - "19092:19092"
  385. environment:
  386. ZK_HOSTS: 127.0.0.1:2181
  387. APPLICATION_SECRET: letmein
  388. KAFKA_MANAGER_USERNAME: ruoyi
  389. KAFKA_MANAGER_PASSWORD: ruoyi123
  390. KM_ARGS: -Dhttp.port=19092
  391. depends_on:
  392. - kafka
  393. network_mode: "host"