#指定使用的 Docker Compose API 版本 version: '3' networks: taphole: driver: bridge ipam: config: - subnet: 172.28.1.0/24 #定义了要运行的服务列表 services: # maven: # container_name: taphole-java-maven # image: maven:3.8.6-openjdk-8 # # restart: always # tty: true # working_dir: /taphole_java/server # volumes: # - ./server:/taphole_java/server # networks: # - taphole # ports: # - "58080:28080" # command: bash # depends_on: # - mysql # - redis # - zlmediakit mysql: container_name: taphole-mysql image: mysql:5.7.29 #X86架构 #image: amd64/mysql:5.7.29 #arm架构 # restart: always environment: MYSQL_ROOT_PASSWORD: root #映射宿主机当前目录到容器 volumes: - ./mysql57/initdb:/docker-entrypoint-initdb.d - ./mysql57/data:/var/lib/mysql #数据文件目录挂载 - ./mysql57/conf:/etc/mysql/conf.d #配置文件目录挂载 - ./mysql57/log:/var/log/mysql #日志文件目录挂载 networks: - taphole ports: - "53306:3306" privileged: true #容器启动后执行的命令 command: [ 'mysqld', '--innodb-buffer-pool-size=80M', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci', '--default-time-zone=+8:00', '--lower-case-table-names=1' ] redis: container_name: taphole-redis image: redis:7.0.4 privileged: true # restart: always volumes: - ./redis/data:/data environment: TZ: "Asia/Shanghai" networks: - taphole ports: - "56379:6379" command: redis-server --appendonly yes # node: # container_name: taphole-node # image: node:14.18.1 # # restart: always # volumes: # - ./node/admin:/taphole_node/admin # networks: # - taphole # tty: true # working_dir: /taphole_node/admin # ports: # - "55173:5173" zlmediakit: image: zlmediakit:latest container_name: taphole-zlmediakit ports: - "1935:1935" # RTMP 端口 - "8000:8000" # HTTP 端口 - "8554:8554" # RTSP 端口 - "8083:8083" # WebRTC 端口 - "18000:80" # HTTP 端口 volumes: - ./zlmediakit/config:/opt/zlmediakit/config # 挂载配置文件目录 - ./zlmediakit/media:/opt/zlmediakit/media # 挂载媒体文件目录 networks: taphole: ipv4_address: 172.28.1.10 # zlmediakit: # container_name: taphole-zlmediakit # image: zlmediakit:latest # # restart: always # volumes: # - ./zlmediakit/logs:/opt/media/bin/log # - ./zlmediakit/data/www:/opt/media/bin/www # - ./zlmediakit/conf/config.ini:/opt/media/conf/config.ini # - ./zlmediakit/conf/default.pem:/opt/media/bin/default.pem # expose: # - "80" # - "443" # - "554" # - "1935" # ports: # - "51935:1935" # - "58082:80" # - "58443:443" # - "58554:554" # - "50000:10000" # - "50000:10000/udp" # - "5000:8000/udp" # - "59000:9000/udp" # - "50000-50500:30000-30500" # - "50000-50500:30000-30500/udp" # networks: # - taphole nginx: image: nginx:latest container_name: taphole-nginx volumes: - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载 - ./nginx/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载 - ./nginx/html:/etc/nginx/html #静态资源根目录挂载 - ./nginx/logs:/var/log/nginx #日志文件目录挂载 ports: - 15080:80 networks: - taphole app: image: taphole-app:latest container_name: taphole-app # command: java -jar /app/my-springboot-app.jar build: context: . dockerfile: Dockerfile volumes: # - ./target/taphole-admin-1.0.0.jar:/app/my-springboot-app.jar - ./target/loadFFmpeg.properties:/app/loadFFmpeg.properties - /home/xiaofei/taphole/hcsdk/linux:/home/xiaofei/taphole/hcsdk/linux - /home/xiaofei/uploads/taphole/:/home/xiaofei/uploads/taphole/ #映射资源目录 # - /usr/local/ffmpeg/bin:/usr/local/ffmpeg/bin ports: - "28080:8080" - "33000:33000" environment: - PREFER_HOST_MODE=hostname - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/taphole - SPRING_DATASOURCE_USERNAME=root - SPRING_DATASOURCE_PASSWORD=root - SPRING_REDIS_HOST=redis - SPRING_REDIS_PORT=6379 depends_on: - mysql - redis - zlmediakit networks: taphole: ipv4_address: 172.28.1.100