Add support for multi-arch containers

Create the kas and kas-isar containers also for arm64. This allows using
them for arm-native builds, e.g. in AWS instances.

We need to drop a couple of packages from arm64 images which do not
exist on that arch. If the kas image is usable for Yocto builds is
untested, though. The Isar image works.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
Jan Kiszka 2021-01-02 19:49:39 +01:00
parent c92d845639
commit e8b6a4d89b
4 changed files with 24 additions and 2 deletions

View File

@ -22,6 +22,10 @@ jobs:
else
echo "PUSH_MASTER=true" >> $GITHUB_ENV
fi
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to ghcr.io
uses: docker/login-action@v1
with:
@ -31,11 +35,13 @@ jobs:
- name: Build kas image
uses: docker/build-push-action@v2
with:
platforms: linux/amd64,linux/arm64
push: ${{ env.PUSH_MASTER }}
tags: ghcr.io/siemens/kas/kas
- name: Build kas-isar image
uses: docker/build-push-action@v2
with:
file: Dockerfile.isar
platforms: linux/amd64,linux/arm64
push: ${{ env.PUSH_MASTER }}
tags: ghcr.io/siemens/kas/kas-isar

View File

@ -48,6 +48,10 @@ jobs:
steps:
- name: Check out repo
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to ghcr.io
uses: docker/login-action@v1
with:
@ -57,12 +61,14 @@ jobs:
- name: Build kas image
uses: docker/build-push-action@v2
with:
platforms: linux/amd64,linux/arm64
push: true
tags: ghcr.io/siemens/kas/kas:next
- name: Build kas-isar image
uses: docker/build-push-action@v2
with:
file: Dockerfile.isar
platforms: linux/amd64,linux/arm64
build-args: KAS_TAG=next
push: true
tags: ghcr.io/siemens/kas/kas-isar:next

View File

@ -14,6 +14,10 @@ jobs:
uses: actions/checkout@v2
- name: Get release
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to ghcr.io
uses: docker/login-action@v1
with:
@ -23,6 +27,7 @@ jobs:
- name: Build kas image
uses: docker/build-push-action@v2
with:
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/siemens/kas/kas
@ -32,6 +37,7 @@ jobs:
uses: docker/build-push-action@v2
with:
file: Dockerfile.isar
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/siemens/kas/kas-isar

View File

@ -2,6 +2,7 @@
FROM debian:buster-slim
ARG TARGETPLATFORM
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
@ -10,14 +11,17 @@ RUN apt-get update && \
ENV LANG=en_US.utf8
RUN apt-get install --no-install-recommends -y \
gawk wget git-core diffstat unzip texinfo gcc-multilib \
gawk wget git-core diffstat unzip texinfo \
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
pylint3 xterm \
python3-setuptools python3-wheel python3-yaml \
gosu lsb-release file vim less procps tree tar bzip2 zstd bc tmux libncurses-dev \
dosfstools mtools parted syslinux \
dosfstools mtools parted \
git-lfs mercurial iproute2 ssh-client curl rsync gnupg awscli && \
if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
apt-get install --no-install-recommends -y gcc-multilib syslinux; \
fi && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*