Files
docker-build-push/action.yml
T

66 lines
2.3 KiB
YAML
Raw Normal View History

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