Skip to content

Reapply "docker: Merge Dockerfiles into one again" #8

Reapply "docker: Merge Dockerfiles into one again"

Reapply "docker: Merge Dockerfiles into one again" #8

Workflow file for this run

name: Build and deploy nginx image
on:
push:
branches: main
paths:
- "nginx/**"
- ".github/workflows/nginx_deploy.yml"
workflow_dispatch:
jobs:
docker:
strategy:
matrix:
include:
- os: ubuntu-24.04
platform: amd64
- os: ubuntu-24.04-arm
platform: arm64
runs-on: ${{matrix.os}}
permissions:
packages: write
concurrency:
group: ${{matrix.platform}}-build_push_docker_nginx
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: nginx
file: nginx/Dockerfile
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/${{ matrix.platform }}
provenance: false
tags: |
ghcr.io/${{ github.repository_owner }}/nginx:${{ github.sha }}-${{matrix.platform}}
ghcr.io/${{ github.repository_owner }}/nginx:latest-${{matrix.platform}}
labels: |
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.source=ssh://[email protected]:${{ github.repository }}.git
org.opencontainers.image.url=https://github.com/${{ github.repository }}
build-args: |
SENTRY_RELEASE=${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
docker-manifest:
if: ${{ github.event_name != 'pull_request' }}
runs-on: ubuntu-latest
timeout-minutes: 30
needs:
- docker
permissions:
packages: write
steps:
- name: Login to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create and push nginx manifest
run: |
docker manifest create \
ghcr.io/${{ github.repository_owner }}/nginx:${{ github.sha }} \
--amend ghcr.io/${{ github.repository_owner }}/nginx:${{ github.sha }}-amd64 \
--amend ghcr.io/${{ github.repository_owner }}/nginx:${{ github.sha }}-arm64
docker manifest push ghcr.io/${{ github.repository_owner }}/nginx:${{ github.sha }}
docker manifest create \
ghcr.io/${{ github.repository_owner }}/nginx:latest \
--amend ghcr.io/${{ github.repository_owner }}/nginx:${{ github.sha }}-amd64 \
--amend ghcr.io/${{ github.repository_owner }}/nginx:${{ github.sha }}-arm64
docker manifest push ghcr.io/${{ github.repository_owner }}/nginx:latest