docker-compose.yaml 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. version: "3.8"
  2. services:
  3. mall4j-mysql:
  4. container_name: mall4j-mysql
  5. environment:
  6. - TZ=Asia/Shanghai
  7. - MYSQL_ROOT_PASSWORD=123456
  8. expose:
  9. - 3306
  10. ports:
  11. - 3306:3306
  12. hostname: mall4j-mysql
  13. image: mysql:5.7
  14. networks:
  15. mall4j-network:
  16. ipv4_address: 192.168.159.3
  17. restart: always
  18. volumes:
  19. - ./mysql/data:/var/lib/mysql
  20. - ./mysql/my.cnf:/etc/mysql/my.cnf
  21. - ./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
  22. mall4j-redis:
  23. container_name: mall4j-redis
  24. expose:
  25. - 6379
  26. ports:
  27. - 6379:6379
  28. hostname: mall4j-redis
  29. image: redis:5.0
  30. networks:
  31. mall4j-network:
  32. ipv4_address: 192.168.159.4
  33. restart: always
  34. mall4j-elasticsearch:
  35. container_name: mall4j-elasticsearch
  36. environment:
  37. - TAKE_FILE_OWNERSHIP=true
  38. - discovery.type=single-node
  39. - ES_JAVA_OPTS=-Xms512m -Xmx512m
  40. expose:
  41. - 9200
  42. - 9300
  43. hostname: mall4j-elasticsearch
  44. image: elasticsearch:7.13.2
  45. networks:
  46. mall4j-network:
  47. ipv4_address: 192.168.159.5
  48. restart: always
  49. volumes:
  50. - ./elasticsearch/data:/usr/share/elasticsearch/data
  51. - ./elasticsearch/plugins:/usr/share/elasticsearch/plugins
  52. - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  53. mall4j-kibana:
  54. image: kibana:7.13.2
  55. container_name: mall4j-kibana
  56. restart: always
  57. ports:
  58. - 5601:5601
  59. networks:
  60. mall4j-network:
  61. ipv4_address: 192.168.159.13
  62. links:
  63. - mall4j-elasticsearch:elasticsearch
  64. depends_on:
  65. - mall4j-elasticsearch
  66. mall4j-job:
  67. container_name: mall4j-job
  68. environment:
  69. - PARAMS=--spring.datasource.url=jdbc:mysql://mall4j-mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \
  70. --spring.datasource.username=root \
  71. --spring.datasource.password=123456 \
  72. --spring.mail.host=smtp.qq.com \
  73. --spring.mail.port=25 \
  74. --spring.mail.username=xxxx@qq.com \
  75. --spring.mail.password=xxxx \
  76. --spring.mail.properties.mail.smtp.auth=true \
  77. --spring.mail.properties.mail.smtp.starttls.enable=true \
  78. --spring.mail.properties.mail.smtp.starttls.required=true \
  79. --spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory \
  80. --xxl.job.accessToken=
  81. expose:
  82. - 8080
  83. ports:
  84. - 8080:8080
  85. hostname: mall4j-job
  86. image: xuxueli/xxl-job-admin:2.3.0
  87. networks:
  88. mall4j-network:
  89. ipv4_address: 192.168.159.6
  90. restart: always
  91. mall4j-minio:
  92. command: server /data
  93. container_name: mall4j-minio
  94. environment:
  95. - MINIO_ROOT_USER=admin
  96. - MINIO_ROOT_PASSWORD=12345678
  97. expose:
  98. - 9000
  99. hostname: mall4j-minio
  100. image: minio/minio:RELEASE.2021-06-17T00-10-46Z
  101. networks:
  102. mall4j-network:
  103. ipv4_address: 192.168.159.7
  104. restart: always
  105. volumes:
  106. - ./minio/data:/data
  107. mall4j-nginx:
  108. container_name: mall4j-nginx
  109. hostname: mall4j-nginx
  110. image: nginx:1.20
  111. networks:
  112. mall4j-network:
  113. ipv4_address: 192.168.159.8
  114. ports:
  115. - 80:80
  116. - 443:443
  117. restart: always
  118. volumes:
  119. - ./nginx/nginx.conf:/etc/nginx/nginx.conf
  120. - ./nginx/conf.d:/etc/nginx/conf.d
  121. - ./nginx/html:/usr/share/nginx/html
  122. - ./nginx/ssl:/etc/nginx/ssl
  123. mall4j-api:
  124. build:
  125. context: ./yami-shop-api
  126. container_name: mall4j-api
  127. environment:
  128. - TZ=Asia/Shanghai
  129. - MYSQL_HOST=mall4j-mysql
  130. - MYSQL_PORT=3306
  131. - MYSQL_DATABASE=yami_bbc
  132. - MYSQL_USERNAME=root
  133. - MYSQL_PASSWORD=123456
  134. - REDIS_HOST=mall4j-redis
  135. - REDIS_PORT=6379
  136. - REDIS_DATABASE=1
  137. - REDIS_PASSWORD=
  138. - ELASTIC_ADDRESS=http://mall4j-elasticsearch:9200
  139. hostname: mall4j-api
  140. image: mall4j-api
  141. networks:
  142. mall4j-network:
  143. ipv4_address: 192.168.159.9
  144. expose:
  145. - 8112
  146. restart: always
  147. volumes:
  148. - ./cert:/cert
  149. - ./yami-shop-api/log:/opt/projects/yami-b2b2c/log
  150. mall4j-multishop:
  151. build:
  152. context: ./yami-shop-multishop
  153. container_name: mall4j-multishop
  154. environment:
  155. - TZ=Asia/Shanghai
  156. - MYSQL_HOST=mall4j-mysql
  157. - MYSQL_PORT=3306
  158. - MYSQL_DATABASE=yami_bbc
  159. - MYSQL_USERNAME=root
  160. - MYSQL_PASSWORD=123456
  161. - REDIS_HOST=mall4j-redis
  162. - REDIS_PORT=6379
  163. - REDIS_DATABASE=1
  164. - REDIS_PASSWORD=
  165. - ELASTIC_ADDRESS=http://mall4j-elasticsearch:9200
  166. hostname: mall4j-multishop
  167. image: mall4j-multishop
  168. networks:
  169. mall4j-network:
  170. ipv4_address: 192.168.159.10
  171. expose:
  172. - 8113
  173. restart: always
  174. volumes:
  175. - ./cert:/cert
  176. - ./yami-shop-multishop/log:/opt/projects/yami-b2b2c/log
  177. mall4j-platform:
  178. build:
  179. context: ./yami-shop-platform
  180. container_name: mall4j-platform
  181. environment:
  182. - TZ=Asia/Shanghai
  183. - MYSQL_HOST=mall4j-mysql
  184. - MYSQL_PORT=3306
  185. - MYSQL_DATABASE=yami_bbc
  186. - MYSQL_USERNAME=root
  187. - MYSQL_PASSWORD=123456
  188. - REDIS_HOST=mall4j-redis
  189. - REDIS_PORT=6379
  190. - REDIS_DATABASE=1
  191. - REDIS_PASSWORD=
  192. - ELASTIC_ADDRESS=http://mall4j-elasticsearch:9200
  193. hostname: mall4j-platform
  194. image: mall4j-platform
  195. networks:
  196. mall4j-network:
  197. ipv4_address: 192.168.159.11
  198. expose:
  199. - 8114
  200. restart: always
  201. volumes:
  202. - ./cert:/cert
  203. - ./yami-shop-platform/log:/opt/projects/yami-b2b2c/log
  204. mall4j-im:
  205. build:
  206. context: ./yami-shop-im
  207. container_name: mall4j-im
  208. environment:
  209. - TZ=Asia/Shanghai
  210. - MYSQL_HOST=mall4j-mysql
  211. - MYSQL_PORT=3306
  212. - MYSQL_DATABASE=yami_bbc
  213. - MYSQL_USERNAME=root
  214. - MYSQL_PASSWORD=123456
  215. - REDIS_HOST=mall4j-redis
  216. - REDIS_PORT=6379
  217. - REDIS_DATABASE=1
  218. - REDIS_PASSWORD=
  219. hostname: mall4j-im
  220. image: mall4j-im
  221. networks:
  222. mall4j-network:
  223. ipv4_address: 192.168.159.12
  224. expose:
  225. - 8115
  226. restart: always
  227. volumes:
  228. - ./yami-shop-im/log:/opt/projects/yami-b2b2c/log
  229. mall4j-pc:
  230. build:
  231. context: ./yami-shop-pc
  232. container_name: mall4j-pc
  233. environment:
  234. - TZ=Asia/Shanghai
  235. hostname: mall4j-pc
  236. image: mall4j-pc
  237. networks:
  238. mall4j-network:
  239. ipv4_address: 192.168.159.14
  240. ports:
  241. - 3333:3333
  242. #一般来说是不会用到这个的,不过会出现一种情况就是在本机curl api的域名无法访问,
  243. #因为有的公司在做内部网络的时候,没有做好自己域名解析到自己服务器访问的情况,这个时候只能加host,
  244. #不然会出现服务端无法渲染,访问其他页面却能访问的情况
  245. # extra_hosts:
  246. # - api.mall4j.com:内网地址
  247. restart: always
  248. networks:
  249. mall4j-network:
  250. driver: bridge
  251. ipam:
  252. config:
  253. - subnet: 192.168.159.0/24
  254. name: mall4j-network