mirror of
https://github.com/jakejarvis/docker-tor.git
synced 2025-04-28 03:20:28 -04:00
fix permissions
This commit is contained in:
parent
604831c84f
commit
9db888e8a8
38
Dockerfile
38
Dockerfile
@ -1,14 +1,11 @@
|
|||||||
FROM ubuntu:22.04
|
FROM ubuntu:22.04
|
||||||
|
|
||||||
LABEL maintainer="Jake Jarvis <jake@jarv.is>" \
|
LABEL maintainer="Jake Jarvis <jake@jarv.is>" \
|
||||||
repository="https://github.com/jakejarvis/tor-docker" \
|
repository="https://github.com/jakejarvis/docker-tor" \
|
||||||
# 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
|
# 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"
|
org.opencontainers.image.source="https://github.com/jakejarvis/docker-tor"
|
||||||
|
|
||||||
ARG TARGETPLATFORM
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
# https://github.com/krallin/tini/releases
|
|
||||||
ARG TINI_VERSION=0.19.0
|
|
||||||
|
|
||||||
# All the things!
|
# All the things!
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
@ -28,19 +25,9 @@ RUN apt-get update && \
|
|||||||
tor \
|
tor \
|
||||||
tor-geoipdb \
|
tor-geoipdb \
|
||||||
obfs4proxy \
|
obfs4proxy \
|
||||||
iputils-ping && \
|
iputils-ping \
|
||||||
# Install tini: https://github.com/krallin/tini
|
gosu && \
|
||||||
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
|
# Tidy up
|
||||||
apt-get purge --auto-remove -y \
|
|
||||||
apt-transport-https \
|
|
||||||
lsb-release \
|
|
||||||
gnupg && \
|
|
||||||
apt-get clean && \
|
apt-get clean && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
@ -48,18 +35,9 @@ RUN apt-get update && \
|
|||||||
COPY torrc.default /etc/tor/torrc
|
COPY torrc.default /etc/tor/torrc
|
||||||
|
|
||||||
# Copy entrypoint script & ensure it's executable
|
# Copy entrypoint script & ensure it's executable
|
||||||
COPY ./entrypoint.sh /usr/local/bin/docker-entrypoint
|
COPY entrypoint.sh /usr/local/bin/docker-entrypoint
|
||||||
RUN chmod ugo+rx /usr/local/bin/docker-entrypoint
|
|
||||||
|
|
||||||
# Tor data should be persisted on the host
|
HEALTHCHECK --interval=300s --timeout=10s --start-period=30s \
|
||||||
VOLUME /var/lib/tor
|
CMD curl -sSx socks5h://127.0.0.1:9050 https://check.torproject.org/api/ip | grep -E '"IsTor"\s*:\s*true'
|
||||||
|
|
||||||
# Make sure files are owned by the tor user
|
ENTRYPOINT ["docker-entrypoint"]
|
||||||
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 ["tini", "--", "docker-entrypoint"]
|
|
||||||
CMD ["tor", "-f", "/etc/tor/torrc"]
|
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -o errexit
|
set -e
|
||||||
|
|
||||||
# fix permissions
|
# fix permissions
|
||||||
|
chown -R debian-tor:debian-tor /var/lib/tor
|
||||||
find /var/lib/tor -type d -exec chmod 700 {} \;
|
find /var/lib/tor -type d -exec chmod 700 {} \;
|
||||||
find /var/lib/tor -type f -exec chmod 600 {} \;
|
find /var/lib/tor -type f -exec chmod 600 {} \;
|
||||||
|
|
||||||
exec "$@"
|
# step down from root to tor user
|
||||||
|
gosu debian-tor tor "$@"
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# Exposing a proxy is unnecessary if we're running a hidden service.
|
|
||||||
SocksPort 0
|
|
||||||
|
|
||||||
# This folder contains the public and private keys of the hidden
|
# This folder contains the public and private keys of the hidden
|
||||||
# service, probably provided by the host but can also be generated
|
# service, probably provided by the host but can also be generated
|
||||||
# by Tor if it's missing.
|
# by Tor if it's missing.
|
||||||
HiddenServiceDir /var/lib/tor/hidden_service/
|
HiddenServiceDir /var/lib/tor/hidden_service
|
||||||
|
|
||||||
# Point the hidden service to a web server (in this case, the web
|
# Point the hidden service to a web server (in this case, the web
|
||||||
# server container listening on port 80). See README.
|
# server container listening on port 80). See README.
|
||||||
HiddenServicePort 80 web:80
|
HiddenServicePort 80 web:80
|
||||||
|
|
||||||
|
# SOCKS proxy is only used for the container's internal healthcheck.
|
||||||
|
SocksPort 127.0.0.1:9050
|
||||||
|
Loading…
x
Reference in New Issue
Block a user