Dockerfile 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  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. ENV 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. ENV SSH_CLIENT_PUBLIC_KEYS_APPEND_ONLY=
  21. COPY entrypoint.sh /
  22. ENTRYPOINT ["/entrypoint.sh"]
  23. USER $USER
  24. CMD ["/usr/sbin/sshd", "-D", "-e"]
  25. # https://github.com/opencontainers/image-spec/blob/v1.0.1/annotations.md
  26. ARG REVISION=
  27. LABEL org.opencontainers.image.title="single-user openssh server restricted to borgbackup backend" \
  28. org.opencontainers.image.source="https://github.com/fphammerle/borgbackup-sshd" \
  29. org.opencontainers.image.revision="$REVISION"