FROM golang:alpine # Set necessary environmet variables needed for our image ENV GO111MODULE=on \ CGO_ENABLED=0 \ GOOS=linux \ GOARCH=amd64 ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH ENV PGDATA /var/lib/postgresql/data ENV POSTGRES_DB headscale ENV POSTGRES_USER admin ENV LANG en_US.utf8 RUN apk update && \ apk add git su-exec tzdata libpq postgresql-client postgresql postgresql-contrib gnupg supervisor inotify-tools wireguard-tools openssh && \ mkdir /docker-entrypoint-initdb.d && \ rm -rf /var/cache/apk/* RUN gpg --keyserver ipv4.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 RUN gpg --list-keys --fingerprint --with-colons | sed -E -n -e 's/^fpr:::::::::([0-9A-F]+):$/\1:6:/p' | gpg --import-ownertrust RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64" && \ wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64.asc" && \ gpg --verify /usr/local/bin/gosu.asc && \ rm /usr/local/bin/gosu.asc && \ chmod +x /usr/local/bin/gosu RUN apk --purge del gnupg ca-certificates VOLUME /var/lib/postgresql/data RUN rm -rf /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_dsa_key WORKDIR /build RUN git clone https://github.com/juanfont/headscale.git WORKDIR /build/headscale RUN go build cmd/headscale/headscale.go COPY headscale.sh /headscale.sh COPY postgres.sh /postgres.sh COPY supervisord.conf /etc/supervisord.conf WORKDIR / RUN mkdir -p /run/postgresql RUN chown postgres:postgres /run/postgresql RUN adduser -S headscale #ENV GIN_MODE release EXPOSE 8000 CMD ["supervisord","--nodaemon", "--configuration", "/etc/supervisord.conf"]