diff --git a/syncthing/Dockerfile b/syncthing/Dockerfile new file mode 100644 index 0000000..2c49143 --- /dev/null +++ b/syncthing/Dockerfile @@ -0,0 +1,56 @@ +FROM golang:1.10 AS builder +MAINTAINER Yaltik - Fabien Bourgeois + +ENV VERSION v0.14.49 + +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 diff --git a/syncthing/base.yml b/syncthing/base.yml new file mode 100644 index 0000000..10b4ded --- /dev/null +++ b/syncthing/base.yml @@ -0,0 +1,5 @@ +version: '2.2' +services: + syncthing: + build: . + image: registry.yaltik.net/syncthing:yaltik