支持自定义构建上下文 context

This commit is contained in:
2026-10-20 21:45:46 +08:00
parent a4901d4de4
commit c67e001d71
+31 -25
View File
@@ -1,58 +1,64 @@
name: 'build docker image and push to registry (default: code)' name: "build docker image and push to registry (default: code)"
inputs: inputs:
registry: registry:
description: 'Docker registry URL' description: "Docker registry URL"
required: true required: true
default: '${{ vars.DOCKER_REGISTRY }}' default: "${{ vars.DOCKER_REGISTRY }}"
user: user:
description: 'Docker registry username' description: "Docker registry username"
required: true required: true
default: '${{ vars.DOCKER_USER }}' default: "${{ vars.DOCKER_USER }}"
pass: pass:
description: 'Docker registry password' description: "Docker registry password"
required: true required: true
default: '${{ vars.DOCKER_PASS }}' default: "${{ vars.DOCKER_PASS }}"
image: image:
description: 'Docker image name' description: "Docker image name"
required: true required: true
default: '${{ github.repository }}' default: "${{ github.repository }}"
tag: tag:
description: 'Docker image tag (default: main)' description: "Docker image tag (default: main)"
required: false required: false
default: '${{ github.ref_name }}' default: "${{ github.ref_name }}"
platform: platform:
description: 'Build platform (default: linux/amd64)' description: "Build platform (default: linux/amd64)"
required: false required: false
default: 'linux/amd64' default: "linux/amd64"
context:
description: "Docker build context directory, relative to the repository root (default: .)"
required: false
default: "."
dockerfile: dockerfile:
description: 'Path to the Dockerfile (default: Dockerfile)' description: "Full path to the Dockerfile, relative to the repository root or absolute (default: Dockerfile)"
required: false required: false
default: 'Dockerfile' default: "Dockerfile"
proxy: proxy:
description: 'Proxy URL' description: "Proxy URL"
required: false required: false
default: 'http://100.100.13.14:8118' # 默认代理 default: "" # 默认代理
no_proxy: no_proxy:
description: 'No proxy addresses' description: "No proxy addresses"
required: false required: false
default: '192.168.0.0/24,192.168.1.0/24,*.simcu.com,*.coce.ink,*.coce.cc' # 默认不使用代理的地址 default: "192.168.0.0/24,192.168.1.0/24,*.simcu.com,*.coce.ink,*.coce.cc" # 默认不使用代理的地址
runs: runs:
using: 'composite' using: "composite"
steps: steps:
- name: build docker image - name: build docker image
uses: docker://docker:git uses: docker://docker:git
env: env:
DOCKER_BUILDKIT: 1 DOCKER_BUILDKIT: 1
HTTPS_PROXY: ${{ inputs.proxy }} # 设置 HTTPS 代理 HTTPS_PROXY: ${{ inputs.proxy }} # 设置 HTTPS 代理
HTTP_PROXY: ${{ inputs.proxy }} # 设置 HTTPS 代理 HTTP_PROXY: ${{ inputs.proxy }} # 设置 HTTPS 代理
NO_PROXY: ${{ inputs.no_proxy }} # 设置不使用代理的地址 NO_PROXY: ${{ inputs.no_proxy }} # 设置不使用代理的地址
with: with:
entrypoint: "/bin/sh" entrypoint: "/bin/sh"
args: | args: |
-c 'docker ps && docker info && docker build --platform ${{ inputs.platform }} \ -c 'docker ps && docker info && \
-t ${{ inputs.registry }}/${{ inputs.image }}:${{ inputs.tag }} -f ${{ inputs.dockerfile }} . && \ docker build --platform ${{ inputs.platform }} \
-t ${{ inputs.registry }}/${{ inputs.image }}:${{ inputs.tag }} \
-f ${{ inputs.dockerfile }} ${{ inputs.context }} && \
echo ${{ inputs.registry }}/${{ inputs.image }}:${{ inputs.tag }} 已经构建完了 && \ echo ${{ inputs.registry }}/${{ inputs.image }}:${{ inputs.tag }} 已经构建完了 && \
docker login ${{ inputs.registry }} -u ${{ inputs.user }} -p ${{ inputs.pass }} && \ docker login ${{ inputs.registry }} -u ${{ inputs.user }} -p ${{ inputs.pass }} && \
docker push ${{ inputs.registry }}/${{ inputs.image }}:${{ inputs.tag }} && \ docker push ${{ inputs.registry }}/${{ inputs.image }}:${{ inputs.tag }} && \