Files
HuLa-Server/docs/install/docker/docker-compose.yml
T

143 lines
4.1 KiB
YAML

version: "3.8"
services:
nacos:
image: nacos/nacos-server:${NACOS_VERSION}
container_name: nacos-standalone-mysql
env_file:
- ./env/nacos-standalone-mysql.env
volumes:
- ./nacos/standalone-logs/:/home/nacos/logs
ports:
- "8080:8080"
- "8848:8848"
- "9848:9848"
depends_on:
mysql:
condition: service_healthy
restart: always
mysql:
container_name: mysql
restart: always
image: mysql:8.0.30
env_file:
- ./env/mysql.env
volumes:
- ./mysql/data:/var/lib/mysql
ports:
- "13306:3306"
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
interval: 5s
timeout: 10s
retries: 10
redis:
image: redis:latest
container_name: redis
restart: always
ports:
- '16379:6379'
volumes:
- ./redis/data:/data
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf
- ./redis/logs:/logs
#配置文件启动
command: redis-server /usr/local/etc/redis/redis.conf --requirepass luo123456
# rocketmq
rocketmq-namesrv:
image: apache/rocketmq:5.3.2
container_name: rocketmq-namesrv
ports:
- 9876:9876
command: sh mqnamesrv
volumes:
- ./rocketmq/namesrv/logs:/home/rocketmq/logs
- ./rocketmq/namesrv/store:/home/rocketmq/store
rocketmq-broker:
image: apache/rocketmq:5.3.2
container_name: rocketmq-broker
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
- NAMESRV_ADDR=rocketmq-namesrv:9876
volumes:
- ./rocketmq/broker/logs:/home/rocketmq/logs
- ./rocketmq/broker/store:/home/rocketmq/store
- ./rocketmq/timerwheel:/home/rocketmq/timerwheel
- ./rocketmq/broker/conf/broker.conf:/home/rocketmq/rocketmq-5.3.2/conf/broker.conf
- ./rocketmq/broker/conf/plain_acl.yml:/home/rocketmq/rocketmq-5.3.2/conf/plain_acl.yml
depends_on:
- rocketmq-namesrv
command: sh mqbroker -c /home/rocketmq/rocketmq-5.3.2/conf/broker.conf
rocketmq-proxy:
image: apache/rocketmq:5.3.2
container_name: rocketmq-proxy
depends_on:
- rocketmq-broker
- rocketmq-namesrv
ports:
- 8082:8080
- 8081:8081
restart: on-failure
environment:
- NAMESRV_ADDR=rocketmq-namesrv:9876
command: sh mqproxy
minio:
image: minio/minio:latest
container_name: minio
restart: always
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ROOT_USER=luohuo
- MINIO_ROOT_PASSWORD=mini.123huo
volumes:
- ./minio/data:/data
- ./minio/config:/root/.minio
command: server --console-address ":9001" /data
minio-mc:
image: minio/mc:latest
container_name: minio-mc
depends_on:
- minio
entrypoint: [ "/bin/sh","-c" ]
command: >
"mc alias set local http://minio:9000 luohuo mini.123huo &&
mc mb -p local/dev || true &&
mc anonymous set download local/dev &&
mc alias ls"
jenkins:
image: jenkins/jenkins:lts-jdk21
container_name: jenkins
user: root
restart: always
ports:
- "20000:8080" # Web UI 端口
- "50000:50000" # Agent 连接端口
volumes:
- /home/jenkins/work:/var/jenkins_home # 数据持久化
- /var/run/docker.sock:/var/run/docker.sock # 宿主机 Docker 控制
- /usr/bin/docker:/usr/bin/docker # 宿主机 Docker 命令
srs:
image: ossrs/srs:5
container_name: srs
restart: always
ports:
- "1935:1935/tcp" # RTMP 推流
- "1985:1985/tcp" # HTTP API
- "7088:7088/tcp" # H5播放器/信令
- "8000:8000/udp" # WebRTC媒体传输
- "1989:1989/tcp" # WebRTC信令
- "8443:8443/tcp" # HTTPS/WSS
- "61100-61200:61100-61200/udp" # WebRTC动态端口范围
environment:
- CANDIDATE=192.168.1.37 # 公网ip
- SRS_LISTEN=8000 # WebRTC监听端口
- SRS_HTTP_SERVER_PORT=7088
- SRS_HTTP_API_PORT=1985
volumes:
- "/home/docker/srs:/usr/local/srs/conf"
command: [ "./objs/srs", "-c", "conf/srs_conf_7088.conf" ]