aboutsummaryrefslogtreecommitdiff
path: root/gitolite
diff options
context:
space:
mode:
Diffstat (limited to 'gitolite')
-rw-r--r--gitolite/Dockerfile6
-rw-r--r--gitolite/docker-entrypoint.sh6
-rw-r--r--gitolite/post-receive9
3 files changed, 20 insertions, 1 deletions
diff --git a/gitolite/Dockerfile b/gitolite/Dockerfile
index f6749f7..8ac87f6 100644
--- a/gitolite/Dockerfile
+++ b/gitolite/Dockerfile
@@ -17,6 +17,11 @@ VOLUME /etc/ssh/keys
# Volume used to store all Gitolite data (keys, config and repositories), initialized on first run
VOLUME /var/lib/git
+# Permissions are fixed in docker-entrypoint.sh
+RUN mkdir -p /var/lib/git/local/hooks/common
+COPY post-receive /var/lib/git/local/hooks/common/
+RUN chmod +x /var/lib/git/local/hooks/common/post-receive
+
# Entrypoint responsible for SSH host keys generation, and Gitolite data initialization
COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
@@ -26,5 +31,4 @@ ENTRYPOINT ["/docker-entrypoint.sh"]
EXPOSE 22
# Default command is to run the SSH server
-
CMD ["sshd"]
diff --git a/gitolite/docker-entrypoint.sh b/gitolite/docker-entrypoint.sh
index 94717eb..3d08d34 100644
--- a/gitolite/docker-entrypoint.sh
+++ b/gitolite/docker-entrypoint.sh
@@ -29,6 +29,7 @@ if [ ! -f ~git/.ssh/authorized_keys ]; then
[ -n "$SSH_KEY_NAME" ] || SSH_KEY_NAME=admin
echo "$SSH_KEY" > "/tmp/$SSH_KEY_NAME.pub"
su - git -c "gitolite setup -pk \"/tmp/$SSH_KEY_NAME.pub\""
+ su - git -c "sed -i -Ee 's/# (LOCAL_CODE\\s+=>\\s+\"\\\$ENV\\{HOME\\}\\/local\",.*)/\\1/' ~/.gitolite.rc"
rm "/tmp/$SSH_KEY_NAME.pub"
else
echo "You need to specify SSH_KEY on first run to setup gitolite"
@@ -41,4 +42,9 @@ else
su - git -c "gitolite setup"
fi
+if [ "${1}" != 'sshd' ]; then
+ sed -i -Ee "s/^([^#]*GIT_CONFIG_KEYS\\s*=>\\s*)'[^']*'\\s*,/\\1'cgit.*',/" /var/lib/git/.gitolite.rc
+ #sed -i -Ee "s/^([^#]*GIT_CONFIG_KEYS\\s*=>\\s*)'[^']*'\\s*,/\\1'.*',/" /var/lib/git/.gitolite.rc
+fi
+
exec "$@"
diff --git a/gitolite/post-receive b/gitolite/post-receive
new file mode 100644
index 0000000..3a3e262
--- /dev/null
+++ b/gitolite/post-receive
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+agefile="$(git rev-parse --git-dir)"/info/web/last-modified
+
+mkdir -p "$(dirname "$agefile")" &&
+git for-each-ref \
+ --sort=-authordate --count=1 \
+ --format='%(authordate:iso8601)' \
+ >"$agefile"