diff --git a/services/git-bridge/.dockerignore b/services/git-bridge/.dockerignore index 06a66daedf..b400edabdd 100644 --- a/services/git-bridge/.dockerignore +++ b/services/git-bridge/.dockerignore @@ -1,6 +1,7 @@ * !start.sh !server-pro-start.sh +!dev-env-start.sh !/conf !/lib !/src/main diff --git a/services/git-bridge/Makefile b/services/git-bridge/Makefile index a572c577ea..3e489866c5 100644 --- a/services/git-bridge/Makefile +++ b/services/git-bridge/Makefile @@ -20,7 +20,7 @@ runtime-conf: run: $(MVN_TARGET) runtime-conf - java $(GIT_BRIDGE_JVM_ARGS) -jar $(MVN_TARGET) conf/runtime.json + @exec java $(GIT_BRIDGE_JVM_ARGS) -jar $(MVN_TARGET) conf/runtime.json $(MVN_TARGET): $(shell find src -type f) pom.xml diff --git a/services/git-bridge/dev-env-start.sh b/services/git-bridge/dev-env-start.sh new file mode 100755 index 0000000000..7a5a72df33 --- /dev/null +++ b/services/git-bridge/dev-env-start.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# This script is meant to be run as root when the git bridge starts up in +# the dev environment. It ensures that the data directory is created and +# owned by the "node" user, which is the regular user git bridge runs as. + +ROOT_DIR="${GIT_BRIDGE_ROOT_DIR:-/tmp/wlgb}" +mkdir -p "$ROOT_DIR" +chown node:node "$ROOT_DIR" + +# Drop privileges using setpriv to avoid spawning a new process +exec setpriv --reuid=node --regid=node --init-groups make run