2023-03-23 11:15:06 +00:00
|
|
|
# syntax=docker/dockerfile:experimental
|
2023-03-23 10:54:32 +00:00
|
|
|
FROM rust as rust
|
2023-03-23 10:39:11 +00:00
|
|
|
RUN mkdir -p /tmp/work
|
|
|
|
WORKDIR /tmp/work
|
2023-04-17 23:53:52 +00:00
|
|
|
ARG NETAVARK_VERSION=v1.6.0
|
2023-03-23 11:07:14 +00:00
|
|
|
RUN apt-get update && apt-get install -y \
|
2023-03-23 11:35:01 +00:00
|
|
|
bc \
|
|
|
|
binutils-aarch64-linux-gnu \
|
|
|
|
build-essential \
|
|
|
|
flex \
|
|
|
|
gcc-aarch64-linux-gnu \
|
|
|
|
libc6-arm64-cross \
|
|
|
|
libc6-dev-arm64-cross \
|
|
|
|
libssl-dev \
|
|
|
|
pkg-config \
|
2023-03-23 11:11:09 +00:00
|
|
|
protobuf-compiler
|
2023-03-23 11:49:05 +00:00
|
|
|
|
2023-03-23 13:20:16 +00:00
|
|
|
RUN git clone https://github.com/containers/netavark/ && mkdir -p /tmp/work/netavark/.cargo && mkdir -p /tmp/work/netavark/targets && mkdir -p /tmp/work/netavark/bin
|
2023-03-23 10:39:11 +00:00
|
|
|
WORKDIR /tmp/work/netavark
|
2023-03-23 11:49:05 +00:00
|
|
|
COPY config.toml ./.cargo/config.toml
|
2023-03-23 13:46:18 +00:00
|
|
|
COPY ./net.Makefile.patch /tmp
|
2023-03-23 13:49:12 +00:00
|
|
|
RUN git checkout ${NETAVARK_VERSION} && rustup target add aarch64-unknown-linux-gnu && patch Makefile /tmp/net.Makefile.patch
|
2023-03-23 13:48:19 +00:00
|
|
|
RUN make build
|
2023-03-23 13:15:16 +00:00
|
|
|
|
2022-11-27 01:37:19 +00:00
|
|
|
FROM golang:1.18.3-stretch
|
2021-08-26 14:11:38 +00:00
|
|
|
|
2023-03-07 14:50:33 +00:00
|
|
|
# Currenrtly supported versions: UDM-Base UDM-Pro-SE
|
2023-03-07 14:49:28 +00:00
|
|
|
ARG UDM_PLATFORM=UDM-Base
|
2021-08-26 14:11:38 +00:00
|
|
|
|
2023-04-17 23:30:13 +00:00
|
|
|
ARG PODMAN_VERSION=v4.5.0
|
2022-11-27 01:29:04 +00:00
|
|
|
ARG RUNC_VERSION=v1.1.4
|
2023-03-06 16:48:21 +00:00
|
|
|
ARG CONMON_VERSION=v2.1.7
|
2023-04-17 23:30:13 +00:00
|
|
|
ARG CRUN_VERSION=1.8.4
|
2022-02-24 08:27:37 +00:00
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
2023-03-23 10:58:19 +00:00
|
|
|
|
|
|
|
RUN mkdir -p /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/usr/bin \
|
|
|
|
&& mkdir -p /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/usr/libexec/podman/ \
|
|
|
|
&& mkdir -p /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/usr/share/containers/ \
|
|
|
|
&& mkdir -p /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/etc/containers/
|
|
|
|
|
|
|
|
COPY --from=rust /tmp/work/netavark/bin/* /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/usr/libexec/podman
|
2022-02-24 08:27:37 +00:00
|
|
|
# Install dependencies
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
|
|
bc \
|
|
|
|
binutils-aarch64-linux-gnu \
|
|
|
|
bison \
|
|
|
|
build-essential \
|
|
|
|
flex \
|
|
|
|
gcc-aarch64-linux-gnu \
|
|
|
|
git \
|
|
|
|
libc6-arm64-cross \
|
|
|
|
libc6-dev-arm64-cross \
|
|
|
|
libncurses5-dev \
|
|
|
|
libssl-dev \
|
|
|
|
pkg-config \
|
|
|
|
systemd \
|
|
|
|
zip \
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN dpkg --add-architecture arm64
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
|
|
gperf:arm64 \
|
|
|
|
libglib2.0-dev:arm64 \
|
|
|
|
libseccomp-dev:arm64 \
|
|
|
|
libsystemd-dev:arm64 \
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
2021-08-26 14:11:38 +00:00
|
|
|
ENV GOOS=linux
|
2022-02-06 20:29:45 +00:00
|
|
|
|
2023-04-17 23:30:13 +00:00
|
|
|
RUN curl -L https://github.com/containers/crun/releases/download/${CRUN_VERSION}/crun-${CRUN_VERSION}-linux-arm64 -o /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/usr/bin/crun
|
2022-02-24 08:27:37 +00:00
|
|
|
COPY ./podman.Makefile.${UDM_PLATFORM}.patch /tmp
|
|
|
|
RUN mkdir -p /build \
|
|
|
|
&& mkdir -p /tmp/release
|
2021-08-26 14:11:38 +00:00
|
|
|
WORKDIR /build
|
2022-02-24 08:27:37 +00:00
|
|
|
RUN git clone https://github.com/containers/podman.git \
|
|
|
|
&& git clone https://github.com/opencontainers/runc.git \
|
|
|
|
&& git clone https://github.com/containers/conmon.git
|
2022-02-06 20:29:45 +00:00
|
|
|
WORKDIR /build/runc
|
|
|
|
|
2022-02-24 08:27:37 +00:00
|
|
|
RUN git checkout ${RUNC_VERSION} \
|
|
|
|
&& ./script/release_build.sh -a arm64 -r /tmp/release
|
2022-02-06 20:29:45 +00:00
|
|
|
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
|
|
|
|
ENV GOARCH=arm64
|
|
|
|
ENV CC='aarch64-linux-gnu-gcc'
|
2021-08-26 14:11:38 +00:00
|
|
|
WORKDIR /build/podman
|
2022-02-24 08:27:37 +00:00
|
|
|
RUN git checkout ${PODMAN_VERSION} \
|
|
|
|
&& patch Makefile /tmp/podman.Makefile.${UDM_PLATFORM}.patch \
|
|
|
|
&& make vendor local-cross \
|
|
|
|
&& cp ./bin/podman.cross.linux.arm64 /tmp/release/podman-${PODMAN_VERSION} \
|
|
|
|
&& chmod +x /tmp/release/podman-${PODMAN_VERSION}
|
2021-08-26 14:11:38 +00:00
|
|
|
|
|
|
|
WORKDIR /build/conmon
|
2022-02-24 08:27:37 +00:00
|
|
|
RUN git checkout ${CONMON_VERSION} \
|
|
|
|
&& make vendor bin/conmon \
|
|
|
|
&& cp bin/conmon /tmp/release/conmon-${CONMON_VERSION} \
|
|
|
|
&& chmod +x /tmp/release/conmon-$CONMON_VERSION
|
2021-08-26 14:11:38 +00:00
|
|
|
|
2023-03-23 10:22:48 +00:00
|
|
|
|
2023-03-07 14:39:00 +00:00
|
|
|
COPY seccomp.json /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/usr/share/containers/
|
2023-03-07 14:57:27 +00:00
|
|
|
COPY containers.conf /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/etc/containers/
|
2023-03-23 10:23:20 +00:00
|
|
|
COPY storage.conf /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/etc/containers/
|
2023-03-07 14:39:00 +00:00
|
|
|
COPY registries.conf /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/etc/containers/
|
|
|
|
COPY policy.json /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/etc/containers/
|
|
|
|
RUN cp /tmp/release/podman-${PODMAN_VERSION} /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/usr/bin/podman \
|
2023-03-08 09:52:09 +00:00
|
|
|
&& cp /tmp/release/runc.arm64 /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/usr/bin/runc \
|
2023-03-07 14:39:00 +00:00
|
|
|
&& cp /tmp/release/conmon-${CONMON_VERSION} /tmp/install/podman-${PODMAN_VERSION}-${UDM_PLATFORM}/usr/libexec/podman/conmon
|
2023-03-23 10:39:11 +00:00
|
|
|
|
2021-08-26 14:11:38 +00:00
|
|
|
WORKDIR /tmp/install
|