From 9d77688dac555bc880dd8e67366331ea50e3aceb Mon Sep 17 00:00:00 2001 From: dm9pZCAq Date: Wed, 29 Dec 2021 21:08:06 +0200 Subject: [PATCH] initial --- Dockerfile | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..81f1fb4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,50 @@ +FROM docker.io/alpine as builder + +ENV TMPDIR "/tmp/build" + +RUN mkdir -v -- "${TMPDIR}" \ + && apk add --no-cache --virtual __build gettext apache-ant openjdk8 + +RUN cd "${TMPDIR}" \ + && for repo in i2p.plugins.i2psnark-rpc i2p.i2p; do \ + who="i2p/${repo}" \ + && latest="$( \ + wget -O- "https://api.github.com/repos/${who}/tags" \ + | sed -n '/"name":/{s/.*"\([^"]\+\)".*/\1/p;q}')" \ + && archive="${repo##*.}.tar.gz" \ + && wget -O "${archive}" \ + "https://github.com/${who}/archive/${latest}.tar.gz" \ + && tar vxf "${archive}" && rm -vr "${archive}" \ + && mv -v -- "${repo}"-* "${repo}" \ + ; done + +RUN i2p="${TMPDIR}/i2p.i2p" && rpc="${TMPDIR}/i2p.plugins.i2psnark-rpc" \ + && cd "${i2p}" && ant buildI2PSnark buildCore i2psnark \ + && cd "${rpc}" && ant war \ + && mv -v -- \ + "${i2p}/apps/i2psnark/java/i2psnark-standalone.zip" \ + "${rpc}/src/build/transmission.war.jar" \ + / + +RUN apk del __build && rm -rf -- "${TMPDIR}" + +FROM docker.io/alpine + +RUN mkdir -v -- /i2psnark && apk add --no-cache openjdk8 + +WORKDIR /i2psnark + +COPY --from=builder /i2psnark-standalone.zip /transmission.war.jar /i2psnark/ +RUN unzip -d / ./i2psnark-standalone.zip \ + && mv -v -- ./transmission.war.jar ./webapps/transmission.war \ + && rm -v -- ./i2psnark-standalone.zip \ + && mkdir -v -- ./i2psnark \ + && printf '%s\n' \ + '#!/bin/sh --' \ + 'set -uex' \ + 'adduser -u "${USER_ID:?}" -s /bin/sh -h /i2psnark -D i2psnark' \ + 'chown i2psnark -R -- /i2psnark' \ + 'exec su i2psnark - -c "java -jar i2psnark.jar"' \ + | install -Dm755 /proc/self/fd/0 /i2psnark/entry.sh + +CMD ["/i2psnark/entry.sh"]