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
|
else
|
||||||
echo "PUSH_MASTER=true" >> $GITHUB_ENV
|
echo "PUSH_MASTER=true" >> $GITHUB_ENV
|
||||||
fi
|
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
|
- name: Login to ghcr.io
|
||||||
uses: docker/login-action@v1
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
@ -31,11 +35,13 @@ jobs:
|
|||||||
- name: Build kas image
|
- name: Build kas image
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
push: ${{ env.PUSH_MASTER }}
|
push: ${{ env.PUSH_MASTER }}
|
||||||
tags: ghcr.io/siemens/kas/kas
|
tags: ghcr.io/siemens/kas/kas
|
||||||
- name: Build kas-isar image
|
- name: Build kas-isar image
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
file: Dockerfile.isar
|
file: Dockerfile.isar
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
push: ${{ env.PUSH_MASTER }}
|
push: ${{ env.PUSH_MASTER }}
|
||||||
tags: ghcr.io/siemens/kas/kas-isar
|
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:
|
steps:
|
||||||
- name: Check out repo
|
- name: Check out repo
|
||||||
uses: actions/checkout@v2
|
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
|
- name: Login to ghcr.io
|
||||||
uses: docker/login-action@v1
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
@ -57,12 +61,14 @@ jobs:
|
|||||||
- name: Build kas image
|
- name: Build kas image
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
push: true
|
push: true
|
||||||
tags: ghcr.io/siemens/kas/kas:next
|
tags: ghcr.io/siemens/kas/kas:next
|
||||||
- name: Build kas-isar image
|
- name: Build kas-isar image
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
file: Dockerfile.isar
|
file: Dockerfile.isar
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
build-args: KAS_TAG=next
|
build-args: KAS_TAG=next
|
||||||
push: true
|
push: true
|
||||||
tags: ghcr.io/siemens/kas/kas-isar:next
|
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
|
uses: actions/checkout@v2
|
||||||
- name: Get release
|
- name: Get release
|
||||||
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
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
|
- name: Login to ghcr.io
|
||||||
uses: docker/login-action@v1
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
@ -23,6 +27,7 @@ jobs:
|
|||||||
- name: Build kas image
|
- name: Build kas image
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
push: true
|
push: true
|
||||||
tags: |
|
tags: |
|
||||||
ghcr.io/siemens/kas/kas
|
ghcr.io/siemens/kas/kas
|
||||||
@ -32,6 +37,7 @@ jobs:
|
|||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v2
|
||||||
with:
|
with:
|
||||||
file: Dockerfile.isar
|
file: Dockerfile.isar
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
push: true
|
push: true
|
||||||
tags: |
|
tags: |
|
||||||
ghcr.io/siemens/kas/kas-isar
|
ghcr.io/siemens/kas/kas-isar
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
FROM debian:buster-slim
|
FROM debian:buster-slim
|
||||||
|
|
||||||
|
ARG TARGETPLATFORM
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
@ -10,14 +11,17 @@ RUN apt-get update && \
|
|||||||
ENV LANG=en_US.utf8
|
ENV LANG=en_US.utf8
|
||||||
|
|
||||||
RUN apt-get install --no-install-recommends -y \
|
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 \
|
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 \
|
xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
|
||||||
pylint3 xterm \
|
pylint3 xterm \
|
||||||
python3-setuptools python3-wheel python3-yaml \
|
python3-setuptools python3-wheel python3-yaml \
|
||||||
gosu lsb-release file vim less procps tree tar bzip2 zstd bc tmux libncurses-dev \
|
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 && \
|
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 && \
|
apt-get clean && \
|
||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user