Dockerfile 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. FROM docker.io/alpine:3.13.4
  2. ARG BORGBACKUP_PACKAGE_VERSION=1.1.15-r0
  3. ARG OPENSSH_SERVER_PACKAGE_VERSION=8.4_p1-r3
  4. ARG USER=borg
  5. ENV SSHD_HOST_KEYS_DIR=/etc/ssh/host_keys
  6. ARG REPO_PATH=/repository
  7. RUN apk add --no-cache \
  8. borgbackup="$BORGBACKUP_PACKAGE_VERSION" \
  9. openssh-server="$OPENSSH_SERVER_PACKAGE_VERSION" \
  10. && adduser -S -s /bin/ash "$USER" \
  11. && mkdir "$SSHD_HOST_KEYS_DIR" \
  12. && chown -c "$USER" "$SSHD_HOST_KEYS_DIR" \
  13. && mkdir "$REPO_PATH" \
  14. && chown -c "$USER" "$REPO_PATH"
  15. VOLUME $SSHD_HOST_KEYS_DIR
  16. VOLUME $REPO_PATH
  17. COPY sshd_config /etc/ssh/sshd_config
  18. EXPOSE 2200/tcp
  19. ENV SSH_CLIENT_PUBLIC_KEYS=
  20. COPY entrypoint.sh /
  21. ENTRYPOINT ["/entrypoint.sh"]
  22. USER $USER
  23. CMD ["/usr/sbin/sshd", "-D", "-e"]
  24. # https://github.com/opencontainers/image-spec/blob/v1.0.1/annotations.md
  25. ARG REVISION=
  26. LABEL org.opencontainers.image.title="single-user openssh server restricted to borgbackup backend" \
  27. org.opencontainers.image.source="https://github.com/fphammerle/borgbackup-sshd" \
  28. org.opencontainers.image.revision="$REVISION"