Files
composite-actions/docker-build-push/action.yml
2024-10-08 22:25:51 +08:00

64 lines
2.0 KiB
YAML

name: "打包推送 Docker 镜像"
description: "打包 Docker 镜像并推送到 Docker Hub"
inputs:
login_repository:
description: "docker/login-action 的 registry 参数"
default: "docker.io"
required: false
login_username:
description: "docker/login-action 的 username 参数"
required: true
login_password:
description: "docker/login-action 的 password 参数"
required: true
build_file:
description: "Dockerfile 文件路径"
default: "./Dockerfile"
required: false
build_context:
description: "Docker 构建上下文路径"
default: "."
required: false
build_platforms:
description: "Docker 构建平台"
default: "linux/amd64,linux/arm64"
required: false
build_push:
description: "是否推送 Docker 镜像"
default: "true"
required: false
build_load:
description: "是否加载 Docker 镜像"
default: "false"
required: false
runs:
using: "composite"
steps:
- uses: actions/checkout@main
with:
filter: blob:none
show-progress: false
- name: Login to DockerHub
uses: docker/login-action@v3
with:
registry: ${{ inputs.login_repository }}
username: ${{ inputs.login_username }}
password: ${{ inputs.login_password }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
file: ${{ inputs.build_file }}
context: ${{ inputs.build_context }}
platforms: ${{ inputs.build_platforms }}
push: ${{ inputs.build_push }}
load: ${{ inputs.build_load }}
# tags: ${{ steps.meta.outputs.tags }}
# labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
# cache-from: type=local,src=/tmp/.buildx-cache
# cache-to: type=local,dest=/tmp/.buildx-cache