diff --git a/Dockerfile b/Dockerfile index 1b1b8de09679bf854f542a6da3805ce1ff2c4a00..2fc260fe1f16c6d992422e6b3bf3bcf90711ec33 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,13 +3,17 @@ FROM registry.cyberbrain.pw/docker/git-sync:latest ENV GIT_SYNC_ROOT='/tmp/git' \ GIT_SYNC_DEST='sync' \ GIT_SYNC_EXECHOOK_COMMAND='/rsync-sync' \ - GIT_SYNC_ADD_USER='true' + GIT_SYNC_ADD_USER='true' \ + RSYNC_SYNC_WEBHOOK_METHOD='POST' \ + RSYNC_SYNC_WEBHOOK_TIMEOUT=1 \ + RSYNC_SYNC_WEBHOOK_BACKOFF=3 \ + RSYNC_SYNC_WEBHOOK_ATTEMPTS=3 USER root:root RUN set -ex \ && apt-get update -y \ - && apt-get install --no-install-recommends -y rsync \ + && apt-get install --no-install-suggests --no-install-recommends -y rsync curl \ && apt-get clean -y \ && rm -rf /var/lib/apt/lists/* \ && chmod -Rv 0777 "${GIT_SYNC_ROOT:-/tmp/git}/" diff --git a/README.md b/README.md index 72109acbcae3ea05540da19e92c888b7328c7018..9697c9713ce7f33a604f0df6d5e478459bbc5357 100644 --- a/README.md +++ b/README.md @@ -11,3 +11,10 @@ Preset env vars: - GIT_SYNC_DEST='sync' - GIT_SYNC_EXECHOOK_COMMAND='/rsync-sync' - GIT_SYNC_ADD_USER='true' +- RSYNC_SYNC_WEBHOOK_METHOD='POST' +- RSYNC_SYNC_WEBHOOK_TIMEOUT=1 +- RSYNC_SYNC_WEBHOOK_BACKOFF=3 +- RSYNC_SYNC_WEBHOOK_ATTEMPTS=3 + +Custom env vars: +- RSYNC_SYNC_WEBHOOK_URL diff --git a/rsync-sync b/rsync-sync index 1df8a19694c82c752d8703a16030a4a8f7a36541..a98e412030a7afd436e0e616b94570eb655abb80 100644 --- a/rsync-sync +++ b/rsync-sync @@ -6,3 +6,12 @@ rsync -a \ --delete-after \ "${GIT_SYNC_ROOT:-/tmp/git}/${GIT_SYNC_DEST:-sync}/" \ /sync + +if test -n "${RSYNC_SYNC_WEBHOOK_URL}"; then + curl -I -L \ + -X ${RSYNC_SYNC_WEBHOOK_METHOD:-POST} \ + -m ${RSYNC_SYNC_WEBHOOK_TIMEOUT:-1} \ + --retry ${RSYNC_SYNC_WEBHOOK_ATTEMPTS:-3} \ + --retry-delay ${RSYNC_SYNC_WEBHOOK_BACKOFF:-3} \ + "${RSYNC_SYNC_WEBHOOK_URL}" +fi