diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index afa7eb9..24d43bd 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -57,19 +57,20 @@ jobs: # 而 act 工作区是宿主上的 docker volume,容器内 $PWD 对宿主不可见, # 直接 -v $PWD:/build 会绑成空目录导致找不到 pom.xml。 # 故改为:起 maven 容器 -> docker cp 源码入容器 -> exec 构建 -> cp 产物回工作区。 - # nexus.yunhaixingtong.com 仅在用户本机 hosts 指向 160 的 nexus 容器, - # 160 上该域名不可解析,故在 maven 容器内用 --add-host 映射到宿主(Caddy:80), - # 由 Caddy 反代到 nexus:8081 的 maven-public(匿名可读,已验证 200)。 - # 等真实域名就绪、公网可解析后,删除下面 --add-host 这一行即可。 + # mavenbuild 加入 infra-infra-net,用容器名 nexus 直连 Nexus(8081 maven-public)。 + # 之前用 --add-host=nexus.yunhaixingtong.com:host-gateway 经 Caddy:80 反代,但该路径在 + # CI 容器内不可达,maven 回退到 /opt/docker/ubs-m2 里 08-05 的旧 yh-auth 缓存(缺 + # CasSsoAutoConfiguration),镜像启动报 serverName 崩溃。现改用 settings.xml mirror 把 + # pom 的 HTTP 仓库重定向到 http://nexus:8081/repository/maven-public/(已验证 -7 可达)。 docker run -d --name mavenbuild \ - --add-host=nexus.yunhaixingtong.com:host-gateway \ + --network infra-infra-net \ -v /opt/docker/ubs-m2:/root/.m2 \ -w /build maven:3.6.3-jdk-8 sleep 3600 docker cp "${PWD}/." mavenbuild:/build/ - # 强制清掉宿主 m2 中已缓存的 yh.platform 全部 SNAPSHOT(mavenbuild 的 /root/.m2 - # 即宿主 /opt/docker/ubs-m2,通过 docker.sock 作用于宿主),确保本次重新拉取用户刚 - # re-deploy 的最新 yh-auth(含 CasSsoAutoConfiguration),避免解析到旧的 SNAPSHOT 构建。 - docker exec mavenbuild rm -rf /root/.m2/com/yunhai/platform + # 写 settings.xml:HTTP 仓库 mirror 到 nexus:8081 maven-public(infra-infra-net 内容器名直连) + docker exec mavenbuild sh -c "echo 'nexus-directexternal:http:*http://nexus:8081/repository/maven-public/' > /root/.m2/settings.xml" + # 清掉宿主 m2 真实缓存路径(/root/.m2/repository/)下的旧 yh.platform SNAPSHOT + docker exec mavenbuild rm -rf /root/.m2/repository/com/yunhai/platform docker exec mavenbuild sh -c 'cd /build/service && mvn -U -B -DskipTests clean package' mkdir -p "${PWD}/service/target" docker cp mavenbuild:/build/service/target/userbase.jar "${PWD}/service/target/userbase.jar"