name: Build and Push Next.js to Private Registry on: push: branches: - main workflow_dispatch: jobs: build-and-push: runs-on: ubuntu-latest steps: # 替换 actions/checkout@v4:直接利用 Runner 容器自带的 git 命令克隆 # Gitea 会自动注入环境变量 $GITEA_SERVER_URL, $GITEA_REPOSITORY, $GITEA_SHA - name: 检查代码 (本地原生 Git) run: | git clone ${{ github.server_url }}/${{ github.repository }}.git . git checkout ${{ github.sha }} - name: 生成短哈希版本号 id: vars run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT # 替换 docker/setup-buildx-action:在纯内网,如果 Runner 宿主机已经有常规 Docker, # 可以直接使用本机的 docker build 命令,不再需要下载外网的 buildx action。 - name: 构建并推送镜像 (本地 Docker) run: | # 允许本地 docker 引擎推送到不安全的 http 私有仓 # 注意:确保运行运行此任务的机器 /etc/docker/daemon.json 中配置了 "insecure-registries": ["192.168.10.236:31051"] IMAGE_NAME="192.168.10.236:31051/你的应用名" SHA_TAG="${{ steps.vars.outputs.sha_short }}" docker build -t ${IMAGE_NAME}:latest -t ${IMAGE_NAME}:${SHA_TAG} -f ./Dockerfile . docker push ${IMAGE_NAME}:latest docker push ${IMAGE_NAME}:${SHA_TAG}