build,ci: add initial arm64 support

This commit is contained in:
Grant Slater
2022-04-21 09:41:58 +01:00
committed by Saúl Ibarra Corretgé
parent 3b86df07b2
commit 8b02b8a4a1
2 changed files with 72 additions and 11 deletions

View File

@@ -22,7 +22,11 @@ jobs:
needs: version needs: version
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx - name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to DockerHub - name: Login to DockerHub
@@ -42,6 +46,7 @@ jobs:
${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.date }} ${{ secrets.JITSI_REPO }}/base:${{ needs.version.outputs.date }}
build-args: | build-args: |
JITSI_RELEASE=unstable JITSI_RELEASE=unstable
platforms: linux/amd64,linux/arm64
- name: Dryrun - name: Dryrun
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
if: ${{ github.event_name == 'pull_request' }} if: ${{ github.event_name == 'pull_request' }}
@@ -52,13 +57,18 @@ jobs:
jitsi/base:${{ needs.version.outputs.date }} jitsi/base:${{ needs.version.outputs.date }}
build-args: | build-args: |
JITSI_RELEASE=unstable JITSI_RELEASE=unstable
platforms: linux/amd64,linux/arm64
base-java: base-java:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [version, base] needs: [version, base]
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx - name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to DockerHub - name: Login to DockerHub
@@ -79,6 +89,7 @@ jobs:
build-args: | build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }} JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64
- name: Dryrun - name: Dryrun
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
if: ${{ github.event_name == 'pull_request' }} if: ${{ github.event_name == 'pull_request' }}
@@ -90,13 +101,18 @@ jobs:
build-args: | build-args: |
JITSI_REPO=jitsi JITSI_REPO=jitsi
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64
jibri: jibri:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [version, base-java] needs: [version, base-java]
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx - name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to DockerHub - name: Login to DockerHub
@@ -117,6 +133,8 @@ jobs:
build-args: | build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }} JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
# FIXME jibri does not support linux/arm64
platforms: linux/amd64
- name: Dryrun - name: Dryrun
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
if: ${{ github.event_name == 'pull_request' }} if: ${{ github.event_name == 'pull_request' }}
@@ -128,13 +146,19 @@ jobs:
build-args: | build-args: |
JITSI_REPO=jitsi JITSI_REPO=jitsi
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
# FIXME jibri does not support linux/arm64
platforms: linux/amd64
jicofo: jicofo:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [version, base-java] needs: [version, base-java]
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx - name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to DockerHub - name: Login to DockerHub
@@ -155,6 +179,7 @@ jobs:
build-args: | build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }} JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64
- name: Dryrun - name: Dryrun
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
if: ${{ github.event_name == 'pull_request' }} if: ${{ github.event_name == 'pull_request' }}
@@ -166,13 +191,18 @@ jobs:
build-args: | build-args: |
JITSI_REPO=jitsi JITSI_REPO=jitsi
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64
jigasi: jigasi:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [version, base-java] needs: [version, base-java]
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx - name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to DockerHub - name: Login to DockerHub
@@ -193,6 +223,8 @@ jobs:
build-args: | build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }} JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
# FIXME jigasi does not support linux/arm64
platforms: linux/amd64
- name: Dryrun - name: Dryrun
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
if: ${{ github.event_name == 'pull_request' }} if: ${{ github.event_name == 'pull_request' }}
@@ -204,13 +236,19 @@ jobs:
build-args: | build-args: |
JITSI_REPO=jitsi JITSI_REPO=jitsi
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
# FIXME jigasi does not support linux/arm64
platforms: linux/amd64
jvb: jvb:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [version, base-java] needs: [version, base-java]
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx - name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to DockerHub - name: Login to DockerHub
@@ -231,6 +269,7 @@ jobs:
build-args: | build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }} JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64
- name: Dryrun - name: Dryrun
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
if: ${{ github.event_name == 'pull_request' }} if: ${{ github.event_name == 'pull_request' }}
@@ -242,13 +281,18 @@ jobs:
build-args: | build-args: |
JITSI_REPO=jitsi JITSI_REPO=jitsi
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64
prosody: prosody:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [version, base] needs: [version, base]
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx - name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to DockerHub - name: Login to DockerHub
@@ -269,6 +313,7 @@ jobs:
build-args: | build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }} JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64
- name: Dryrun - name: Dryrun
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
if: ${{ github.event_name == 'pull_request' }} if: ${{ github.event_name == 'pull_request' }}
@@ -280,13 +325,18 @@ jobs:
build-args: | build-args: |
JITSI_REPO=jitsi JITSI_REPO=jitsi
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64
web: web:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [version, base] needs: [version, base]
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: linux/amd64,linux/arm64
- name: Setup Docker Buildx - name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v1
- name: Login to DockerHub - name: Login to DockerHub
@@ -307,6 +357,7 @@ jobs:
build-args: | build-args: |
JITSI_REPO=${{ secrets.JITSI_REPO }} JITSI_REPO=${{ secrets.JITSI_REPO }}
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64
- name: Dryrun - name: Dryrun
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
if: ${{ github.event_name == 'pull_request' }} if: ${{ github.event_name == 'pull_request' }}
@@ -318,3 +369,4 @@ jobs:
build-args: | build-args: |
JITSI_REPO=jitsi JITSI_REPO=jitsi
BASE_TAG=${{ needs.version.outputs.base }} BASE_TAG=${{ needs.version.outputs.base }}
platforms: linux/amd64,linux/arm64

View File

@@ -1,14 +1,23 @@
FROM debian:bullseye-slim FROM debian:bullseye-slim
ARG JITSI_RELEASE=stable ARG JITSI_RELEASE=stable
ARG TARGETPLATFORM
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2 ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
ADD https://github.com/jitsi/tpl/releases/download/v1.0.1/tpl-linux-amd64 /usr/bin/tpl
COPY rootfs / COPY rootfs /
RUN apt-dpkg-wrap apt-get update && \ RUN case ${TARGETPLATFORM} in \
"linux/amd64") TPL_ARCH=amd64 ;; \
"linux/arm64") TPL_ARCH=arm64 ;; \
esac && \
case ${TARGETPLATFORM} in \
"linux/amd64") S6_ARCH=amd64 ;; \
"linux/arm64") S6_ARCH=aarch64 ;; \
esac && \
apt-dpkg-wrap apt-get update && \
apt-dpkg-wrap apt-get install -y apt-transport-https apt-utils ca-certificates gnupg wget && \ apt-dpkg-wrap apt-get install -y apt-transport-https apt-utils ca-certificates gnupg wget && \
wget -qO - https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-amd64.tar.gz | tar xfz - -C / && \ wget -qO /usr/bin/tpl https://github.com/jitsi/tpl/releases/download/v1.0.1/tpl-linux-${TPL_ARCH} && \
wget -qO - https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-${S6_ARCH}.tar.gz | tar xfz - -C / && \
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | gpg --dearmour > /etc/apt/trusted.gpg.d/jitsi.gpg && \ wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | gpg --dearmour > /etc/apt/trusted.gpg.d/jitsi.gpg && \
echo "deb https://download.jitsi.org $JITSI_RELEASE/" > /etc/apt/sources.list.d/jitsi.list && \ echo "deb https://download.jitsi.org $JITSI_RELEASE/" > /etc/apt/sources.list.d/jitsi.list && \
echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list && \ echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list && \