docker-compose.yml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  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. command: -H 0.0.0.0:9000 -o # 绑定到9000端口
  59. deploy:
  60. resources:
  61. limits:
  62. cpus: '1' # 限制使用1核
  63. reservations:
  64. cpus: '1' # 预留1核
  65. webrtc2:
  66. image: webrtc-streamer:latest
  67. container_name: taphole-webrtc2
  68. stdin_open: true
  69. tty: true
  70. network_mode: "host"
  71. command: -H 0.0.0.0:9001 -o # 绑定到9001端口
  72. deploy:
  73. resources:
  74. limits:
  75. cpus: '1' # 限制使用1核
  76. reservations:
  77. cpus: '1' # 预留1核
  78. nginx-bigscreen:
  79. image: nginx:latest
  80. container_name: taphole-nginx-bigscreen
  81. restart: always
  82. volumes:
  83. - ./nginx_bigscreen/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载
  84. - ./nginx_bigscreen/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载
  85. - ./nginx_bigscreen/html:/etc/nginx/html #静态资源根目录挂载
  86. - ./nginx_bigscreen/logs:/var/log/nginx #日志文件目录挂载
  87. ports:
  88. - 15080:80
  89. networks:
  90. - taphole
  91. nginx-mgtsys:
  92. image: nginx:latest
  93. container_name: taphole-nginx-mgtsys
  94. restart: always
  95. volumes:
  96. - ./nginx_mgtsys/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载
  97. - ./nginx_mgtsys/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载
  98. - ./nginx_mgtsys/html:/etc/nginx/html #静态资源根目录挂载
  99. - ./nginx_mgtsys/logs:/var/log/nginx #日志文件目录挂载
  100. ports:
  101. - 25080:80
  102. networks:
  103. - taphole
  104. nginx-camera:
  105. image: nginx:latest
  106. container_name: taphole-nginx-camera
  107. restart: always
  108. volumes:
  109. - ./nginx_camera/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载
  110. - ./nginx_camera/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载
  111. - ./nginx_camera/html:/etc/nginx/html #静态资源根目录挂载
  112. - ./nginx_camera/logs:/var/log/nginx #日志文件目录挂载
  113. ports:
  114. - "8804:8804" #192.168.1.104 8000
  115. - "7704:7704" #192.168.1.104 554
  116. - "8810:8810"
  117. - "7710:7710"
  118. - "8811:8811"
  119. - "7711:7711"
  120. - "8812:8812"
  121. - "7712:7712"
  122. - "8814:8814"
  123. - "7714:7714"
  124. - "8815:8815"
  125. - "7715:7715"
  126. - "8816:8816"
  127. - "7716:7716"
  128. - "8000:8000"
  129. networks:
  130. - taphole
  131. app:
  132. image: taphole-app:latest
  133. container_name: taphole-app
  134. build:
  135. context: .
  136. dockerfile: app/Dockerfile
  137. volumes:
  138. - /home/taphole/hcsdk/linux:/home/taphole/hcsdk/linux
  139. - /home/taphole/hdsdk/linux:/home/taphole/hdsdk/linux
  140. - /home/taphole/upload:/home/taphole/upload
  141. - /home/taphole/app/logs:/app/logs
  142. ports:
  143. - "54321:54321"
  144. - "33000:33000"
  145. - "34567:4567"
  146. - "38087:8087"
  147. environment:
  148. - PREFER_HOST_MODE=hostname
  149. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/taphole
  150. - SPRING_DATASOURCE_USERNAME=root
  151. - SPRING_DATASOURCE_PASSWORD=root
  152. - SPRING_REDIS_HOST=redis
  153. - SPRING_REDIS_PORT=6379
  154. - LD_LIBRARY_PATH=/home/taphole/hdsdk/linux:$LD_LIBRARY_PATH # 再次设置库文件路径
  155. depends_on:
  156. - mysql
  157. - redis
  158. - webrtc
  159. networks:
  160. taphole:
  161. ipv4_address: 172.28.1.100
  162. l2:
  163. image: taphole-l2:latest
  164. container_name: taphole-l2
  165. build:
  166. context: ./l2
  167. dockerfile: Dockerfile
  168. volumes:
  169. - /home/taphole/l2/logs:/app/logs
  170. ports:
  171. - "48080:8080"
  172. - "53000:33000"
  173. - "4567:4567"
  174. - "8087:8087"
  175. environment:
  176. - PREFER_HOST_MODE=hostname
  177. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/taphole
  178. - SPRING_DATASOURCE_USERNAME=root
  179. - SPRING_DATASOURCE_PASSWORD=root
  180. - SPRING_REDIS_HOST=redis
  181. - SPRING_REDIS_PORT=6379
  182. depends_on:
  183. - mysql
  184. - redis
  185. networks:
  186. taphole:
  187. ipv4_address: 172.28.1.200