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:
parent
c92d845639
commit
e8b6a4d89b
6
.github/workflows/master.yml
vendored
6
.github/workflows/master.yml
vendored
@ -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
|
||||
|
6
.github/workflows/next.yml
vendored
6
.github/workflows/next.yml
vendored
@ -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
|
||||
|
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
@ -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
|
||||
|
@ -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/*
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user