From 83d59f7ff01862326b70787cfb211752f34753e4 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Fri, 27 Nov 2020 17:32:35 +0100 Subject: [PATCH] Dockerfile: Add torsocks binary. This has two purposes: 1) The 'torify' wrapper is already included, and it needs torsocks. 2) Use torsocks for health checking your onion service like this: healthcheck: test: ["CMD-SHELL", "torsocks nc -z || exit 1"] interval: 2m --- Dockerfile | 12 ++++++++++++ Makefile | 5 +++-- docker-compose.build.yml | 1 + last_torsocks_version.sh | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100755 last_torsocks_version.sh diff --git a/Dockerfile b/Dockerfile index b1ef1db..31c6636 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ FROM python:3.8-alpine ARG tor_version +ARG torsocks_version ENV HOME /var/lib/tor ENV POETRY_VIRTUALENVS_CREATE=false @@ -21,6 +22,17 @@ RUN apk add --no-cache git bind-tools libevent-dev openssl-dev gnupg gcc mak apk del git libevent-dev openssl-dev gnupg make automake autoconf musl-dev coreutils libffi-dev && \ apk add --no-cache libevent openssl +RUN apk add --no-cache git gcc make automake autoconf musl-dev libtool && \ + git clone https://git.torproject.org/torsocks.git /usr/local/src/torsocks && \ + cd /usr/local/src/torsocks && \ + git checkout $torsocks_version && \ + ./autogen.sh && \ + ./configure && \ + make && make install && \ + cd .. && \ + rm -rf torsocks && \ + apk del git gcc make automake autoconf musl-dev libtool + RUN mkdir -p /etc/tor/ COPY pyproject.toml /usr/local/src/onions/ diff --git a/Makefile b/Makefile index c79da27..64f9307 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ .EXPORT_ALL_VARIABLES: TOR_VERSION = $(shell bash last_tor_version.sh) +TORSOCKS_VERSION = $(shell bash last_torsocks_version.sh) CUR_COMMIT = $(shell git rev-parse --short HEAD) CUR_TAG = v$(TOR_VERSION)-$(CUR_COMMIT) @@ -17,11 +18,11 @@ check: pre-commit run --all-files build: - - echo build with tor version $(TOR_VERSION) + - echo build with tor version $(TOR_VERSION) and torsocks version $(TORSOCKS_VERSION) docker-compose -f docker-compose.build.yml build rebuild: - - echo rebuild with tor version $(TOR_VERSION) + - echo rebuild with tor version $(TOR_VERSION) and torsocks version $(TORSOCKS_VERSION) docker-compose -f docker-compose.build.yml build --no-cache run: build diff --git a/docker-compose.build.yml b/docker-compose.build.yml index 06f095a..a0013f0 100644 --- a/docker-compose.build.yml +++ b/docker-compose.build.yml @@ -9,3 +9,4 @@ services: context: . args: tor_version: $TOR_VERSION + torsocks_version: $TORSOCKS_VERSION diff --git a/last_torsocks_version.sh b/last_torsocks_version.sh new file mode 100755 index 0000000..aacc547 --- /dev/null +++ b/last_torsocks_version.sh @@ -0,0 +1,2 @@ +#!/bin/sh +git ls-remote --tags https://git.torproject.org/torsocks.git | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -1