| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421 |
- # 云眼视频监控平台 一键部署:MySQL + Redis + Nacos + 全部后端微服务 + 前端(Nginx)
- # 启动:在 docker 目录执行 .\start.ps1 或 .\start.bat
- name: ruoyi-qs-nvr
- x-java-env: &java-env
- TZ: ${TZ:-Asia/Shanghai}
- JAVA_OPTS: ${JAVA_OPTS:--Xms128m -Xmx384m -XX:+UseG1GC}
- NACOS_SERVER_ADDR: ${NACOS_SERVER_ADDR:-ruoyi-nacos:8848}
- # bootstrap.yml 写死 127.0.0.1 时,SPRING_CLOUD_NACOS_* 无法生效;用 JVM -D 强制覆盖
- NACOS_JAVA_OPTS: >-
- -Dspring.cloud.nacos.discovery.server-addr=${NACOS_SERVER_ADDR:-ruoyi-nacos:8848}
- -Dspring.cloud.nacos.config.server-addr=${NACOS_SERVER_ADDR:-ruoyi-nacos:8848}
- # Docker 未部署 Sentinel 控制台,关闭 eager 避免连 127.0.0.1:8718 刷错
- SPRING_CLOUD_SENTINEL_EAGER: "false"
- SENTINEL_EAGER: "false"
- # 未部署 Sentinel 控制台时,避免 actuator 周期性 WARN
- MANAGEMENT_HEALTH_SENTINEL_ENABLED: "false"
- SPRING_PROFILES_ACTIVE: dev
- services:
- ruoyi-mysql:
- container_name: ruoyi-mysql
- image: mysql:5.7
- build:
- context: ./mysql
- restart: unless-stopped
- ports:
- - "3306:3306"
- environment:
- MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
- MYSQL_DATABASE: ${MYSQL_DATABASE:-ry-cloud}
- TZ: ${TZ:-Asia/Shanghai}
- volumes:
- - ./mysql/conf:/etc/mysql/conf.d
- - ./mysql/logs:/logs
- - ./mysql/data:/var/lib/mysql
- command:
- - mysqld
- - --innodb-buffer-pool-size=128M
- - --character-set-server=utf8mb4
- - --collation-server=utf8mb4_unicode_ci
- - --default-time-zone=+8:00
- - --lower-case-table-names=1
- networks:
- - ruoyi-net
- healthcheck:
- test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-p${MYSQL_ROOT_PASSWORD:-password}"]
- interval: 10s
- timeout: 5s
- retries: 15
- start_period: 40s
- ruoyi-redis:
- container_name: ruoyi-redis
- image: redis:7-alpine
- build:
- context: ./redis
- restart: unless-stopped
- ports:
- - "6379:6379"
- volumes:
- - ./redis/conf/redis.conf:/home/ruoyi/redis/redis.conf
- - ./redis/data:/data
- command: redis-server /home/ruoyi/redis/redis.conf --dir /data
- networks:
- - ruoyi-net
- healthcheck:
- test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD:-123456}", "ping"]
- interval: 10s
- timeout: 5s
- retries: 8
- ruoyi-nacos:
- container_name: ruoyi-nacos
- image: nacos/nacos-server:v3.0.2
- build:
- context: ./nacos
- restart: unless-stopped
- environment:
- MODE: standalone
- TZ: ${TZ:-Asia/Shanghai}
- # Nacos 3.x 启动必填(即使关闭鉴权也需 Base64 Token)
- NACOS_AUTH_ENABLE: "false"
- NACOS_AUTH_TOKEN: ${NACOS_AUTH_TOKEN:-U2VjcmV0S2V5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OQ==}
- NACOS_AUTH_IDENTITY_KEY: ${NACOS_AUTH_IDENTITY_KEY:-serverIdentity}
- NACOS_AUTH_IDENTITY_VALUE: ${NACOS_AUTH_IDENTITY_VALUE:-security}
- JVM_XMS: 256m
- JVM_XMX: 512m
- JVM_XMN: 128m
- volumes:
- - ./nacos/logs:/home/nacos/logs
- - ./nacos/conf/application.properties:/home/nacos/conf/application.properties
- ports:
- - "8848:8848"
- - "9848:9848"
- - "9849:9849"
- depends_on:
- ruoyi-mysql:
- condition: service_healthy
- networks:
- - ruoyi-net
- healthcheck:
- test: ["CMD-SHELL", "curl -sf http://127.0.0.1:8848/nacos/actuator/health | grep -q UP"]
- interval: 15s
- timeout: 10s
- retries: 25
- start_period: 120s
- ruoyi-gateway:
- container_name: ruoyi-gateway
- build:
- context: ./ruoyi/gateway
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "8080:8080"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-auth:
- container_name: ruoyi-auth
- build:
- context: ./ruoyi/auth
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9200:9200"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-system:
- container_name: ruoyi-modules-system
- build:
- context: ./ruoyi/modules/system
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9201:9201"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-gen:
- container_name: ruoyi-modules-gen
- build:
- context: ./ruoyi/modules/gen
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9202:9202"
- depends_on:
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-job:
- container_name: ruoyi-modules-job
- build:
- context: ./ruoyi/modules/job
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9203:9203"
- depends_on:
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-file:
- container_name: ruoyi-modules-file
- build:
- context: ./ruoyi/modules/file
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9300:9300"
- volumes:
- - ./ruoyi/uploadPath:/home/ruoyi/uploadPath
- depends_on:
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-visual-monitor:
- container_name: ruoyi-visual-monitor
- build:
- context: ./ruoyi/visual/monitor
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9100:9100"
- depends_on:
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-qs:
- container_name: ruoyi-modules-qs
- build:
- context: ./ruoyi/modules/qs
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9205:9205"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-zlm:
- container_name: ruoyi-modules-zlm
- build:
- context: ./ruoyi/modules/zlm
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "8090:8090"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-gb28181:
- container_name: ruoyi-modules-gb28181
- build:
- context: ./ruoyi/modules/gb28181
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9209:9209"
- - "8116:8116/tcp"
- - "8116:8116/udp"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-onvif:
- container_name: ruoyi-modules-onvif
- build:
- context: ./ruoyi/modules/onvif
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9208:9208"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-jt1078:
- container_name: ruoyi-modules-jt1078
- build:
- context: ./ruoyi/modules/jt1078
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9210:9210"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-haikang:
- profiles: ["vendor-sdk"]
- container_name: ruoyi-modules-haikang
- build:
- context: ./ruoyi/modules/haikang
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9204:9204"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-haikang-isup:
- profiles: ["vendor-sdk"]
- container_name: ruoyi-modules-haikang-isup
- build:
- context: ./ruoyi/modules/haikang-isup
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9206:9206"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- ruoyi-modules-dahua:
- profiles: ["vendor-sdk"]
- container_name: ruoyi-modules-dahua
- build:
- context: ./ruoyi/modules/dahua
- dockerfile: dockerfile
- restart: unless-stopped
- environment:
- <<: *java-env
- ports:
- - "9207:9207"
- depends_on:
- ruoyi-redis:
- condition: service_healthy
- ruoyi-mysql:
- condition: service_healthy
- ruoyi-nacos:
- condition: service_healthy
- networks:
- - ruoyi-net
- # 前端 + 反向代理(容器内 npm build,无需本机 Node)
- ruoyi-nginx:
- container_name: ruoyi-nginx
- build:
- context: ../..
- dockerfile: ruoyi-qs-nvr-master/docker/nginx/Dockerfile
- restart: unless-stopped
- ports:
- - "80:80"
- volumes:
- - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- - ./nginx/logs:/var/log/nginx
- depends_on:
- - ruoyi-gateway
- - ruoyi-modules-file
- networks:
- - ruoyi-net
- networks:
- ruoyi-net:
- driver: bridge
|