summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gitolite/Dockerfile2
-rwxr-xr-xgitolite/initialize.sh16
2 files changed, 17 insertions, 1 deletions
diff --git a/gitolite/Dockerfile b/gitolite/Dockerfile
index e3ff032..5d34312 100644
--- a/gitolite/Dockerfile
+++ b/gitolite/Dockerfile
@@ -22,7 +22,7 @@ RUN useradd \
# Install files
COPY --chown=git:git dotfiles /git/
COPY sshd_config /etc/ssh/
-COPY gitolite.conf entrypoint.sh /app/
+COPY gitolite.conf entrypoint.sh initialize.sh /app/
# Setup SSH keys
# We manually generate and store host keys in a separate volume, so that
diff --git a/gitolite/initialize.sh b/gitolite/initialize.sh
new file mode 100755
index 0000000..6806acd
--- /dev/null
+++ b/gitolite/initialize.sh
@@ -0,0 +1,16 @@
+#!/bin/bash -e
+
+# This script is manually invoked when first setting up a site to initialize the
+# gitolite repositories database and set up a user-supplied pubkey for initial
+# administrator access.
+
+echo -e "This will erase data in the gitolite repository volume!"
+echo -e "One SSH pubkey will be used as the initial administrator of the new install."
+echo -e "\nKey selected: $1"
+cat "/tmp/$1"
+echo -e "\nPress Enter/Return to continue..."
+
+read -r confirm
+
+rm -rf /git/.gitolite /git/repositories/*
+su git -c "gitolite setup -pk /tmp/$1"