
Halo, kalau kamu merasa tulisan saya ngebantu kamu, kamu bisa ucapkan terima kasih lewat saweria .
Hello, if you find this article helpful, you can express your gratitude through saweria .
Awalan
-
Contoh ini di ambil dari jawaban user crazy-max di github issues - build-push-action
-
Image di push ke ghcr.io
-
Contoh project saya ambil dari post saya sebelumnya, Docker Custom Environment Dengan Sed & Envsubst
-
Hanya menggunakan 1 repo, dibedakan oleh tag saja (satu dengan :sed, satu lagi dengan :envsubst)
How To
Tambahkan github workflows
name: Build & publish multiple images
on:
push:
branches:
- main
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push-image:
runs-on: ubuntu-latest
#use matrix to create multiple job easily
#https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs
strategy:
fail-fast: false
matrix:
include:
- dockerfile: ./docker-environment-example/Dockerfile
#to create your own, the format was
#ghcr.io/username/reponame:prefered-tag
image: ghcr.io/ipang777/docker-env:sed
context: ./docker-environment-example
- dockerfile: ./docker-environment-example-envsubst/Dockerfile
image: ghcr.io/ipang777/docker-env:envsubst
context: ./docker-environment-example-envsubst
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: log in container registry
uses: docker/login-action@v1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ matrix.image }}
- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
# call variable on matrix strategy
context: ${{ matrix.context }}
file: ${{ matrix.dockerfile }}
push: true
tags: ${{ matrix.image }}
labels: ${{ steps.meta.outputs.labels }}
References