|
1 | | -name: multi-arch docker build |
| 1 | +name: multi-arch docker build using qemu |
2 | 2 |
|
3 | 3 | on: |
4 | 4 | push: |
|
7 | 7 |
|
8 | 8 | jobs: |
9 | 9 | build: |
10 | | - strategy: |
11 | | - matrix: |
12 | | - arch: [amd64, arm64] |
13 | | - runs-on: ${{ matrix.arch == 'amd64' && 'ubuntu-24.04' || matrix.arch == 'arm64' && 'ubuntu-24.04-arm' }} |
| 10 | + runs-on: ubuntu-20.04 |
14 | 11 |
|
15 | 12 | steps: |
16 | 13 | - name: checkout code |
17 | | - uses: actions/checkout@v4 |
| 14 | + uses: actions/checkout@v2 |
| 15 | + |
| 16 | + - name: set up qemu for linux/arm64 |
| 17 | + uses: docker/setup-qemu-action@v1 |
18 | 18 |
|
19 | 19 | - name: install buildx |
20 | 20 | id: buildx |
21 | | - uses: docker/setup-buildx-action@v3 |
| 21 | + uses: docker/setup-buildx-action@v1 |
22 | 22 | with: |
23 | 23 | version: latest |
24 | 24 |
|
25 | 25 | - name: login to docker hub |
26 | 26 | run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin |
27 | 27 |
|
28 | | - - name: build and push image |
| 28 | + - name: build multi-arch image and push to docker hub |
29 | 29 | run: | |
30 | 30 | docker buildx build --push \ |
31 | | - --tag rsubr/php-apache-ubuntu:noble-${{ matrix.arch }} \ |
32 | | - --tag rsubr/php-apache-ubuntu:24.04-${{ matrix.arch }} \ |
33 | | - --platform linux/${{ matrix.arch }} . |
34 | | -
|
35 | | - manifest: |
36 | | - needs: build |
37 | | - runs-on: ubuntu-24.04 |
38 | | - steps: |
39 | | - - name: login to docker hub |
40 | | - run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin |
41 | | - - name: create and push manifest |
42 | | - run: | |
43 | | - docker manifest create rsubr/php-apache-ubuntu:noble rsubr/php-apache-ubuntu:noble-amd64 rsubr/php-apache-ubuntu:noble-arm64 |
44 | | - docker manifest create rsubr/php-apache-ubuntu:24.04 rsubr/php-apache-ubuntu:24.04-amd64 rsubr/php-apache-ubuntu:24.04-arm64 |
45 | | - docker manifest push rsubr/php-apache-ubuntu:noble |
46 | | - docker manifest push rsubr/php-apache-ubuntu:24.04 |
| 31 | + --tag rsubr/php-apache-ubuntu:noble \ |
| 32 | + --tag rsubr/php-apache-ubuntu:24.04 \ |
| 33 | + --platform linux/amd64,linux/arm64 . |
0 commit comments