From ab7a0569a93fc183c2ae2bda8ceb084dca5facc7 Mon Sep 17 00:00:00 2001 From: Tony Blyler <git@tonyblyler.com> Date: Sat, 15 May 2021 00:22:40 -0400 Subject: [PATCH 1/2] create basic Dockerfile for having an ssh server with rsync --- .dockerignore | 1 + Dockerfile | 5 +++++ Makefile | 7 +++++++ entrypoint.sh | 13 +++++++++++++ 4 files changed, 26 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 entrypoint.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6b8710a --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8a20989 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM alpine:3.13 + +RUN apk add --no-cache \ + openssh-server \ + rsync diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3a1a9a7 --- /dev/null +++ b/Makefile @@ -0,0 +1,7 @@ +.PHONY: build +build: + docker build -t registry.0xdad.com/rsync-ssh-server:latest . + +.PHONY: deploy +deploy: build + docker push registry.0xdad.com/rsync-ssh-server:latest diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..183b58c --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,13 @@ +#!/bin/sh +set -eu + +ssh-keygen -A + +/usr/sbin/sshd + +while pgrep -f /usr/sbin/sshd; do + sleep 5 +done + +>&2 echo 'SSHD is no longer running' +exit 1 From bc3edaad62242ea3c04d35ebdbc222d150d777e5 Mon Sep 17 00:00:00 2001 From: Tony Blyler <git@tonyblyler.com> Date: Sat, 15 May 2021 00:41:19 -0400 Subject: [PATCH 2/2] add basic rsync server image --- Dockerfile | 2 ++ README.md | 9 +++++++++ entrypoint.sh | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/Dockerfile b/Dockerfile index 8a20989..63c3c6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,3 +3,5 @@ FROM alpine:3.13 RUN apk add --no-cache \ openssh-server \ rsync + +RUN mkdir -p /root/.ssh && cp /etc/ssh/sshd_config /etc/default_sshd_config diff --git a/README.md b/README.md index 0987081..6880c9e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,11 @@ # docker-rsync-server +This is a simple docker image definition for starting an SSH server that is used for rsyncing to volume mounts. + +## Volumes + +| path | description | +|----------------------------|---------------------------------------| +| /root/.ssh/authorized_keys | the ssh keys to allow for auth | +| /etc/ssh | location for SSH host keys and config | +| anywhere else | the locations available for rsync | diff --git a/entrypoint.sh b/entrypoint.sh index 183b58c..b1e90b6 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -3,6 +3,10 @@ set -eu ssh-keygen -A +if [ ! -e '/etc/ssh/sshd_config' ]; then + cp /etc/default_sshd_config /etc/ssh/sshd_config +fi + /usr/sbin/sshd while pgrep -f /usr/sbin/sshd; do