diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..f87b1eb --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,30 @@ +FROM alpine:edge + +COPY ./ /tmp + +WORKDIR /tmp + +RUN apk update \ + && apk add --no-cache ca-certificates \ + libressl \ + llvm-libunwind \ + && apk add --no-cache --virtual .build-rust \ + rust \ + cargo \ + libressl-dev \ + \ + && cargo build --release \ + && strip target/release/iptoasn-webservice \ + && mv target/release/iptoasn-webservice /usr/bin/iptoasn-webservice \ + && mv docker/iptoasn-entrypoint.sh /iptoasn-entrypoint.sh \ + && chmod +x /iptoasn-entrypoint.sh \ + \ + && rm -rf ~/.cargo \ + /var/cache/apk/* \ + /tmp/* \ + && apk del .build-rust + +RUN adduser -D app +USER app + +ENTRYPOINT ["/iptoasn-entrypoint.sh"] diff --git a/docker/iptoasn-entrypoint.sh b/docker/iptoasn-entrypoint.sh new file mode 100644 index 0000000..6b22d78 --- /dev/null +++ b/docker/iptoasn-entrypoint.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +DEFAULT_PORT='53661' +DEFAULT_DBURL='https://iptoasn.com/data/ip2asn-combined.tsv.gz' + +if [ $IPTOASN_PORT ] || [ $IPTOASN_DBURL]; then + if ! [ $IPTOASN_PORT ]; then + IPTOASN_PORT=$DEFAULT_PORT + fi + + if ! [ $IPTOASN_DBURL ]; then + IPTOASN_DBURL=$DEFAULT_DBURL + fi + + exec /usr/bin/iptoasn-webservice --listen 0.0.0.0:"$IPTOASN_PORT" --dburl "$IPTOASN_DBURL" +else + exec /usr/bin/iptoasn-webservice $@ +fi