diff --git a/reademe/use.md b/reademe/use.md index 884b5b2..3d831df 100644 --- a/reademe/use.md +++ b/reademe/use.md @@ -9,3 +9,242 @@ mac 本地构建过程: 2.2 修改docker-compose.yaml中使用wvp镜像的版本号 2.3 执行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:推送第三方镜像到私有仓库 +# ===== 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 +将以下镜像地址修改为私有仓库地址: +# 第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,避免不同环境的配置冲突 \ No newline at end of file