34 lines
930 B
Docker
34 lines
930 B
Docker
# Builder image
|
|
FROM docker.io/golang:1.19.3-bullseye AS build
|
|
ARG VERSION=v0.20.0
|
|
ENV GOPATH /go
|
|
|
|
RUN apt-get install -y git && \
|
|
git clone https://github.com/juanfont/headscale -b $VERSION /go/src/headscale
|
|
|
|
WORKDIR /go/src/headscale
|
|
|
|
RUN go mod download
|
|
|
|
RUN CGO_ENABLED=0 GOOS=linux go install -tags ts2019 -ldflags="-s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=$VERSION" -a ./cmd/headscale
|
|
RUN strip /go/bin/headscale
|
|
RUN test -e /go/bin/headscale
|
|
|
|
# Production image
|
|
# Note that we do not use "distroless" because we actually want to have a shell in the image
|
|
# to run app.sh (in order to perform custom initialization)
|
|
FROM docker.io/golang:1.19.3-bullseye
|
|
|
|
COPY --from=build /go/bin/headscale /bin/headscale
|
|
ENV TZ UTC
|
|
|
|
ADD app.sh /
|
|
|
|
RUN chmod +x /app.sh
|
|
|
|
EXPOSE 8080/tcp
|
|
# State path
|
|
# Note that configuration should be mounted or added in /etc/headscale
|
|
VOLUME /var/lib/headscale
|
|
CMD ["/app.sh"]
|