docker-compose-prod.yml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. #指定使用的 Docker Compose API 版本
  2. version: '3'
  3. networks:
  4. taphole:
  5. driver: bridge
  6. ipam:
  7. config:
  8. - subnet: 172.28.1.0/24
  9. #定义了要运行的服务列表
  10. services:
  11. mysql:
  12. container_name: taphole-mysql
  13. image: mysql:5.7.29 #X86架构
  14. #image: amd64/mysql:5.7.29 #arm架构
  15. restart: always
  16. environment:
  17. MYSQL_ROOT_PASSWORD: root
  18. #映射宿主机当前目录到容器
  19. volumes:
  20. - ./mysql57/initdb:/docker-entrypoint-initdb.d
  21. - ./mysql57/data:/var/lib/mysql #数据文件目录挂载
  22. - ./mysql57/conf:/etc/mysql/conf.d #配置文件目录挂载
  23. - ./mysql57/log:/var/log/mysql #日志文件目录挂载
  24. networks:
  25. - taphole
  26. ports:
  27. - "13306:3306"
  28. privileged: true
  29. #容器启动后执行的命令
  30. command: [
  31. 'mysqld',
  32. '--innodb-buffer-pool-size=80M',
  33. '--character-set-server=utf8mb4',
  34. '--collation-server=utf8mb4_unicode_ci',
  35. '--default-time-zone=+8:00',
  36. '--lower-case-table-names=1'
  37. ]
  38. redis:
  39. container_name: taphole-redis
  40. image: redis:7.0.4
  41. privileged: true
  42. restart: always
  43. volumes:
  44. - ./redis/data:/data
  45. environment:
  46. TZ: "Asia/Shanghai"
  47. networks:
  48. - taphole
  49. ports:
  50. - "16379:6379"
  51. command: redis-server --appendonly yes
  52. webrtc:
  53. image: webrtc-streamer:latest
  54. container_name: taphole-webrtc
  55. stdin_open: true
  56. tty: true
  57. network_mode: "host"
  58. nginx-bigscreen:
  59. image: nginx:latest
  60. container_name: taphole-nginx-bigscreen
  61. volumes:
  62. - ./nginx_bigscreen/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载
  63. - ./nginx_bigscreen/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载
  64. - ./nginx_bigscreen/html:/etc/nginx/html #静态资源根目录挂载
  65. - ./nginx_bigscreen/logs:/var/log/nginx #日志文件目录挂载
  66. ports:
  67. - 15080:80
  68. networks:
  69. - taphole
  70. nginx-mgtsys:
  71. image: nginx:latest
  72. container_name: taphole-nginx-mgtsys
  73. volumes:
  74. - ./nginx_mgtsys/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载
  75. - ./nginx_mgtsys/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载
  76. - ./nginx_mgtsys/html:/etc/nginx/html #静态资源根目录挂载
  77. - ./nginx_mgtsys/logs:/var/log/nginx #日志文件目录挂载
  78. ports:
  79. - 25080:80
  80. networks:
  81. - taphole
  82. app:
  83. image: taphole-app:latest
  84. container_name: taphole-app
  85. build:
  86. context: ./app
  87. dockerfile: Dockerfile
  88. volumes:
  89. - /home/taphole/hcsdk/linux:/home/taphole/hcsdk/linux
  90. - /home/taphole/upload:/home/taphole/upload
  91. - /home/taphole/app/logs:/app/logs
  92. ports:
  93. - "28080:8080"
  94. - "33000:33000"
  95. environment:
  96. - PREFER_HOST_MODE=hostname
  97. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/taphole
  98. - SPRING_DATASOURCE_USERNAME=root
  99. - SPRING_DATASOURCE_PASSWORD=root
  100. - SPRING_REDIS_HOST=redis
  101. - SPRING_REDIS_PORT=6379
  102. depends_on:
  103. - mysql
  104. - redis
  105. - webrtc
  106. networks:
  107. taphole:
  108. ipv4_address: 172.28.1.100
  109. l1:
  110. image: taphole-l1:latest
  111. container_name: taphole-l1
  112. build:
  113. context: ./l1
  114. dockerfile: Dockerfile
  115. volumes:
  116. - /home/taphole/l1/logs:/app/logs
  117. ports:
  118. - "38080:8080"
  119. - "43000:33000"
  120. environment:
  121. - PREFER_HOST_MODE=hostname
  122. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/taphole
  123. - SPRING_DATASOURCE_USERNAME=root
  124. - SPRING_DATASOURCE_PASSWORD=root
  125. - SPRING_REDIS_HOST=redis
  126. - SPRING_REDIS_PORT=6379
  127. depends_on:
  128. - mysql
  129. - redis
  130. - webrtc
  131. networks:
  132. taphole:
  133. ipv4_address: 172.28.1.150
  134. l2:
  135. image: taphole-l2:latest
  136. container_name: taphole-l2
  137. build:
  138. context: ./l2
  139. dockerfile: Dockerfile
  140. volumes:
  141. - /home/taphole/l2/logs:/app/logs
  142. ports:
  143. - "48080:8080"
  144. - "53000:33000"
  145. environment:
  146. - PREFER_HOST_MODE=hostname
  147. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/taphole
  148. - SPRING_DATASOURCE_USERNAME=root
  149. - SPRING_DATASOURCE_PASSWORD=root
  150. - SPRING_REDIS_HOST=redis
  151. - SPRING_REDIS_PORT=6379
  152. depends_on:
  153. - mysql
  154. - redis
  155. - webrtc
  156. networks:
  157. taphole:
  158. ipv4_address: 172.28.1.200