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