docker-i2psnark/Dockerfile

51 lines
1.5 KiB
Docker

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"]