Files
UserBaseService/.gitea/workflows/deploy.yml
T
2026-08-05 12:06:46 +08:00

49 lines
2.1 KiB
YAML
Raw 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.
name: deploy-userbase-service
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build-deploy:
runs-on: ubuntu-latest
# docker:24 自带 docker CLI;宿主 docker.sock 默认挂入 job 容器,
# 因此 docker build/run 实际都在宿主守护进程上执行。
container:
image: docker:24
steps:
- name: Install git (alpine)
run: apk add --no-cache git
- name: Checkout (manual, internal Gitea)
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
# 用宿主 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 拷回工作区。
- name: Build jar (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
run: docker build -f docker/Dockerfile -t userbase-service:latest .
- name: Deploy on host (infra-infra-net)
# 镜像已在宿主本地,直接运行,无需推送到 nexus(nexus docker 仓库为 HTTP,需 daemon insecure-registries 才能推送)
run: |
docker rm -f userbase-service 2>/dev/null || true
docker run -d --name userbase-service --network infra-infra-net -p 8060:8060 --restart unless-stopped userbase-service:latest
- name: Done
run: 'echo "UserBaseService deployed -> http://192.168.10.160:8060/userbase"'