docker-compose.yml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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. - "53306: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. - "56379:6379"
  51. command: redis-server --appendonly yes
  52. # zlmediakit:
  53. # image: zlmediakit:latest
  54. # container_name: taphole-zlmediakit
  55. # ports:
  56. # - "1935:1935" # RTMP 端口
  57. # - "8000:8000" # HTTP 端口
  58. # - "8554:8554" # RTSP 端口
  59. # - "8083:8083" # WebRTC 端口
  60. # - "18000:80" # HTTP 端口
  61. # volumes:
  62. # - ./zlmediakit/config:/opt/zlmediakit/config # 挂载配置文件目录
  63. # - ./zlmediakit/media:/opt/zlmediakit/media # 挂载媒体文件目录
  64. # networks:
  65. # taphole:
  66. # ipv4_address: 172.28.1.10
  67. webrtc:
  68. image: webrtc-streamer:latest
  69. container_name: taphole-webrtc
  70. stdin_open: true
  71. tty: true
  72. network_mode: "host"
  73. nginx:
  74. image: nginx:latest
  75. container_name: taphole-nginx
  76. volumes:
  77. - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载
  78. - ./nginx/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载
  79. - ./nginx/html:/etc/nginx/html #静态资源根目录挂载
  80. - ./nginx/logs:/var/log/nginx #日志文件目录挂载
  81. ports:
  82. - 15080:80
  83. networks:
  84. - taphole
  85. app:
  86. image: taphole-app:latest
  87. container_name: taphole-app
  88. # command: java -jar /app/my-springboot-app.jar
  89. build:
  90. context: .
  91. dockerfile: Dockerfile
  92. volumes:
  93. # - ./target/taphole-admin-1.0.0.jar:/app/my-springboot-app.jar
  94. - ./target/loadFFmpeg.properties:/app/loadFFmpeg.properties
  95. - /home/xiaofei/taphole/hcsdk/linux:/home/xiaofei/taphole/hcsdk/linux
  96. - /home/xiaofei/uploads/taphole/:/home/xiaofei/uploads/taphole/ #映射资源目录
  97. # - /usr/local/ffmpeg/bin:/usr/local/ffmpeg/bin
  98. ports:
  99. - "28080:8080"
  100. - "33000:33000"
  101. environment:
  102. - PREFER_HOST_MODE=hostname
  103. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/taphole
  104. - SPRING_DATASOURCE_USERNAME=root
  105. - SPRING_DATASOURCE_PASSWORD=root
  106. - SPRING_REDIS_HOST=redis
  107. - SPRING_REDIS_PORT=6379
  108. depends_on:
  109. - mysql
  110. - redis
  111. - webrtc
  112. networks:
  113. taphole:
  114. ipv4_address: 172.28.1.100