fix(ci): job容器路径对宿主机daemon不可见, Maven构建改用 docker cp 流式传文件
deploy-test / build-and-deploy-test (push) Successful in 2m45s
deploy-test / build-and-deploy-test (push) Successful in 2m45s
This commit is contained in:
@@ -39,20 +39,25 @@ jobs:
|
||||
echo "SSH 密钥就绪"
|
||||
|
||||
- name: Build jar (Maven + JDK21 in docker, 带依赖缓存卷)
|
||||
# 注意: job 容器内的路径对宿主机 daemon 不可见, 不能用 -v "$PWD" 挂载;
|
||||
# 用 docker cp 流式传文件(与 build context 同机制)
|
||||
run: |
|
||||
set -e
|
||||
docker volume create tianai-maven-cache >/dev/null 2>&1 || true
|
||||
docker run --rm -v "$PWD":/ws -v tianai-maven-cache:/root/.m2 -w /ws \
|
||||
maven:3.9-eclipse-temurin-21 mvn -q package -DskipTests
|
||||
ls -la tianai-captcha-platform/target/*.jar
|
||||
docker rm -f mvnbuild 2>/dev/null || true
|
||||
docker run -d --name mvnbuild -v tianai-maven-cache:/root/.m2 -w /ws \
|
||||
maven:3.9-eclipse-temurin-21 sleep infinity
|
||||
docker cp "$GITHUB_WORKSPACE/." mvnbuild:/ws/
|
||||
docker exec mvnbuild mvn -q package -DskipTests
|
||||
docker cp mvnbuild:/ws/tianai-captcha-platform/target/tianai-captcha-platform-2.0.0-SNAPSHOT.jar \
|
||||
"$GITHUB_WORKSPACE/tianai-captcha-platform/tianai-captcha-platform-2.0.0-SNAPSHOT.jar"
|
||||
docker rm -f mvnbuild
|
||||
ls -la tianai-captcha-platform/*.jar
|
||||
|
||||
- name: Build & push image
|
||||
run: |
|
||||
set -e
|
||||
SHA=$(echo "$GITHUB_SHA" | cut -c1-8)
|
||||
# Dockerfile 约定 jar 在构建上下文根目录
|
||||
cp tianai-captcha-platform/target/tianai-captcha-platform-*.jar \
|
||||
tianai-captcha-platform/tianai-captcha-platform-2.0.0-SNAPSHOT.jar
|
||||
docker build -t $IMAGE:test -t $IMAGE:sha-$SHA tianai-captcha-platform
|
||||
docker push $IMAGE:test
|
||||
docker push $IMAGE:sha-$SHA
|
||||
|
||||
Reference in New Issue
Block a user