Skip to content

Example on how to add an image flavour #14

Example on how to add an image flavour

Example on how to add an image flavour #14

Workflow file for this run

name: Publish Docker image
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
- renovate/**
release:
types: [ published ]
permissions:
contents: read
packages: write
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }} # <organization>/<repository>
BUILD_ARCHITECTURES: linux/amd64,linux/arm64
jobs:
build-image:
name: Build Docker images
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v5
id: base-image
with:
push: false
platforms: ${{ env.BUILD_ARCHITECTURES }}
cache-from: type=gha
cache-to: type=gha,mode=max
- run: |
echo 'DEBUG: ${{ steps.base-image.outputs }}'
- uses: docker/build-push-action@v5
with:
push: false
platforms: ${{ env.BUILD_ARCHITECTURES }}
cache-from: type=gha
cache-to: type=gha,mode=max
file: Dockerfile.nginx
build-args: |
BASE_IMAGE=${{ steps.base-image.outputs.digest }}
- uses: docker/build-push-action@v5
with:
push: false
platforms: ${{ env.BUILD_ARCHITECTURES }}
cache-from: type=gha
cache-to: type=gha,mode=max
file: Dockerfile.caddy
build-args: |
BASE_IMAGE=${{ steps.base-image.outputs.digest }}
push-image:
name: Push images
runs-on: ubuntu-latest
needs: [ build-image ]
if: ${{ github.event_name == 'release' || github.ref_name == github.event.repository.default_branch}}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/metadata-action@v5
id: meta-php-fpm
with:
context: git
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
latest=auto
tags: |
type=edge,branch=${{ github.event.repository.default_branch }}
- uses: docker/build-push-action@v5
with:
push: true
platforms: ${{ env.BUILD_ARCHITECTURES }}
cache-from: type=gha
cache-to: type=gha,mode=max
annotations: ${{ steps.meta-php-fpm.outputs.annotations }}
labels: ${{ steps.meta-php-fpm.outputs.labels }}
tags: ${{ steps.meta-php-fpm.outputs.tags }}
- uses: docker/metadata-action@v5
id: meta-nginx
with:
context: git
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
latest=auto
suffix=nginx
tags: |
type=edge,branch=${{ github.event.repository.default_branch }}
- uses: docker/build-push-action@v5
with:
push: true
platforms: ${{ env.BUILD_ARCHITECTURES }}
cache-from: type=gha
cache-to: type=gha,mode=max
annotations: ${{ steps.meta-nginx.outputs.annotations }}
labels: ${{ steps.meta-nginx.outputs.labels }}
tags: ${{ steps.meta-nginx.outputs.tags }}
file: Dockerfile.nginx
build-args: |
BASE_IMAGE=davis-build:${{ fromJSON(steps.meta-php-fpm.outputs.json).tags[0] }}
- uses: docker/metadata-action@v5
id: meta-caddy
with:
context: git
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
latest=auto
suffix=caddy
tags: |
type=edge,branch=${{ github.event.repository.default_branch }}
- uses: docker/build-push-action@v5
with:
push: true
platforms: ${{ env.BUILD_ARCHITECTURES }}
cache-from: type=gha
cache-to: type=gha,mode=max
annotations: ${{ steps.meta-caddy.outputs.annotations }}
labels: ${{ steps.meta-caddy.outputs.labels }}
tags: ${{ steps.meta-caddy.outputs.tags }}
file: Dockerfile.caddy
build-args: |
BASE_IMAGE=davis-build:${{ fromJSON(steps.meta-php-fpm.outputs.json).tags[0] }}