summaryrefslogtreecommitdiff
path: root/docker/assets
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2015-07-21 16:44:38 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2015-07-23 14:27:25 +0200
commit47e81e75d7545a5d8601210055a7a6349aaaa528 (patch)
treee5ff0e4f46d10a729c516b8ddb2d83c024fa67fc /docker/assets
parent8ba1a7a03f849cd83a83476c920c2c0572e675d7 (diff)
downloadgitlab-ce-docker-pin.tar.gz
PIN users to UIDs and monkey patch initctldocker-pin
Diffstat (limited to 'docker/assets')
-rw-r--r--docker/assets/gitlab-docker.rb16
-rwxr-xr-xdocker/assets/initctl67
-rwxr-xr-xdocker/assets/wrapper9
3 files changed, 86 insertions, 6 deletions
diff --git a/docker/assets/gitlab-docker.rb b/docker/assets/gitlab-docker.rb
new file mode 100644
index 00000000000..b6d487a84c7
--- /dev/null
+++ b/docker/assets/gitlab-docker.rb
@@ -0,0 +1,16 @@
+# Docker options
+## Prevent Postgres from trying to allocate 25% of total memory
+postgresql['shared_buffers'] = '1MB'
+
+## PIN users to UIDs
+user['uid'] = 998
+user['gid'] = 998
+postgresql['uid'] = 996
+postgresql['gid'] = 996
+redis['uid'] = 997
+redis['gid'] = 997
+web_server['uid'] = 999
+web_server['gid'] = 999
+gitlab_ci['uid'] = 995
+gitlab_ci['gid'] = 995
+
diff --git a/docker/assets/initctl b/docker/assets/initctl
new file mode 100755
index 00000000000..944741ee66c
--- /dev/null
+++ b/docker/assets/initctl
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+# Monkey patch missing initctl in docker environment
+
+fail() {
+ echo "$@" 1>&2
+ exit 1
+}
+
+verify_args() {
+ if [[ "$2" != "gitlab-runsvdir" ]]; then
+ fail "initctl: Unknown job: $2"
+ fi
+ if [[ $# -ne 2 ]]; then
+ fail "usage: $0 command gitlab-runsvdir"
+ fi
+}
+
+proxy_gitlab_ctl() {
+ gitlab-ctl "$COMMAND"
+}
+
+COMMAND="$1"
+shift
+SERVICE="$1"
+
+case "$COMMAND" in
+ start)
+ verify_args "$COMMAND" "$@"
+ RUNSVDIR=$(pidof runsvdir)
+ if [[ -z "$RUNSVDIR" ]]; then
+ /opt/gitlab/embedded/bin/runsvdir-start &
+ fi
+ ;;
+
+ stop|restart)
+ verify_args "$COMMAND" "$@"
+ proxy_gitlab_ctl "$COMMAND" "$@"
+ ;;
+
+ status)
+ verify_args "$COMMAND" "$@"
+ if [[ ! -f /etc/init/$SERVICE.conf ]]; then
+ fail "initctl: Unknown job: $SERVICE"
+ fi
+
+ RUNSVDIR=$(pidof runsvdir)
+ if [[ -n "$RUNSVDIR" ]]; then
+ echo "$SERVICE start/running, process $RUNSVDIR"
+ else
+ echo "$SERVICE stop/waiting"
+ fi
+ ;;
+
+ reload)
+ verify_args "$COMMAND" "$@"
+ proxy_gitlab_ctl "hup" "$@"
+ ;;
+
+ list)
+ echo "gitlab-runsvdir"
+ ;;
+
+ *)
+ exit 0
+ ;;
+esac
diff --git a/docker/assets/wrapper b/docker/assets/wrapper
index 8bc8370fbc9..cd7e50b5719 100755
--- a/docker/assets/wrapper
+++ b/docker/assets/wrapper
@@ -7,15 +7,12 @@ function sigterm_handler() {
trap "sigterm_handler; exit" TERM
-function entrypoint() {
- /opt/gitlab/embedded/bin/runsvdir-start &
- gitlab-ctl reconfigure # will also start everything
- gitlab-ctl tail # tail all logs
-}
+set -xe
if [[ ! -e /etc/gitlab/gitlab.rb ]]; then
cp /assets/gitlab.rb /etc/gitlab/gitlab.rb
chmod 0600 /etc/gitlab/gitlab.rb
fi
-entrypoint
+gitlab-ctl reconfigure # start everything
+gitlab-ctl tail # all logs