Compare commits
3 Commits
ee0664c23b
...
6a7a0a344f
Author | SHA1 | Date | |
---|---|---|---|
6a7a0a344f | |||
11087e3f33 | |||
61883eff21 |
@ -169,44 +169,57 @@ jobs:
|
|||||||
|
|
||||||
"$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
|
"$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
|
||||||
|
|
||||||
- name: 配置Docker允许HTTP私有仓库
|
- name: 检查JAR文件是否存在
|
||||||
run: |
|
|
||||||
# 配置Docker守护进程接受HTTP私有仓库
|
|
||||||
sudo mkdir -p /etc/docker
|
|
||||||
echo '{ "insecure-registries": ["172.100.10.45:3000"] }' | sudo tee /etc/docker/daemon.json
|
|
||||||
# 重启Docker使配置生效
|
|
||||||
sudo systemctl restart docker
|
|
||||||
# 验证配置
|
|
||||||
docker info | grep -A 10 "Insecure Registries"
|
|
||||||
|
|
||||||
- name: 登录到私有容器仓库
|
|
||||||
run: |
|
|
||||||
echo "${{ secrets.REGISTRY_PASS }}" | docker login ${{ secrets.REGISTRY_URL }} -u ${{ secrets.REGISTRY_USER }} --password-stdin
|
|
||||||
|
|
||||||
- name: 构建Docker镜像
|
|
||||||
run: |
|
run: |
|
||||||
SERVICE_NAME="${{ matrix.service }}"
|
SERVICE_NAME="${{ matrix.service }}"
|
||||||
# 替换路径中的斜杠为连字符,避免镜像标签中的路径问题
|
JAR_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/target/$(basename ${SERVICE_NAME}).jar"
|
||||||
SANITIZED_SERVICE_NAME=$(echo "$SERVICE_NAME" | tr '/' '-')
|
if [ ! -f "$JAR_PATH" ]; then
|
||||||
IMAGE_TAG="172.100.10.45:3000/by2025/smartparks/${SANITIZED_SERVICE_NAME}:latest"
|
echo "错误:JAR文件不存在 - $JAR_PATH"
|
||||||
|
echo "目标目录内容:"
|
||||||
# 确定Dockerfile路径
|
ls -l "${GITHUB_WORKSPACE}/${SERVICE_NAME}/target"
|
||||||
if [ -f "${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile" ]; then
|
exit 1
|
||||||
DOCKERFILE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile"
|
|
||||||
else
|
|
||||||
DOCKERFILE_PATH="${GITHUB_WORKSPACE}/Dockerfile"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 使用原生docker build命令构建镜像
|
|
||||||
docker build -t "$IMAGE_TAG" -f "$DOCKERFILE_PATH" "${GITHUB_WORKSPACE}"
|
|
||||||
|
|
||||||
# 保存镜像标签供后续步骤使用
|
|
||||||
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: 推送Docker镜像到私有仓库
|
- name: 配置Docker Buildx(使用原生Docker驱动)
|
||||||
|
uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker # 避免容器化驱动的网络隔离问题
|
||||||
|
|
||||||
|
- name: 登录到容器仓库
|
||||||
|
uses: http://git.missmoc.top/mocheng/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ${{ secrets.REGISTRY_URL }}
|
||||||
|
username: ${{ secrets.REGISTRY_USER }}
|
||||||
|
password: ${{ secrets.REGISTRY_PASS }}
|
||||||
|
|
||||||
|
- name: 确定Dockerfile路径
|
||||||
|
id: dockerfile-path
|
||||||
run: |
|
run: |
|
||||||
# 推送镜像
|
SERVICE_NAME="${{ matrix.service }}"
|
||||||
docker push "$IMAGE_TAG"
|
DOCKERFILE_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile"
|
||||||
|
|
||||||
# 登出仓库
|
if [ -f "$DOCKERFILE_ABSOLUTE_PATH" ]; then
|
||||||
docker logout ${{ secrets.REGISTRY_URL }}
|
echo "dockerfile_path=$DOCKERFILE_ABSOLUTE_PATH" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "dockerfile_path=${GITHUB_WORKSPACE}/Dockerfile" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: 构建并推送Docker镜像(仅推送镜像,不上传JAR)
|
||||||
|
uses: http://git.missmoc.top/mocheng/build-push-action@v5
|
||||||
|
with:
|
||||||
|
# 使用服务模块目录作为构建上下文(确保能找到target/JAR)
|
||||||
|
context: "${{ github.workspace }}/${{ matrix.service }}"
|
||||||
|
file: "${{ steps.dockerfile-path.outputs.dockerfile_path }}"
|
||||||
|
# 处理镜像标签中的斜杠(避免格式错误)
|
||||||
|
tags: "172.100.10.45:3000/by2025/smartparks/$(echo ${{ matrix.service }} | tr '/' '-'):latest"
|
||||||
|
push: true
|
||||||
|
cache-from: type=gha
|
||||||
|
cache-to: type=gha,mode=max
|
||||||
|
# 允许HTTP访问私有仓库
|
||||||
|
daemon-config: |
|
||||||
|
{
|
||||||
|
"insecure-registries": ["172.100.10.45:3000"]
|
||||||
|
}
|
||||||
|
# 禁用容器化网络,使用主机网络
|
||||||
|
driver-opts: |
|
||||||
|
network=host
|
||||||
|
Loading…
Reference in New Issue
Block a user