fix: 改用 nacos_config.py 运行时注入 Nacos 配置(替代失效的 EPP);CI 改为 maven 从源码构建 war,移除提交的 168MB cas.war
deploy-cassso-service / build-deploy (push) Successful in 13m33s
deploy-cassso-service / build-deploy (push) Successful in 13m33s
This commit is contained in:
@@ -8,7 +8,8 @@ on:
|
||||
jobs:
|
||||
build-deploy:
|
||||
runs-on: ubuntu-latest
|
||||
# docker:24 自带 docker CLI;宿主 docker.sock 默认挂入 job 容器。
|
||||
# docker:24 自带 docker CLI;宿主 docker.sock 默认挂入 job 容器,
|
||||
# 因此 docker build/run 实际都在宿主守护进程上执行。
|
||||
container:
|
||||
image: docker:24
|
||||
steps:
|
||||
@@ -16,22 +17,35 @@ jobs:
|
||||
run: apk add --no-cache git
|
||||
|
||||
- name: Checkout (manual, internal Gitea)
|
||||
# cas.war (174MB) 已作为普通 blob 入库(服务端未启用 LFS)
|
||||
run: |
|
||||
git clone --depth 1 --branch main http://192.168.10.160:3000/${GITHUB_REPOSITORY}.git /tmp/src
|
||||
cp -a /tmp/src/. .
|
||||
rm -rf .git .gitea
|
||||
rm -rf /tmp/src
|
||||
|
||||
- name: Build image (copies docker/cas.war) on host daemon
|
||||
# 经由挂载的 docker.sock 在宿主守护进程上构建,镜像直接落在宿主本地
|
||||
# 用宿主 docker 守护进程跑 maven 3.9(--network=host 走宿主网络拉 nexus 依赖)。
|
||||
# 重要:job 容器内 $PWD 不是宿主可见路径,不能直接 `-v $PWD:/build` 挂给 maven 容器
|
||||
# (docker.sock 跨边界 bind mount 会落到宿主空目录,maven 看不到 pom.xml)。
|
||||
# 改用 docker create + docker cp 把源码送进 maven 容器,构建完再把 target 拷回工作区。
|
||||
# war 由 maven 从源码构建(target/cas.war),不再把 war 提交进 git。
|
||||
- name: Build war (maven 3.9, nexus maven-public)
|
||||
run: |
|
||||
MVN=$(docker create --network=host -v /opt/docker/ubs-m2:/root/.m2 -w /build maven:3.9-eclipse-temurin-8 mvn -s maven-settings.xml -B -DskipTests package)
|
||||
docker cp "$PWD/." "$MVN:/build"
|
||||
docker start -a "$MVN"
|
||||
docker cp "$MVN:/build/target" "$PWD/target"
|
||||
docker rm -f "$MVN"
|
||||
|
||||
- name: Build image on host daemon
|
||||
# 构建上下文=仓库根目录,Dockerfile 内 COPY target/cas.war;
|
||||
# 业务配置由 run-cas.sh 在启动时调用 nacos_config.py 从 Nacos 拉取(替代失效的 EPP)。
|
||||
run: docker build -f docker/Dockerfile -t cassso-service:latest .
|
||||
|
||||
- name: Deploy on host (infra-infra-net, CAS 端口 8443)
|
||||
# 镜像已在宿主本地,直接运行,无需推送到 nexus(nexus docker 仓库为 HTTP,需 daemon insecure-registries 才能推送)
|
||||
# Nacos 环境变量:NacosEnvironmentPostProcessor 启动阶段据此从 Nacos 原生拉取
|
||||
# common.yaml (DEFAULT_GROUP) + cas.yaml (CAS group),namespace=prod。
|
||||
# Nacos 环境变量:run-cas.sh 据此在启动阶段从 Nacos 拉取业务配置(common.yaml + cas.yaml, prod)。
|
||||
# 不传 NACOS_NAMESPACE 会默认连 dev(dev 命名空间无配置),登录必失败——必须显式传 prod。
|
||||
# 注意:镜像构建成功才会走到本步;若上面 maven/docker build 失败,本步不执行,旧容器继续运行。
|
||||
run: |
|
||||
docker rm -f cas-sso 2>/dev/null || true
|
||||
docker run -d --name cas-sso --network infra-infra-net -p 8443:8443 --restart unless-stopped \
|
||||
@@ -42,4 +56,4 @@ jobs:
|
||||
cassso-service:latest
|
||||
|
||||
- name: Done
|
||||
run: 'echo "CasSsoService deployed -> https://192.168.10.160:8443/login"'
|
||||
run: 'echo "CasSsoService deployed -> http://sso.yunhaixingtong.com/cas"'
|
||||
|
||||
Reference in New Issue
Block a user