mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-10 21:53:57 +08:00
make release: add cross-build
This implements cross-build for "make release", moving the build into a container. This way we can support arm, arm64, ppc, and whatnot. * script/seccomp.sh: separate out of script/release.sh, amend to support cross-compile and save needed environment variables to a file. * Dockerfile: add installing libseccomp from source, as this is needed for release builds. * script/release.sh: amend to support more architectures in addition to the native build. Additional arches can be added by specifying "-a <arch>" argument (can be specified multiple times), or "make RELEASE_ARGS="-a arm64" release" if called via make. All supported architectures can be enabled via "make releaseall". * Makefile: move "release" target to "localrelease", add "release" and "releaseall" targets to build via the Dockerfile. This is done because most distros (including Fedora and openSUSE) lack cross-glibc, which is needed to cross-compile libseccomp. * Makefile: remove 'cross' and 'localcross' targets, as this is now done by the release script. * .github/workflows/validate.yum: amend the release CI job to cross-build for supported architectures, remove cross job. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
+8
-6
@@ -1,5 +1,6 @@
|
||||
ARG GO_VERSION=1.17
|
||||
ARG BATS_VERSION=v1.3.0
|
||||
ARG LIBSECCOMP_VERSION=2.5.1
|
||||
|
||||
FROM golang:${GO_VERSION}-bullseye
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
@@ -21,15 +22,10 @@ RUN echo 'deb https://download.opensuse.org/repositories/devel:/tools:/criu/Debi
|
||||
curl \
|
||||
gawk \
|
||||
gcc \
|
||||
gperf \
|
||||
iptables \
|
||||
jq \
|
||||
kmod \
|
||||
libseccomp-dev \
|
||||
libseccomp-dev:arm64 \
|
||||
libseccomp-dev:armel \
|
||||
libseccomp-dev:armhf \
|
||||
libseccomp-dev:ppc64el \
|
||||
libseccomp2 \
|
||||
pkg-config \
|
||||
python3-minimal \
|
||||
sudo \
|
||||
@@ -52,4 +48,10 @@ RUN cd /tmp \
|
||||
&& ./install.sh /usr/local \
|
||||
&& rm -rf /tmp/bats-core
|
||||
|
||||
# install libseccomp
|
||||
ARG LIBSECCOMP_VERSION
|
||||
COPY script/* /tmp/script/
|
||||
RUN mkdir -p /usr/local/src/libseccomp \
|
||||
&& /tmp/script/seccomp.sh "$LIBSECCOMP_VERSION" /usr/local/src/libseccomp /usr/local/src/libseccomp/.env-file arm64 armel armhf ppc64le
|
||||
|
||||
WORKDIR /go/src/github.com/opencontainers/runc
|
||||
|
||||
Reference in New Issue
Block a user