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"
|
||||
|
||||
- name: 配置Docker允许HTTP私有仓库
|
||||
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镜像
|
||||
- name: 检查JAR文件是否存在
|
||||
run: |
|
||||
SERVICE_NAME="${{ matrix.service }}"
|
||||
# 替换路径中的斜杠为连字符,避免镜像标签中的路径问题
|
||||
SANITIZED_SERVICE_NAME=$(echo "$SERVICE_NAME" | tr '/' '-')
|
||||
IMAGE_TAG="172.100.10.45:3000/by2025/smartparks/${SANITIZED_SERVICE_NAME}:latest"
|
||||
|
||||
# 确定Dockerfile路径
|
||||
if [ -f "${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile" ]; then
|
||||
DOCKERFILE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile"
|
||||
else
|
||||
DOCKERFILE_PATH="${GITHUB_WORKSPACE}/Dockerfile"
|
||||
JAR_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/target/$(basename ${SERVICE_NAME}).jar"
|
||||
if [ ! -f "$JAR_PATH" ]; then
|
||||
echo "错误:JAR文件不存在 - $JAR_PATH"
|
||||
echo "目标目录内容:"
|
||||
ls -l "${GITHUB_WORKSPACE}/${SERVICE_NAME}/target"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 使用原生docker build命令构建镜像
|
||||
docker build -t "$IMAGE_TAG" -f "$DOCKERFILE_PATH" "${GITHUB_WORKSPACE}"
|
||||
- name: 配置Docker Buildx(使用原生Docker驱动)
|
||||
uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3
|
||||
with:
|
||||
driver: docker # 避免容器化驱动的网络隔离问题
|
||||
|
||||
# 保存镜像标签供后续步骤使用
|
||||
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
|
||||
- name: 登录到容器仓库
|
||||
uses: http://git.missmoc.top/mocheng/login-action@v3
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_URL }}
|
||||
username: ${{ secrets.REGISTRY_USER }}
|
||||
password: ${{ secrets.REGISTRY_PASS }}
|
||||
|
||||
- name: 推送Docker镜像到私有仓库
|
||||
- name: 确定Dockerfile路径
|
||||
id: dockerfile-path
|
||||
run: |
|
||||
# 推送镜像
|
||||
docker push "$IMAGE_TAG"
|
||||
SERVICE_NAME="${{ matrix.service }}"
|
||||
DOCKERFILE_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile"
|
||||
|
||||
# 登出仓库
|
||||
docker logout ${{ secrets.REGISTRY_URL }}
|
||||
if [ -f "$DOCKERFILE_ABSOLUTE_PATH" ]; then
|
||||
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