#指定使用的 Docker Compose API 版本 version: '3' networks: taphole: driver: bridge ipam: config: - subnet: 172.28.1.0/24 #定义了要运行的服务列表 services: 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: - "13306: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: - "16379:6379" command: redis-server --appendonly yes webrtc: image: webrtc-streamer:latest container_name: taphole-webrtc stdin_open: true tty: true network_mode: "host" nginx-bigscreen: image: nginx:latest container_name: taphole-nginx-bigscreen volumes: - ./nginx_bigscreen/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载 - ./nginx_bigscreen/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载 - ./nginx_bigscreen/html:/etc/nginx/html #静态资源根目录挂载 - ./nginx_bigscreen/logs:/var/log/nginx #日志文件目录挂载 ports: - 15080:80 networks: - taphole nginx-mgtsys: image: nginx:latest container_name: taphole-nginx-mgtsys volumes: - ./nginx_mgtsys/conf/nginx.conf:/etc/nginx/nginx.conf #配置文件目录挂载 - ./nginx_mgtsys/conf/default.conf:/etc/nginx/default.conf #配置文件目录挂载 - ./nginx_mgtsys/html:/etc/nginx/html #静态资源根目录挂载 - ./nginx_mgtsys/logs:/var/log/nginx #日志文件目录挂载 ports: - 25080:80 networks: - taphole app: image: taphole-app:latest container_name: taphole-app build: context: ./app dockerfile: Dockerfile volumes: - /home/taphole/hcsdk/linux:/home/taphole/hcsdk/linux - /home/taphole/upload:/home/taphole/upload - /home/taphole/app/logs:/app/logs 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 - webrtc networks: taphole: ipv4_address: 172.28.1.100 l1: image: taphole-l1:latest container_name: taphole-l1 build: context: ./l1 dockerfile: Dockerfile volumes: - /home/taphole/l1/logs:/app/logs ports: - "38080:8080" - "43000: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 - webrtc networks: taphole: ipv4_address: 172.28.1.150 l2: image: taphole-l2:latest container_name: taphole-l2 build: context: ./l2 dockerfile: Dockerfile volumes: - /home/taphole/l2/logs:/app/logs ports: - "48080:8080" - "53000: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 - webrtc networks: taphole: ipv4_address: 172.28.1.200