server/docker/Dockerfile

69 lines
1.6 KiB
Docker
Raw Permalink Normal View History

2021-08-09 21:32:30 +00:00
FROM alpine:latest as tor-build-stage
2021-08-10 11:56:00 +00:00
# Install prerequisites, grab tor, compile it and move to /usr/local
2021-08-09 21:32:30 +00:00
RUN apk --no-cache add --update \
gnupg \
build-base \
libevent \
libevent-dev \
libressl \
libressl-dev \
xz-libs \
xz-dev \
zlib \
zlib-dev \
zstd \
zstd-dev \
&& wget -q https://dist.torproject.org/tor-0.4.6.6.tar.gz \
&& tar xf tor-0.4.6.6.tar.gz \
&& cd tor-0.4.6.6 \
&& ./configure \
&& make install \
&& ls -R /usr/local/
FROM golang:alpine as cwtch-build-stage
2021-08-10 11:56:00 +00:00
# Need additional packages for cgo etc
2021-08-09 21:32:30 +00:00
RUN apk --no-cache add --update gcc build-base
2021-08-10 11:56:00 +00:00
# Copy source files from the repo to /go/src
2021-08-09 21:32:30 +00:00
COPY . src/
2021-08-10 11:56:00 +00:00
#Build Cwtch
2021-08-09 21:32:30 +00:00
RUN cd src/app && go build
FROM alpine:latest
2021-08-10 21:11:18 +00:00
#Specify various env vars
2021-08-10 21:06:26 +00:00
ENV TOR_USER=_tor CWTCH_USER=_cwtch CWTCH_HOME=/var/lib/cwtch
2021-08-09 21:32:30 +00:00
2021-08-10 11:56:00 +00:00
# Installing dependencies of Tor
2021-08-09 21:32:30 +00:00
RUN apk --no-cache add --update \
libevent \
libressl \
xz-libs \
zlib \
zstd \
2021-08-10 11:56:00 +00:00
zstd-dev
2021-08-09 21:32:30 +00:00
# Copy Tor
COPY --from=tor-build-stage /usr/local/ /usr/local/
#Copy cwtch app
COPY --from=cwtch-build-stage /go/src/app/app /usr/local/bin/cwtch
2021-08-10 11:56:00 +00:00
# Create unprivileged users
2021-08-10 20:25:55 +00:00
RUN mkdir -p /run/tor && mkdir /var/lib/cwtch && addgroup -S $TOR_USER && adduser -G $TOR_USER -S $TOR_USER && adduser -S $CWTCH_USER
2021-08-09 21:32:30 +00:00
# Copy Tor configuration file
COPY ./docker/torrc /etc/tor/torrc
# Copy docker-entrypoint
COPY ./docker/docker-entrypoint /usr/local/bin/
# Persist data
2021-08-10 20:25:55 +00:00
VOLUME /etc/tor /var/lib/tor /var/lib/cwtch
2021-08-09 21:32:30 +00:00
ENTRYPOINT ["docker-entrypoint"]
CMD ["/usr/local/bin/cwtch","--exportServerBundle"]
2021-08-09 21:32:30 +00:00