diff --git a/Dockerfile b/Dockerfile index 46fbeb0..9fc639b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,38 +1,48 @@ FROM ubuntu:22.04 + LABEL maintainer="Jake Jarvis " \ repository="https://github.com/jakejarvis/tor-docker" \ # https://docs.github.com/en/free-pro-team@latest/packages/managing-container-images-with-github-container-registry/connecting-a-repository-to-a-container-image#connecting-a-repository-to-a-container-image-on-the-command-line org.opencontainers.image.source="https://github.com/jakejarvis/tor-docker" +ARG TARGETPLATFORM ARG DEBIAN_FRONTEND=noninteractive +# https://github.com/krallin/tini/releases +ARG TINI_VERSION=0.19.0 -RUN apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y \ +# All the things! +RUN apt-get update && \ + apt-get install --no-install-recommends --no-install-suggests -y \ ca-certificates \ apt-transport-https \ lsb-release \ curl \ - gnupg \ - # Add torproject.org repository for stable Tor - && curl -fsSL https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor -o /usr/share/keyrings/tor-archive-keyring.gpg \ - && echo "deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main \ -deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/tor.list >/dev/null \ - # Install Tor with GeoIP - && apt-get update \ - && apt-get install --no-install-recommends --no-install-suggests -y \ + gnupg && \ + # Add torproject.org repository for stable Tor + curl -fsSL https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor -o /usr/share/keyrings/tor-archive-keyring.gpg && \ + echo "deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/tor.list && \ + echo "deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/tor.list && \ + # Install Tor with GeoIP + apt-get update && \ + apt-get install --no-install-recommends --no-install-suggests -y \ tor \ tor-geoipdb \ - deb.torproject.org-keyring \ obfs4proxy \ - iputils-ping \ - # Tidy up - && apt-get purge --auto-remove -y \ + iputils-ping && \ + # Install tini: https://github.com/krallin/tini + if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then \ + curl -s -L https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-arm64 -o /usr/local/bin/tini; \ + else \ + curl -s -L https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini -o /usr/local/bin/tini; \ + fi && \ + chmod +x /usr/local/bin/tini && \ + # Tidy up + apt-get purge --auto-remove -y \ apt-transport-https \ lsb-release \ - curl \ - gnupg \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* + gnupg && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* # Copy a simple default config COPY torrc.default /etc/tor/torrc @@ -45,11 +55,11 @@ RUN chmod ugo+rx /usr/local/bin/docker-entrypoint VOLUME /var/lib/tor # Make sure files are owned by the tor user -RUN chown -R debian-tor /etc/tor \ - && chown -R debian-tor /var/lib/tor +RUN chown -R debian-tor /etc/tor && \ + chown -R debian-tor /var/lib/tor # Run tor as a non-root user USER debian-tor -ENTRYPOINT ["docker-entrypoint"] +ENTRYPOINT ["tini", "--", "docker-entrypoint"] CMD ["tor", "-f", "/etc/tor/torrc"]