This commit is contained in:
2026-02-06 17:26:40 +07:00
parent edccc9cfbd
commit 782d0d403a
2 changed files with 74 additions and 13 deletions

View File

@@ -0,0 +1,61 @@
name: Docker Build & Push (Template)
on:
workflow_call:
inputs:
runner:
required: false
type: string
default: ubuntu-latest
image_name:
required: true
type: string
image_tag:
required: false
type: string
default: latest
dockerfile:
required: false
type: string
default: Dockerfile
context:
required: false
type: string
default: .
outputs:
image:
description: Fully-qualified image reference pushed to Docker Hub
value: ${{ jobs.build.outputs.image }}
jobs:
build:
runs-on: ${{ inputs.runner }}
outputs:
image: ${{ steps.push.outputs.image }}
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: |
docker build \
-t "${{ inputs.image_name }}:${{ inputs.image_tag }}" \
-f "${{ inputs.dockerfile }}" \
"${{ inputs.context }}"
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ env.DOCKER_HUB_USERNAME }}
password: ${{ env.DOCKER_HUB_ACCESS_TOKEN }}
- name: Push Docker image to Docker Hub
id: push
shell: bash
run: |
set -euo pipefail
REMOTE_IMAGE="${{ env.DOCKER_HUB_USERNAME }}/${{ inputs.image_name }}:${{ inputs.image_tag }}"
docker tag "${{ inputs.image_name }}:${{ inputs.image_tag }}" "$REMOTE_IMAGE"
docker push "$REMOTE_IMAGE"
echo "image=$REMOTE_IMAGE" >> "$GITHUB_OUTPUT"