fixing runc

Signed-off-by: John Dorman <dorman@overlooked.us>
This commit is contained in:
John Dorman 2022-02-06 12:29:45 -08:00
parent ccfb9b7018
commit d31df05055
No known key found for this signature in database
GPG Key ID: B96AE93DF3DEF9BA
5 changed files with 33 additions and 44 deletions

View File

@ -13,7 +13,7 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: self-hosted
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2

View File

@ -24,7 +24,7 @@ minecraft_1 | [init] Starting the Minecraft server...
## Customization ## Customization
* You can disable exposing the docker daemon by commenting out the podman service in [01-podman-update.sh](01-podman-update.sh) * You can disable exposing the docker daemon by commenting out the podman service in [01-podman-update.sh](bin.OLD.DONT USE/01-podman-update.sh)
## Podman Build Process ## Podman Build Process
* This is a custom-built binary by me. It was cross compiled on Ubuntu-20.04 in WSL2. * This is a custom-built binary by me. It was cross compiled on Ubuntu-20.04 in WSL2.
@ -39,13 +39,10 @@ sudo apt-get install libc6-arm64-cross libc6-dev-arm64-cross binutils-aarch64-li
```sh ```sh
make CC="aarch64-linux-gnu-gcc" local-cross make CC="aarch64-linux-gnu-gcc" local-cross
``` ```
## Steps ## Step
1. Copy [01-podman-update.sh](01-podman-update.sh) to /mnt/data/on_boot.d. Make sure anything needed to enable internet connectivity (wpa-supplicant, eap-proxy) runs before it 1. Goto the Actions tab and get the latest Podman build and unzip it in your the root of your filesystem, something better is coming but for now that will have to do.
1. Comment out the Podman service if you do not wish to expose the Docker/Podman Daemon You can write a script to automate it, i suggest lots of testing though!
1. Copy [05-install-cni-plugins.sh](../cni-plugins/05-install-cni-plugins.sh) to /mnt/data/on_boot.d
1. Recommended: Copy [05-container-common.sh](../container-common/on_boot.d/05-container-common.sh) to /mnt/data/on_boot.d
1. Execute /mnt/data/on_boot.d/[01-podman-update.sh](01-podman-update.sh) and /mnt/data/on_boot.d/[05-install-cni-plugins.sh](../cni-plugins/05-install-cni-plugins.sh)
1. Verify Podman version 1. Verify Podman version
```sh ```sh
$ podman version $ podman version

View File

@ -3,25 +3,28 @@ FROM golang:1.16-stretch
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y zip git pkg-config libc6-arm64-cross libc6-dev-arm64-cross binutils-aarch64-linux-gnu libncurses5-dev build-essential bison flex libssl-dev bc gcc-aarch64-linux-gnu RUN apt-get update && apt-get install -y zip git pkg-config libc6-arm64-cross libc6-dev-arm64-cross binutils-aarch64-linux-gnu libncurses5-dev build-essential bison flex libssl-dev bc gcc-aarch64-linux-gnu
RUN dpkg --add-architecture arm64 && apt-get update && apt-get install -y libseccomp-dev:arm64 && apt-get install -y libglib2.0-dev:arm64 RUN dpkg --add-architecture arm64 && apt-get update && apt-get install -y libseccomp-dev:arm64 libglib2.0-dev:arm64 gperf:arm64
ARG PODMAN_VERSION=v3.4.2 ARG PODMAN_VERSION=v3.4.4
ARG RUNC_VERSION=v1.0.2 ARG RUNC_VERSION=v1.1.0
ARG CONMON_VERSION=v2.0.30 ARG CONMON_VERSION=v2.1.0
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
ENV GOOS=linux ENV GOOS=linux
ENV GOARCH=arm64
ENV CC='aarch64-linux-gnu-gcc'
COPY ./podman.Makefile.patch /tmp COPY ./podman.Makefile.patch /tmp
COPY ./runc.Makefile.patch /tmp COPY ./runc.Makefile.patch /tmp
RUN mkdir -p /build && mkdir -p /tmp/release RUN mkdir -p /build && mkdir -p /tmp/release
WORKDIR /build WORKDIR /build
RUN git clone https://github.com/containers/podman && git clone https://github.com/opencontainers/runc && git clone https://github.com/containers/conmon RUN git clone https://github.com/containers/podman && git clone https://github.com/opencontainers/runc && git clone https://github.com/containers/conmon
WORKDIR /build/runc
RUN git checkout $RUNC_VERSION && ./script/release_build.sh -a arm64 -r /tmp/release
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
ENV GOARCH=arm64
ENV CC='aarch64-linux-gnu-gcc'
WORKDIR /build/podman WORKDIR /build/podman
RUN git checkout $PODMAN_VERSION && patch Makefile /tmp/podman.Makefile.patch && make vendor local-cross && \ RUN git checkout $PODMAN_VERSION && patch Makefile /tmp/podman.Makefile.patch && make vendor local-cross && \
cp ./bin/podman.cross.linux.arm64 /tmp/release/podman-$PODMAN_VERSION && chmod +x /tmp/release/podman-$PODMAN_VERSION cp ./bin/podman.cross.linux.arm64 /tmp/release/podman-$PODMAN_VERSION && chmod +x /tmp/release/podman-$PODMAN_VERSION
WORKDIR /build/runc
RUN git checkout $RUNC_VERSION && patch Makefile /tmp/runc.Makefile.patch && make vendor localcross && \
cp ./runc-arm64 /tmp/release/runc-$RUNC_VERSION && chmod +x /tmp/release/runc-$RUNC_VERSION
WORKDIR /build/conmon WORKDIR /build/conmon
RUN git checkout $CONMON_VERSION && make vendor bin/conmon && cp bin/conmon /tmp/release/conmon-$CONMON_VERSION && chmod +x /tmp/release/conmon-$CONMON_VERSION RUN git checkout $CONMON_VERSION && make vendor bin/conmon && cp bin/conmon /tmp/release/conmon-$CONMON_VERSION && chmod +x /tmp/release/conmon-$CONMON_VERSION
@ -29,7 +32,8 @@ RUN git checkout $CONMON_VERSION && make vendor bin/conmon && cp bin/conmon /tmp
RUN mkdir -p /tmp/install/usr/bin && mkdir -p /tmp/install/usr/libexec/podman/ && mkdir -p /tmp/install/usr/share/containers/ && mkdir -p /tmp/install/etc/containers/ RUN mkdir -p /tmp/install/usr/bin && mkdir -p /tmp/install/usr/libexec/podman/ && mkdir -p /tmp/install/usr/share/containers/ && mkdir -p /tmp/install/etc/containers/
COPY seccomp.json /tmp/install/usr/share/containers/ COPY seccomp.json /tmp/install/usr/share/containers/
COPY containers.conf /tmp/install/etc/containers/ COPY containers.conf /tmp/install/etc/containers/
RUN cp /tmp/release/podman-$PODMAN_VERSION /tmp/install/usr/bin/podman && cp /tmp/release/runc-$RUNC_VERSION /tmp/install/usr/bin/runc && cp /tmp/release/conmon-$CONMON_VERSION /tmp/install/usr/libexec/podman/conmon
RUN cp /tmp/release/podman-$PODMAN_VERSION /tmp/install/usr/bin/podman && cp /tmp/release/runc.arm64 /tmp/install/usr/bin/runc && cp /tmp/release/conmon-$CONMON_VERSION /tmp/install/usr/libexec/podman/conmon
WORKDIR /tmp/install WORKDIR /tmp/install
RUN zip -r /tmp/release/podman-install.zip * RUN zip -r /tmp/release/podman-install.zip *

View File

@ -8,21 +8,23 @@ RUN dpkg --add-architecture arm64 && apt-get update && apt-get install -y libsec
ARG PODMAN_VERSION=v3.4.4 ARG PODMAN_VERSION=v3.4.4
ARG RUNC_VERSION=v1.1.0 ARG RUNC_VERSION=v1.1.0
ARG CONMON_VERSION=v2.1.0 ARG CONMON_VERSION=v2.1.0
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
ENV GOOS=linux ENV GOOS=linux
ENV GOARCH=arm64
ENV CC='aarch64-linux-gnu-gcc'
COPY ./podman.Makefile.se.patch /tmp COPY ./podman.Makefile.se.patch /tmp
COPY ./runc.Makefile.patch /tmp
RUN mkdir -p /build && mkdir -p /tmp/release RUN mkdir -p /build && mkdir -p /tmp/release
WORKDIR /build WORKDIR /build
RUN git clone https://github.com/containers/podman && git clone https://github.com/opencontainers/runc && git clone https://github.com/containers/conmon RUN git clone https://github.com/containers/podman && git clone https://github.com/opencontainers/runc && git clone https://github.com/containers/conmon
WORKDIR /build/podman
RUN git checkout $PODMAN_VERSION && patch Makefile /tmp/podman.Makefile.se.patch && make vendor local-cross && \
cp ./bin/podman.cross.linux.arm64 /tmp/release/podman-$PODMAN_VERSION && chmod +x /tmp/release/podman-$PODMAN_VERSION
WORKDIR /build/runc WORKDIR /build/runc
RUN git checkout $RUNC_VERSION && patch Makefile /tmp/runc.Makefile.patch && make vendor localcross && \
cp ./runc-arm64 /tmp/release/runc-$RUNC_VERSION && chmod +x /tmp/release/runc-$RUNC_VERSION RUN git checkout $RUNC_VERSION && ./script/release_build.sh -a arm64 -r /tmp/release
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/
ENV GOARCH=arm64
ENV CC='aarch64-linux-gnu-gcc'
WORKDIR /build/podman
RUN git checkout $PODMAN_VERSION && patch Makefile /tmp/podman.Makefile.patch && make vendor local-cross && \
cp ./bin/podman.cross.linux.arm64 /tmp/release/podman-$PODMAN_VERSION && chmod +x /tmp/release/podman-$PODMAN_VERSION
WORKDIR /build/conmon WORKDIR /build/conmon
RUN git checkout $CONMON_VERSION && make vendor bin/conmon && cp bin/conmon /tmp/release/conmon-$CONMON_VERSION && chmod +x /tmp/release/conmon-$CONMON_VERSION RUN git checkout $CONMON_VERSION && make vendor bin/conmon && cp bin/conmon /tmp/release/conmon-$CONMON_VERSION && chmod +x /tmp/release/conmon-$CONMON_VERSION
@ -30,7 +32,8 @@ RUN git checkout $CONMON_VERSION && make vendor bin/conmon && cp bin/conmon /tmp
RUN mkdir -p /tmp/install/usr/bin && mkdir -p /tmp/install/usr/libexec/podman/ && mkdir -p /tmp/install/usr/share/containers/ && mkdir -p /tmp/install/etc/containers/ RUN mkdir -p /tmp/install/usr/bin && mkdir -p /tmp/install/usr/libexec/podman/ && mkdir -p /tmp/install/usr/share/containers/ && mkdir -p /tmp/install/etc/containers/
COPY seccomp.json /tmp/install/usr/share/containers/ COPY seccomp.json /tmp/install/usr/share/containers/
COPY containers.conf /tmp/install/etc/containers/ COPY containers.conf /tmp/install/etc/containers/
RUN cp /tmp/release/podman-$PODMAN_VERSION /tmp/install/usr/bin/podman && cp /tmp/release/runc-$RUNC_VERSION /tmp/install/usr/bin/runc && cp /tmp/release/conmon-$CONMON_VERSION /tmp/install/usr/libexec/podman/conmon RUN cp /tmp/release/podman-$PODMAN_VERSION /tmp/install/usr/bin/podman && cp /tmp/release/runc.arm64 /tmp/install/usr/bin/runc && cp /tmp/release/conmon-$CONMON_VERSION /tmp/install/usr/libexec/podman/conmon
WORKDIR /tmp/install WORKDIR /tmp/install
RUN zip -r /tmp/release/podman-install.zip * RUN zip -r /tmp/release/podman-install.zip *

View File

@ -1,15 +0,0 @@
diff --git a/Makefile b/Makefile
index 4c73e6ab..72a49c5d 100644
--- a/Makefile
+++ b/Makefile
@@ -146,10 +146,7 @@ cross: runcimage
$(RUNC_IMAGE) make localcross
localcross:
- CGO_ENABLED=1 GOARCH=arm GOARM=6 CC=arm-linux-gnueabi-gcc $(GO_BUILD) -o runc-armel .
- CGO_ENABLED=1 GOARCH=arm GOARM=7 CC=arm-linux-gnueabihf-gcc $(GO_BUILD) -o runc-armhf .
CGO_ENABLED=1 GOARCH=arm64 CC=aarch64-linux-gnu-gcc $(GO_BUILD) -o runc-arm64 .
- CGO_ENABLED=1 GOARCH=ppc64le CC=powerpc64le-linux-gnu-gcc $(GO_BUILD) -o runc-ppc64le .
.PHONY: runc all recvtty static release dbuild lint man runcimage \
test localtest unittest localunittest integration localintegration \