修改基础镜像

This commit is contained in:
mocheng 2025-08-14 17:08:31 +08:00
parent a8b21eeaa3
commit 61883eff21

View File

@ -1,3 +1,225 @@
#run-name: ${{ gitea.actor }} 构建镜像并推送不含JAR依赖上传🚀
#on:
# push:
# branches:
# - master
#
#jobs:
# build-parent-pom:
# runs-on: ubuntu
# steps:
# - name: 拉取代码仓库
# uses: http://git.missmoc.top/mocheng/checkout@v4
#
# - name: 配置环境变量(绝对路径)
# run: |
# export JAVA_HOME="/java17/java17"
# export MAVEN_HOME="/maven/apache-maven-3.9.11"
#
# if [ ! -f "$JAVA_HOME/bin/java" ]; then
# echo "错误JDK可执行文件不存在于 $JAVA_HOME/bin/java"
# exit 1
# fi
# if [ ! -f "$MAVEN_HOME/bin/mvn" ]; then
# echo "错误Maven可执行文件不存在于 $MAVEN_HOME/bin/mvn"
# exit 1
# fi
#
# echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
# echo "$JAVA_HOME/bin" >> $GITHUB_PATH
# echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
# echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
#
# "$JAVA_HOME/bin/java" -version
# "$MAVEN_HOME/bin/mvn" -v
#
# - name: 配置Maven仓库
# run: |
# mkdir -p ~/.m2
# cat > ~/.m2/settings.xml << EOF
# <?xml version="1.0" encoding="UTF-8"?>
# <settings>
# <localRepository>/root/.m2/repository</localRepository>
# <profiles>
# <profile>
# <id>multi-repo</id>
# <repositories>
# <repository>
# <id>local-repo</id>
# <url>file:///root/.m2/repository</url>
# </repository>
# <repository>
# <id>aliyun-public</id>
# <url>https://maven.aliyun.com/repository/public</url>
# </repository>
# </repositories>
# </profile>
# </profiles>
# <activeProfiles>
# <activeProfile>multi-repo</activeProfile>
# </activeProfiles>
# </settings>
# EOF
#
# - name: 构建主POM仅本地安装不上传
# run: |
# MAIN_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/pom.xml"
# if [ ! -f "$MAIN_POM_ABSOLUTE_PATH" ]; then
# echo "错误主POM文件不存在"
# exit 1
# fi
#
# retries=3
# count=0
# until "$MAVEN_HOME/bin/mvn" clean install -U -DskipTests -f "$MAIN_POM_ABSOLUTE_PATH"; do
# count=$((count + 1))
# if [ $count -ge $retries ]; then
# echo "错误主POM构建失败"
# exit 1
# fi
# sleep 10
# done
#
# # build-common-modules:
# # needs: build-parent-pom
# # runs-on: ubuntu
# # steps:
# # - name: 拉取代码仓库
# # uses: http://git.missmoc.top/mocheng/checkout@v4
#
# # - name: 配置环境变量
# # run: |
# # export JAVA_HOME="/java17/java17"
# # export MAVEN_HOME="/maven/apache-maven-3.9.11"
# # echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
# # echo "$JAVA_HOME/bin" >> $GITHUB_PATH
# # echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
# # echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
#
# # - name: 构建通用模块(仅本地使用,不上传)
# # run: |
# # COMMON_MODULES=(
# # "ruoyi-common"
# # "ruoyi-api"
# # "ruoyi-common-bom"
# # "ruoyi-common-alibaba-bom"
# # "ruoyi-api-bom"
# # )
#
# # for module in "${COMMON_MODULES[@]}"; do
# # MODULE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${module}/pom.xml"
# # if [ ! -f "$MODULE_POM_ABSOLUTE_PATH" ]; then
# # echo "警告:模块 $module 不存在,跳过"
# # continue
# # fi
#
# # retries=3
# # count=0
# # until "$MAVEN_HOME/bin/mvn" clean compile install -U -DskipTests -f "$MODULE_POM_ABSOLUTE_PATH"; do
# # count=$((count + 1))
# # if [ $count -ge $retries ]; then
# # echo "错误:模块 $module 构建失败"
# # exit 1
# # fi
# # sleep 10
# # done
# # done
#
# build-and-push-services:
# needs: build-common-modules
# runs-on: ubuntu
# strategy:
# matrix:
# service:
# - ruoyi-auth
# - ruoyi-gateway
# - ruoyi-modules/Property
# - ruoyi-modules/ruoyi-gen
# - ruoyi-modules/ruoyi-job
# - ruoyi-modules/ruoyi-resource
# - ruoyi-modules/ruoyi-system
# - ruoyi-modules/ruoyi-workflow
# - ruoyi-modules/Sis
# - ruoyi-visual/ruoyi-monitor
# - ruoyi-visual/ruoyi-nacos
# - ruoyi-seata-server
# - ruoyi-sentinel-dashboard
# - ruoyi-snailjob-server
# steps:
# - name: 拉取代码仓库
# uses: http://git.missmoc.top/mocheng/checkout@v4
#
# - name: 配置环境变量
# run: |
# export JAVA_HOME="/java17/java17"
# export MAVEN_HOME="/maven/apache-maven-3.9.11"
# echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
# echo "$JAVA_HOME/bin" >> $GITHUB_PATH
# echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
# echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
#
# - name: 构建服务模块
# run: |
# SERVICE_NAME="${{ matrix.service }}"
# SERVICE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/pom.xml"
# if [ ! -f "$SERVICE_POM_ABSOLUTE_PATH" ]; then
# echo "错误:服务 $SERVICE_NAME 的POM文件不存在"
# exit 1
# fi
#
# "$MAVEN_HOME/bin/mvn" clean package -U -DskipTests -f "$SERVICE_POM_ABSOLUTE_PATH"
#
# - name: 配置Docker Buildx
# uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3
#
# - 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: |
# SERVICE_NAME="${{ matrix.service }}"
# DOCKERFILE_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${SERVICE_NAME}/Dockerfile"
#
# 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:
# context: "${{ github.workspace }}"
# file: "${{ github.workspace }}/${{ matrix.service }}/Dockerfile"
# tags: "172.100.10.45:3000/by2025/smartparks/${{ matrix.service }}:latest"
# push: true
# cache-from: type=gha
# cache-to: type=gha,mode=max
#
# # 关键配置允许该仓库使用HTTP
# daemon-config: |
# {
# "insecure-registries": ["172.100.10.45:3000"]
# }
#
# # 确保buildx使用正确的网络配置
# driver-opts: |
# network=host
## context: "${{ github.workspace }}"
## file: ${{ github.workspace }}/${{ matrix.service }}/Dockerfile
## tags: 172.100.10.45:3000/by2025/smartparks/${{ matrix.service }}:latest
## # tags: ${{ secrets.REGISTRY_URL }}/by2025/$(echo ${{ matrix.service }} | tr 'A-Z' 'a-z'):${{ github.sha }}
## # tags: ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:2.0.4
## push: true
## cache-from: type=gha
## cache-to: type=gha,mode=max
run-name: ${{ gitea.actor }} 构建镜像并推送不含JAR依赖上传🚀 run-name: ${{ gitea.actor }} 构建镜像并推送不含JAR依赖上传🚀
on: on:
push: push:
@ -80,50 +302,50 @@ jobs:
sleep 10 sleep 10
done done
# build-common-modules: build-common-modules:
# needs: build-parent-pom needs: build-parent-pom
# runs-on: ubuntu runs-on: ubuntu
# steps: steps:
# - name: 拉取代码仓库 - name: 拉取代码仓库
# uses: http://git.missmoc.top/mocheng/checkout@v4 uses: http://git.missmoc.top/mocheng/checkout@v4
# - name: 配置环境变量 - name: 配置环境变量
# run: | run: |
# export JAVA_HOME="/java17/java17" export JAVA_HOME="/java17/java17"
# export MAVEN_HOME="/maven/apache-maven-3.9.11" export MAVEN_HOME="/maven/apache-maven-3.9.11"
# echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
# echo "$JAVA_HOME/bin" >> $GITHUB_PATH echo "$JAVA_HOME/bin" >> $GITHUB_PATH
# echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV echo "MAVEN_HOME=$MAVEN_HOME" >> $GITHUB_ENV
# echo "$MAVEN_HOME/bin" >> $GITHUB_PATH echo "$MAVEN_HOME/bin" >> $GITHUB_PATH
# - name: 构建通用模块(仅本地使用,不上传) - name: 构建通用模块(仅本地使用,不上传)
# run: | run: |
# COMMON_MODULES=( COMMON_MODULES=(
# "ruoyi-common" "ruoyi-common"
# "ruoyi-api" "ruoyi-api"
# "ruoyi-common-bom" "ruoyi-common-bom"
# "ruoyi-common-alibaba-bom" "ruoyi-common-alibaba-bom"
# "ruoyi-api-bom" "ruoyi-api-bom"
# ) )
# for module in "${COMMON_MODULES[@]}"; do for module in "${COMMON_MODULES[@]}"; do
# MODULE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${module}/pom.xml" MODULE_POM_ABSOLUTE_PATH="${GITHUB_WORKSPACE}/${module}/pom.xml"
# if [ ! -f "$MODULE_POM_ABSOLUTE_PATH" ]; then if [ ! -f "$MODULE_POM_ABSOLUTE_PATH" ]; then
# echo "警告:模块 $module 不存在,跳过" echo "警告:模块 $module 不存在,跳过"
# continue continue
# fi fi
# retries=3 retries=3
# count=0 count=0
# until "$MAVEN_HOME/bin/mvn" clean compile install -U -DskipTests -f "$MODULE_POM_ABSOLUTE_PATH"; do until "$MAVEN_HOME/bin/mvn" clean compile install -U -DskipTests -f "$MODULE_POM_ABSOLUTE_PATH"; do
# count=$((count + 1)) count=$((count + 1))
# if [ $count -ge $retries ]; then if [ $count -ge $retries ]; then
# echo "错误:模块 $module 构建失败" echo "错误:模块 $module 构建失败"
# exit 1 exit 1
# fi fi
# sleep 10 sleep 10
# done done
# done done
build-and-push-services: build-and-push-services:
needs: build-common-modules needs: build-common-modules
@ -169,8 +391,21 @@ 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 Buildx - name: 检查JAR文件是否存在
run: |
SERVICE_NAME="${{ matrix.service }}"
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
- name: 配置Docker Buildx使用原生Docker驱动
uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3 uses: http://git.missmoc.top/mocheng/setup-buildx-action@v3
with:
driver: docker # 避免容器化驱动的网络隔离问题
- name: 登录到容器仓库 - name: 登录到容器仓库
uses: http://git.missmoc.top/mocheng/login-action@v3 uses: http://git.missmoc.top/mocheng/login-action@v3
@ -194,27 +429,19 @@ jobs:
- name: 构建并推送Docker镜像仅推送镜像不上传JAR - name: 构建并推送Docker镜像仅推送镜像不上传JAR
uses: http://git.missmoc.top/mocheng/build-push-action@v5 uses: http://git.missmoc.top/mocheng/build-push-action@v5
with: with:
context: "${{ github.workspace }}" # 使用服务模块目录作为构建上下文确保能找到target/JAR
file: "${{ github.workspace }}/${{ matrix.service }}/Dockerfile" context: "${{ github.workspace }}/${{ matrix.service }}"
tags: "172.100.10.45:3000/by2025/smartparks/${{ matrix.service }}:latest" file: "${{ steps.dockerfile-path.outputs.dockerfile_path }}"
# 处理镜像标签中的斜杠(避免格式错误)
tags: "172.100.10.45:3000/by2025/smartparks/$(echo ${{ matrix.service }} | tr '/' '-'):latest"
push: true push: true
cache-from: type=gha cache-from: type=gha
cache-to: type=gha,mode=max cache-to: type=gha,mode=max
# 允许HTTP访问私有仓库
# 关键配置允许该仓库使用HTTP
daemon-config: | daemon-config: |
{ {
"insecure-registries": ["172.100.10.45:3000"] "insecure-registries": ["172.100.10.45:3000"]
} }
# 禁用容器化网络,使用主机网络
# 确保buildx使用正确的网络配置
driver-opts: | driver-opts: |
network=host network=host
# context: "${{ github.workspace }}"
# file: ${{ github.workspace }}/${{ matrix.service }}/Dockerfile
# tags: 172.100.10.45:3000/by2025/smartparks/${{ matrix.service }}:latest
# # tags: ${{ secrets.REGISTRY_URL }}/by2025/$(echo ${{ matrix.service }} | tr 'A-Z' 'a-z'):${{ github.sha }}
# # tags: ${{ secrets.REGISTRY_URL }}/by2025/${{ matrix.service }}:2.0.4
# push: true
# cache-from: type=gha
# cache-to: type=gha,mode=max