summaryrefslogtreecommitdiffstats
path: root/gitolite/entrypoint.sh
diff options
context:
space:
mode:
authorMalfurious <m@lfurio.us>2023-09-15 10:59:09 -0400
committerMalfurious <m@lfurio.us>2023-09-15 10:59:09 -0400
commita6f2c9e34b7a0bdaff2a44b54ca7999728f36773 (patch)
tree73b2ff4824313805629ee98efd1844fd7b636da1 /gitolite/entrypoint.sh
parent5cd2822ed607d1f20d1d114aebe511a4fe5f1825 (diff)
parentc1db5d6e6557ac5f3b9d408eb2de888bf096a370 (diff)
downloadsrcnode-a6f2c9e34b7a0bdaff2a44b54ca7999728f36773.tar.gz
srcnode-a6f2c9e34b7a0bdaff2a44b54ca7999728f36773.zip
Merge branch 'gitolite-debian-refactor'
Refactor the gitolite docker image to build from Debian, but also clean up a lot of the original build process. The move off of archlinux is done since it is a sub-optimal pick for a docker base. However, I'm specifically moving off it because archlinux does not allow for the use of normalmode on i386 machines. Most offical bases do, and debian seems to be a good fit for running gitolite. Previously, this git repository was serving double duty as the code repository for normalmode, as well as the site gitolite-admin repository. This is no longer going to be the case - gitolite-admin is now completely separate. Not only does this allow me to clean up the folder structure, but going forward, the out-of-the-box experience of a new install will be 'more correct' for what normalmode intends. IE: Our config files will more often already be installed by default, instead of requiring user-intervention on the gitolite-admin side of things. The docker-compose.yml file is left behind. I'll update it after cgit gets a similar treatment. * gitolite-debian-refactor: gitolite: Add admin initialization script gitolite: Allow users to delete remote HEAD branches gitolite: Remove hard-coded admin username gitolite: Correct site-local code location gitolite: Refactor Dockerfile for debian base gitolite: Consolidate config files into a single directory
Diffstat (limited to 'gitolite/entrypoint.sh')
-rwxr-xr-xgitolite/entrypoint.sh15
1 files changed, 15 insertions, 0 deletions
diff --git a/gitolite/entrypoint.sh b/gitolite/entrypoint.sh
new file mode 100755
index 0000000..613a968
--- /dev/null
+++ b/gitolite/entrypoint.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# On startup of the gitolite container, force a receive of the gitolite-admin
+# files from the persistent volume, to cause the user's real pubkeys and config
+# files to take effect.
+main() {
+ sleep 5
+ ssh -o StrictHostKeyChecking=accept-new git@localhost info # cache hostkey
+ git clone --bare git@localhost:gitolite-admin.git /tmp/gladmin.git
+ git --git-dir=/tmp/gladmin.git push origin :master # remove rmt master
+ git --git-dir=/tmp/gladmin.git push origin master # replace rmt master
+}
+
+main &
+/usr/sbin/sshd -D