2018-10-29 16:32:11 +01:00
|
|
|
ARG ALPINE_VERSION=3.8
|
|
|
|
|
|
|
|
|
|
FROM alpine:${ALPINE_VERSION}
|
|
|
|
|
ARG BUILD_DATE
|
|
|
|
|
ARG VCS_REF
|
|
|
|
|
LABEL org.label-schema.schema-version="1.0.0-rc1" \
|
|
|
|
|
maintainer="quentin.mcgaw@gmail.com" \
|
|
|
|
|
org.label-schema.build-date=$BUILD_DATE \
|
|
|
|
|
org.label-schema.vcs-ref=$VCS_REF \
|
|
|
|
|
org.label-schema.vcs-url="https://github.com/qdm12/private-internet-access-docker" \
|
|
|
|
|
org.label-schema.url="https://github.com/qdm12/private-internet-access-docker" \
|
|
|
|
|
org.label-schema.vcs-description="VPN client to tunnel to private internet access servers using OpenVPN, IPtables, DNS over TLS and Alpine Linux" \
|
|
|
|
|
org.label-schema.vcs-usage="https://github.com/qdm12/private-internet-access-docker/blob/master/README.md#setup" \
|
|
|
|
|
org.label-schema.docker.cmd="docker run -d -v ./auth.conf:/auth.conf:ro --cap-add=NET_ADMIN --device=/dev/net/tun qmcgaw/private-internet-access" \
|
|
|
|
|
org.label-schema.docker.cmd.devel="docker run -it --rm -v ./auth.conf:/auth.conf:ro --cap-add=NET_ADMIN --device=/dev/net/tun qmcgaw/private-internet-access" \
|
2018-11-06 14:55:11 +01:00
|
|
|
org.label-schema.docker.params="REGION=PIA region,PROTOCOL=udp or tcp,ENCRYPTION=strong or normal,BLOCK_MALICIOUS=on or off" \
|
2018-10-29 16:32:11 +01:00
|
|
|
org.label-schema.version="" \
|
|
|
|
|
image-size="17.1MB" \
|
|
|
|
|
ram-usage="13MB to 80MB" \
|
|
|
|
|
cpu-usage="Low"
|
2018-09-21 11:28:23 +02:00
|
|
|
ENV ENCRYPTION=strong \
|
|
|
|
|
PROTOCOL=tcp \
|
2018-10-28 14:08:14 +01:00
|
|
|
REGION="CA Montreal" \
|
2018-10-04 22:24:43 +02:00
|
|
|
BLOCK_MALICIOUS=off
|
2018-10-28 14:08:14 +01:00
|
|
|
HEALTHCHECK --interval=5m --timeout=15s --start-period=10s --retries=2 \
|
2018-11-06 14:55:11 +01:00
|
|
|
CMD [ "$(wget -qqO- 'https://duckduckgo.com/?q=what+is+my+ip' | grep -ow 'Your IP address is [0-9.]*[0-9]' | grep -ow '[0-9][0-9.]*')" != "$INITIAL_IP" ] || exit 1
|
2018-10-29 16:32:11 +01:00
|
|
|
RUN V_ALPINE="v$(cat /etc/alpine-release | grep -oE '[0-9]+\.[0-9]+')" && \
|
|
|
|
|
echo https://dl-3.alpinelinux.org/alpine/$V_ALPINE/main > /etc/apk/repositories && \
|
|
|
|
|
apk add -q --progress --no-cache --update openvpn wget ca-certificates iptables unbound unzip && \
|
2018-04-15 14:15:58 -04:00
|
|
|
wget -q https://www.privateinternetaccess.com/openvpn/openvpn.zip \
|
|
|
|
|
https://www.privateinternetaccess.com/openvpn/openvpn-strong.zip \
|
|
|
|
|
https://www.privateinternetaccess.com/openvpn/openvpn-tcp.zip \
|
|
|
|
|
https://www.privateinternetaccess.com/openvpn/openvpn-strong-tcp.zip && \
|
|
|
|
|
unzip -q openvpn.zip -d /openvpn-udp-normal && \
|
|
|
|
|
unzip -q openvpn-strong.zip -d /openvpn-udp-strong && \
|
|
|
|
|
unzip -q openvpn-tcp.zip -d /openvpn-tcp-normal && \
|
|
|
|
|
unzip -q openvpn-strong-tcp.zip -d /openvpn-tcp-strong && \
|
2018-10-29 16:32:11 +01:00
|
|
|
apk del -q --progress --purge unzip && \
|
2018-09-21 11:39:00 +02:00
|
|
|
rm -rf /*.zip /var/cache/apk/* /etc/unbound/unbound.conf && \
|
2018-10-05 12:43:16 +02:00
|
|
|
adduser -S nonrootuser
|
2018-10-29 16:32:11 +01:00
|
|
|
COPY --from=qmcgaw/dns-trustanchor /named.root /etc/unbound/root.hints
|
|
|
|
|
COPY --from=qmcgaw/dns-trustanchor /root.key /etc/unbound/root.key
|
2018-10-28 14:08:14 +01:00
|
|
|
COPY --from=qmcgaw/malicious-hostnames /malicious-hostnames.bz2 /etc/unbound/malicious-hostnames.bz2
|
|
|
|
|
COPY --from=qmcgaw/malicious-ips /malicious-ips.bz2 /etc/unbound/malicious-ips.bz2
|
2018-10-29 16:32:11 +01:00
|
|
|
COPY unbound.conf /etc/unbound/unbound.conf
|
2018-10-28 14:08:14 +01:00
|
|
|
COPY entrypoint.sh /entrypoint.sh
|
2018-10-29 16:32:11 +01:00
|
|
|
RUN chown unbound /etc/unbound/root.key && \
|
|
|
|
|
chmod 700 /entrypoint.sh
|
2018-10-04 22:24:43 +02:00
|
|
|
ENTRYPOINT /entrypoint.sh
|