docker_images/syncthing/Dockerfile

57 lines
1.4 KiB
Docker

FROM golang:1.10 AS builder
MAINTAINER Yaltik - Fabien Bourgeois <fabien@yaltik.com>
ENV VERSION v0.14.52
RUN mkdir -p /go/src/github.com/syncthing/syncthing
RUN git clone --branch "${VERSION}" --depth 1 https://github.com/syncthing/syncthing /go/src/github.com/syncthing/syncthing
WORKDIR /go/src/github.com/syncthing/syncthing
COPY . .
ENV CGO_ENABLED=0
ENV BUILD_HOST=syncthing.net
ENV BUILD_USER=docker
RUN rm -f syncthing && go run build.go build syncthing
FROM alpine
EXPOSE 8384 22000 21027/udp
VOLUME ["/var/syncthing"]
RUN apk add --no-cache ca-certificates
COPY --from=builder /go/src/github.com/syncthing/syncthing/syncthing /bin/syncthing
RUN apk add --no-cache su-exec
ENV STNOUPGRADE=1
ENV PUSR=syncthing
ENV PUID=1000
ENV PGRP=syncthing
ENV PGID=1000
# Remove HEALTHCHECK because kernel panic on debian jessie...
# HEALTHCHECK --interval=1m --timeout=10s \
# CMD nc -z localhost 8384 || exit 1
ENTRYPOINT true \
&& ( getent group "${PGRP}" >/dev/null \
|| addgroup \
-g "${PGID}" \
"${PGRP}" \
) \
&& ( getent passwd "${PUSR}" >/dev/null \
|| adduser \
-h /var/syncthing \
-G "${PGRP}" \
-u "${PUID}" \
"${PUSR}" \
) \
&& chown "${PUSR}:${PGRP}" /var/syncthing \
&& su-exec "${PUSR}:${PGRP}" \
/bin/syncthing \
-home /var/syncthing/config \
-gui-address 0.0.0.0:8384 \
&& true