docker-compose.yml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. # maven:
  12. # container_name: taphole-java-maven
  13. # image: maven:3.8.6-openjdk-8
  14. # # restart: always
  15. # tty: true
  16. # working_dir: /taphole_java/server
  17. # volumes:
  18. # - ./server:/taphole_java/server
  19. # networks:
  20. # - taphole
  21. # ports:
  22. # - "58080:28080"
  23. # command: bash
  24. # depends_on:
  25. # - mysql
  26. # - redis
  27. # - zlmediakit
  28. mysql:
  29. container_name: taphole-mysql
  30. image: mysql:5.7.29 #X86架构
  31. #image: amd64/mysql:5.7.29 #arm架构
  32. # restart: always
  33. environment:
  34. MYSQL_ROOT_PASSWORD: root
  35. #映射宿主机当前目录到容器
  36. volumes:
  37. - ./mysql57/initdb:/docker-entrypoint-initdb.d
  38. - ./mysql57/data:/var/lib/mysql #数据文件目录挂载
  39. - ./mysql57/conf:/etc/mysql/conf.d #配置文件目录挂载
  40. - ./mysql57/log:/var/log/mysql #日志文件目录挂载
  41. networks:
  42. - taphole
  43. ports:
  44. - "53306:3306"
  45. privileged: true
  46. #容器启动后执行的命令
  47. command: [
  48. 'mysqld',
  49. '--innodb-buffer-pool-size=80M',
  50. '--character-set-server=utf8mb4',
  51. '--collation-server=utf8mb4_unicode_ci',
  52. '--default-time-zone=+8:00',
  53. '--lower-case-table-names=1'
  54. ]
  55. redis:
  56. container_name: taphole-redis
  57. image: redis:7.0.4
  58. privileged: true
  59. # restart: always
  60. volumes:
  61. - ./redis/data:/data
  62. environment:
  63. TZ: "Asia/Shanghai"
  64. networks:
  65. - taphole
  66. ports:
  67. - "56379:6379"
  68. command: redis-server --appendonly yes
  69. # node:
  70. # container_name: taphole-node
  71. # image: node:14.18.1
  72. # # restart: always
  73. # volumes:
  74. # - ./node/admin:/taphole_node/admin
  75. # networks:
  76. # - taphole
  77. # tty: true
  78. # working_dir: /taphole_node/admin
  79. # ports:
  80. # - "55173:5173"
  81. zlmediakit:
  82. image: zlmediakit:latest
  83. container_name: taphole-zlmediakit
  84. ports:
  85. - "1935:1935" # RTMP 端口
  86. - "8000:8000" # HTTP 端口
  87. - "8554:8554" # RTSP 端口
  88. - "8083:8083" # WebRTC 端口
  89. - "18000:80" # HTTP 端口
  90. volumes:
  91. - ./zlmediakit/config:/opt/zlmediakit/config # 挂载配置文件目录
  92. - ./zlmediakit/media:/opt/zlmediakit/media # 挂载媒体文件目录
  93. networks:
  94. taphole:
  95. ipv4_address: 172.28.1.10
  96. # zlmediakit:
  97. # container_name: taphole-zlmediakit
  98. # image: zlmediakit:latest
  99. # # restart: always
  100. # volumes:
  101. # - ./zlmediakit/logs:/opt/media/bin/log
  102. # - ./zlmediakit/data/www:/opt/media/bin/www
  103. # - ./zlmediakit/conf/config.ini:/opt/media/conf/config.ini
  104. # - ./zlmediakit/conf/default.pem:/opt/media/bin/default.pem
  105. # expose:
  106. # - "80"
  107. # - "443"
  108. # - "554"
  109. # - "1935"
  110. # ports:
  111. # - "51935:1935"
  112. # - "58082:80"
  113. # - "58443:443"
  114. # - "58554:554"
  115. # - "50000:10000"
  116. # - "50000:10000/udp"
  117. # - "5000:8000/udp"
  118. # - "59000:9000/udp"
  119. # - "50000-50500:30000-30500"
  120. # - "50000-50500:30000-30500/udp"
  121. # networks:
  122. # - taphole
  123. nginx:
  124. image: nginx:latest
  125. container_name: taphole-nginx
  126. volumes:
  127. - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载
  128. - ./nginx/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载
  129. - ./nginx/html:/etc/nginx/html #静态资源根目录挂载
  130. - ./nginx/logs:/var/log/nginx #日志文件目录挂载
  131. ports:
  132. - 15080:80
  133. networks:
  134. - taphole
  135. app:
  136. image: taphole-app:latest
  137. container_name: taphole-app
  138. # command: java -jar /app/my-springboot-app.jar
  139. build:
  140. context: .
  141. dockerfile: Dockerfile
  142. volumes:
  143. # - ./target/taphole-admin-1.0.0.jar:/app/my-springboot-app.jar
  144. - ./target/loadFFmpeg.properties:/app/loadFFmpeg.properties
  145. - /home/xiaofei/taphole/hcsdk/linux:/home/xiaofei/taphole/hcsdk/linux
  146. - /home/xiaofei/uploads/taphole/:/home/xiaofei/uploads/taphole/ #映射资源目录
  147. # - /usr/local/ffmpeg/bin:/usr/local/ffmpeg/bin
  148. ports:
  149. - "28080:8080"
  150. - "33000:33000"
  151. environment:
  152. - PREFER_HOST_MODE=hostname
  153. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/taphole
  154. - SPRING_DATASOURCE_USERNAME=root
  155. - SPRING_DATASOURCE_PASSWORD=root
  156. - SPRING_REDIS_HOST=redis
  157. - SPRING_REDIS_PORT=6379
  158. depends_on:
  159. - mysql
  160. - redis
  161. - zlmediakit
  162. networks:
  163. taphole:
  164. ipv4_address: 172.28.1.100