51 lines
1.5 KiB
Docker
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"]
|