stream-deploy/reademe/use.md

12 KiB
Raw Blame History

默认用户名 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: 部署新服务器的时候建议全局替换IP地址之后在个性化配置

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避免不同环境的配置冲突