diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..d17e071 --- /dev/null +++ b/Containerfile @@ -0,0 +1,38 @@ +FROM docker.io/library/alpine AS build + +RUN --mount=type=cache,target=/var/cache \ + apk add \ + cargo \ + protoc \ + rust \ + && : + +COPY src /src/src + +COPY Cargo.* /src/ + +WORKDIR /src + +RUN cargo build --release + + +FROM docker.io/library/alpine + +RUN --mount=type=cache,target=/var/cache \ + apk add \ + libgcc \ + && : + +COPY --from=build /src/target/release/luci /usr/local/bin/luci + +COPY dch-root-ca.crt /etc/ssl/certs + +COPY nsenter.sh /usr/local/libexec/nsenter.sh + +RUN for cmd in \ + systemctl \ + ; do \ + ln -s /usr/local/libexec/nsenter.sh /usr/local/bin/${cmd} \ + ; done + +ENTRYPOINT ["luci"] diff --git a/nsenter.sh b/nsenter.sh new file mode 100755 index 0000000..5f52009 --- /dev/null +++ b/nsenter.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exec nsenter -t 1 -m -u -i -n -p "${0##*/}" "$@"