| name: Create and publish a Docker image |
| |
| on: |
| release: |
| types: [published] |
| workflow_dispatch: |
| |
| permissions: |
| contents: read |
| |
| env: |
| REGISTRY: ghcr.io |
| IMAGE_NAME: ${{ github.repository }} |
| |
| jobs: |
| build-and-push-image: |
| runs-on: ubuntu-latest |
| permissions: |
| contents: read |
| packages: write |
| |
| steps: |
| - name: Checkout repository |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 |
| with: |
| submodules: recursive |
| |
| - name: Log in to the Container registry |
| uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc |
| with: |
| registry: ${{ env.REGISTRY }} |
| username: ${{ github.actor }} |
| password: ${{ secrets.GITHUB_TOKEN }} |
| |
| - name: Extract metadata (tags, labels) for Docker (slim variant) |
| id: meta-slim |
| uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 |
| with: |
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} |
| flavor: | |
| latest=auto |
| prefix=slim-,onlatest=true |
| suffix= |
| |
| - name: Build and push Docker image (slim) |
| uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825 |
| with: |
| context: . |
| push: true |
| tags: ${{ steps.meta-slim.outputs.tags }} |
| labels: ${{ steps.meta-slim.outputs.labels }} |
| build-args: | |
| VARIANT=slim |
| |
| - name: Extract metadata (tags, labels) for Docker (full variant) |
| id: meta-full |
| uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 |
| with: |
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} |
| |
| - name: Build and push Docker image (full) |
| uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825 |
| with: |
| context: . |
| push: true |
| tags: ${{ steps.meta-full.outputs.tags }} |
| labels: ${{ steps.meta-full.outputs.labels }} |
| build-args: | |
| VARIANT=full |