stream-deploy/reademe/use.md

378 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

默认用户名 admin 密码 admin
重点:
1: docker-compose.yaml polaris-media 下的 WebRTC 配置需要和 media/config.ini中的rtc的端口对应上
2: application.yaml 下的 media.http-port 需要和 media/config.ini中的http.port端口对应上
3: 部署新服务器的时候,建议先 全局替换114.67.89.4 IP地址之后再个性化配置
4: 本机使用的时候使用.env_local替换.env中的内容
mac 本地构建过程:
1: wvp 源码构建
在 docker/wvp 目录下执行 ./build.sh build 中默认 latest
1.2 nginx 源码构建
在 docker/nginx 目录下执行 ./build.sh build 中默认 latest
1.2 ZLM 源码
在 docker/media 目录下执行 ./build.sh build 中默认 latest
2: 部署
2.1 cd到docker目录
2.2 修改docker-compose.yaml中使用wvp镜像的版本号 默认latest
2.3 修改docker-compose.yaml中使用nginx镜像的版本号 默认latest
2.4 修改docker-compose.yaml中使用media镜像的版本号 默认latest
2.5 执行docker compose up -d
mac 发布流程
1 构建并推送镜像
1.1 cd到 docker/wvp目录下
1.2 修改build-and-push-wvp中的版本号 build 中默认 latest
1.2 执行 ./build-and-push-wvp.sh
1 构建并推送镜像
1.1 cd到 docker/nginx目录下
1.2 修改build-and-push-nginx中的版本号 build 中默认 latest
1.2 执行 ./build-and-push-nginx.sh
1 构建并推送镜像
1.1 cd到 docker/media目录下
1.2 修改build-and-push-media中的版本号 build 中默认 latest
1.2 执行 ./build-and-push-media.sh
2 部署
2.1 将docker目录全部拷贝到需要部署到服务器
2.2 修改docker-compose.yaml中使用 wvp nginx media镜像的版本号 build 中默认 latest
2.3 在.env中添加REGISTRY=registry.t-aaron.com/
2.4 修改.env中其他的环境变量值
2.5 执行docker compose up -d
~~~~~~~~~~~以下内容忽略~~~~~~~~~
步骤1准备 buildx 环境
# 创建并启用 multiarch builder
docker buildx create --name multiarch --use
# 验证 builder
docker buildx inspect --bootstrap
步骤2登录私有仓库
# 登录你的私有仓库
docker login registry.t-aaron.com
步骤3推送第三方镜像到私有仓库
# ===== ubuntu:20.04 =====
# 备份本地 arm64 镜像
docker tag ubuntu:20.04 ubuntu:20.04-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 ubuntu:20.04
# 推送到私有仓库
docker tag ubuntu:20.04 registry.t-aaron.com/ubuntu:20.04
docker push registry.t-aaron.com/ubuntu:20.04
# 恢复本地 arm64 版本
docker rmi ubuntu:20.04
docker tag ubuntu:20.04-backup ubuntu:20.04
docker rmi ubuntu:20.04-backup
# ===== ubuntu:24.04 =====
# 备份本地 arm64 镜像
docker tag ubuntu:24.04 ubuntu:24.04-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 ubuntu:24.04
# 推送到私有仓库
docker tag ubuntu:24.04 registry.t-aaron.com/ubuntu:24.04
docker push registry.t-aaron.com/ubuntu:24.04
# 恢复本地 arm64 版本
docker rmi ubuntu:24.04
docker tag ubuntu:24.04-backup ubuntu:24.04
docker rmi ubuntu:24.04-backup
# ===== Redis =====
# 备份本地 arm64 镜像
docker tag nginx:alpine nginx:alpine-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 nginx:alpine
# 推送到私有仓库
docker tag nginx:alpine registry.t-aaron.com/nginx:alpine
docker push registry.t-aaron.com/nginx:alpine
# 恢复本地 arm64 版本
docker rmi nginx:alpine
docker tag nginx:alpine-backup nginx:alpine
docker rmi nginx:alpine-backup
# ===== Redis =====
# 备份本地 arm64 镜像
docker tag redis:latest redis:latest-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 redis:latest
# 推送到私有仓库
docker tag redis:latest registry.t-aaron.com/redis:latest
docker push registry.t-aaron.com/redis:latest
# 恢复本地 arm64 版本
docker rmi redis:latest
docker tag redis:latest-arm64-backup redis:latest
docker rmi redis:latest-arm64-backup
# ===== MySQL =====
# 备份本地 arm64 镜像
docker tag mysql:8 mysql:8-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 mysql:8
# 推送到私有仓库
docker tag mysql:8 registry.t-aaron.com/mysql:8
docker push registry.t-aaron.com/mysql:8
# 恢复本地 arm64 版本
docker rmi mysql:8
docker tag mysql:8-arm64-backup mysql:8
docker rmi mysql:8-arm64-backup
# ===== eclipse-temurin:17-jdk =====
# 备份本地 arm64 镜像
docker tag eclipse-temurin:17-jdk eclipse-temurin:17-jdk-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 eclipse-temurin:17-jdk
# 推送到私有仓库
docker tag eclipse-temurin:17-jdk registry.t-aaron.com/eclipse-temurin:17-jdk
docker push registry.t-aaron.com/eclipse-temurin:17-jdk
# 恢复本地 arm64 版本
docker rmi eclipse-temurin:17-jdk
docker tag eclipse-temurin:17-jdk-arm64-backup eclipse-temurin:17-jdk
docker rmi eclipse-temurin:17-jdk-arm64-backup
# ===== eclipse-temurin:17-jre =====
# 备份本地 arm64 镜像
docker tag eclipse-temurin:17-jre eclipse-temurin:17-jre-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 eclipse-temurin:17-jre
# 推送到私有仓库
docker tag eclipse-temurin:17-jre registry.t-aaron.com/eclipse-temurin:17-jre
docker push registry.t-aaron.com/eclipse-temurin:17-jre
# 恢复本地 arm64 版本
docker rmi eclipse-temurin:17-jre
docker tag eclipse-temurin:17-jre-arm64-backup eclipse-temurin:17-jre
docker rmi eclipse-temurin:17-jre-arm64-backup
# ===== ZLMediaKit =====
# 备份本地 arm64 镜像
docker tag zlmediakit/zlmediakit:master zlmediakit-master-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 zlmediakit/zlmediakit:master
# 推送到私有仓库
docker tag zlmediakit/zlmediakit:master registry.t-aaron.com/zlmediakit:master
docker push registry.t-aaron.com/zlmediakit:master
# 恢复本地 arm64 版本
docker rmi zlmediakit/zlmediakit:master
docker tag zlmediakit-master-arm64-backup zlmediakit/zlmediakit:master
docker rmi zlmediakit-master-arm64-backup
步骤4构建并推送 wvp 镜像 (amd64)
# 进入项目根目录
cd /Users/sunpeng/workspace/stream-deploy
# 构建 amd64 版本的 wvp 镜像并直接推送
docker buildx build \
--platform linux/amd64 \
-t registry.t-aaron.com/polaris-wvp:2.7.7 \
-f docker/wvp/Dockerfile \
--push \
.
上述步骤已经写入脚本
cd /Users/sunpeng/workspace/stream-deploy/docker
chmod +x build-and-push-wvp.sh
./build-and-push-wvp.sh
步骤5修改 docker-compose.yml
将以下镜像地址修改为私有仓库地址:
# 第4行redis
image: registry.t-aaron.com/redis:latest
# 第24行mysql
image: registry.t-aaron.com/mysql:8
# 第57行zlmediakit
image: registry.t-aaron.com/zlmediakit:master
# 第83行wvp
image: registry.t-aaron.com/polaris-wvp:2.7.7
步骤6验证本地环境不受影响
# 检查本地镜像架构(应该还是 arm64
docker image inspect redis:latest --format='{{.Architecture}}'
docker image inspect mysql:8 --format='{{.Architecture}}'
docker image inspect zlmediakit/zlmediakit:master --format='{{.Architecture}}'
# 验证私有仓库镜像架构(应该是 amd64
docker pull registry.t-aaron.com/redis:latest
docker image inspect registry.t-aaron.com/redis:latest --format='{{.Architecture}}'
docker rmi registry.t-aaron.com/redis:latest
# 本地启动测试(使用本地 arm64 镜像)
cd docker
docker-compose up -d
# 查看服务状态
docker-compose ps
注意事项
步骤3中每个镜像都是备份 → 拉取 amd64 → 推送 → 恢复本地
wvp 镜像构建时间较长(需要编译 Java 项目),请耐心等待
修改 docker-compose.yml 后,将修改后的文件部署到服务器使用
本地继续使用原来的 docker-compose.yml或者使用环境变量区分
步骤5修改 docker-compose.yml 第五步有问题,要通过.env中是否配置linux来决定是使用 redis:latest 还是 registry.t-aaron.com/redis:latest 如果有linux配置成了registry.t-aaron.com/ 则使用 registry.t-aaron.com/redis:latest 无 则使用redis:latest ;修改后再次生成完整方案
好的,我理解了。通过 .env 文件中的配置来动态决定镜像地址。让我重新生成完整方案:
步骤1准备 buildx 环境
# 创建并启用 multiarch builder
docker buildx create --name multiarch --use
# 验证 builder
docker buildx inspect --bootstrap
步骤2登录私有仓库
# 登录你的私有仓库
docker login registry.t-aaron.com
步骤3推送第三方镜像到私有仓库
# ===== Redis =====
# 备份本地 arm64 镜像
docker tag redis:latest redis:latest-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 redis:latest
# 推送到私有仓库
docker tag redis:latest registry.t-aaron.com/redis:latest
docker push registry.t-aaron.com/redis:latest
# 恢复本地 arm64 版本
docker rmi redis:latest
docker tag redis:latest-arm64-backup redis:latest
docker rmi redis:latest-arm64-backup
# ===== MySQL =====
# 备份本地 arm64 镜像
docker tag mysql:8 mysql:8-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 mysql:8
# 推送到私有仓库
docker tag mysql:8 registry.t-aaron.com/mysql:8
docker push registry.t-aaron.com/mysql:8
# 恢复本地 arm64 版本
docker rmi mysql:8
docker tag mysql:8-arm64-backup mysql:8
docker rmi mysql:8-arm64-backup
# ===== ZLMediaKit =====
# 备份本地 arm64 镜像
docker tag zlmediakit/zlmediakit:master zlmediakit-master-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 zlmediakit/zlmediakit:master
# 推送到私有仓库
docker tag zlmediakit/zlmediakit:master registry.t-aaron.com/zlmediakit:master
docker push registry.t-aaron.com/zlmediakit:master
# 恢复本地 arm64 版本
docker rmi zlmediakit/zlmediakit:master
docker tag zlmediakit-master-arm64-backup zlmediakit/zlmediakit:master
docker rmi zlmediakit-master-arm64-backup
步骤4构建并推送 wvp 镜像 (amd64)
# 进入项目根目录
cd /Users/sunpeng/workspace/stream-deploy
# 构建 amd64 版本的 wvp 镜像并直接推送
docker buildx build \
--platform linux/amd64 \
-t registry.t-aaron.com/polaris-wvp:2.7.7 \
-f docker/wvp/Dockerfile \
--push \
.
步骤5修改 docker-compose.yml 和 .env 配置
5.1 修改 docker-compose.yml
将镜像地址修改为使用环境变量:
# 第4行redis
image: ${REGISTRY}redis:latest
# 第24行mysql
image: ${REGISTRY}mysql:8
# 第57行zlmediakit
image: ${REGISTRY}zlmediakit:master
# 第83行wvp
image: ${REGISTRY}polaris-wvp:2.7.7
5.2 创建/修改 .env 文件
本地环境Mac arm64- docker/.env
# 本地不配置 REGISTRY 或设置为空
REGISTRY=
# 其他配置保持不变
Stream_IP=127.0.0.1
SDP_IP=127.0.0.1
# ... 其他配置
服务器环境Linux amd64- docker/.env
# 服务器配置私有仓库地址(注意最后有斜杠)
REGISTRY=registry.t-aaron.com/
# 其他配置
Stream_IP=你的服务器IP
SDP_IP=你的服务器IP
# ... 其他配置
步骤6验证本地环境不受影响
# 检查本地镜像架构(应该还是 arm64
docker image inspect redis:latest --format='{{.Architecture}}'
docker image inspect mysql:8 --format='{{.Architecture}}'
docker image inspect zlmediakit/zlmediakit:master --format='{{.Architecture}}'
# 验证私有仓库镜像架构(应该是 amd64
docker pull registry.t-aaron.com/redis:latest
docker image inspect registry.t-aaron.com/redis:latest --format='{{.Architecture}}'
docker rmi registry.t-aaron.com/redis:latest
# 验证 .env 配置
cd docker
cat .env | grep REGISTRY
# 本地启动测试(使用本地 arm64 镜像)
docker-compose up -d
# 查看服务状态
docker-compose ps
# 验证使用的镜像
docker-compose config | grep image
注意事项
REGISTRY 环境变量:
本地:不设置或设置为空字符串,使用 redis:latest
服务器:设置为 registry.t-aaron.com/(注意最后的斜杠),使用 registry.t-aaron.com/redis:latest
部署到服务器时:
将修改后的 docker-compose.yml 上传到服务器
在服务器的 .env 文件中配置 REGISTRY=registry.t-aaron.com/
wvp 镜像构建时间较长,需要编译 Java 项目,请耐心等待
建议将 .env 添加到 .gitignore避免不同环境的配置冲突