From 54681e6bbb315c24facae98edf7b2dd8dd7aed91 Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Tue, 16 Apr 2019 18:45:31 +0200 Subject: [PATCH 1/5] separate various /data/gitea --- Dockerfile | 7 ++++++- docker/etc/profile.d/gitea.sh | 2 -- docker/etc/s6/gitea/run | 2 +- docker/etc/s6/gitea/setup | 16 +++++++++------- docker/etc/templates/app.ini | 18 +++++++++--------- docker/usr/bin/entrypoint | 2 +- 6 files changed, 26 insertions(+), 21 deletions(-) delete mode 100755 docker/etc/profile.d/gitea.sh diff --git a/Dockerfile b/Dockerfile index e1d2ea8412a8a..246f8a7386a08 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,7 +49,12 @@ RUN addgroup \ echo "git:$(dd if=/dev/urandom bs=24 count=1 status=none | base64)" | chpasswd ENV USER git -ENV GITEA_CUSTOM /data/gitea +#Should later be move to /data/gitea/custom +ENV GITEA_CUSTOM /data/gitea +#Should later maybe be move to /data/gitea (goal use is to use the default path relative to AppWorkPath for new folder) +ENV RUN_DIR /app/gitea +#Should stay to /data/gitea +ENV DATA_PATH /data/gitea VOLUME ["/data"] diff --git a/docker/etc/profile.d/gitea.sh b/docker/etc/profile.d/gitea.sh deleted file mode 100755 index 41afd4cfb8444..0000000000000 --- a/docker/etc/profile.d/gitea.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -export GITEA_CUSTOM=/data/gitea diff --git a/docker/etc/s6/gitea/run b/docker/etc/s6/gitea/run index da5fd6b535ef6..cf4e54c3c3d51 100755 --- a/docker/etc/s6/gitea/run +++ b/docker/etc/s6/gitea/run @@ -1,6 +1,6 @@ #!/bin/bash [[ -f ./setup ]] && source ./setup -pushd /app/gitea > /dev/null +pushd "${RUN_DIR}" > /dev/null exec su-exec $USER /app/gitea/gitea web popd diff --git a/docker/etc/s6/gitea/setup b/docker/etc/s6/gitea/setup index 2b0fb6c37bb36..63ae50387ee19 100755 --- a/docker/etc/s6/gitea/setup +++ b/docker/etc/s6/gitea/setup @@ -6,12 +6,12 @@ if [ ! -d /data/git/.ssh ]; then fi if [ ! -f /data/git/.ssh/environment ]; then - echo "GITEA_CUSTOM=/data/gitea" >| /data/git/.ssh/environment + echo "GITEA_CUSTOM=${GITEA_CUSTOM}" >| /data/git/.ssh/environment chmod 600 /data/git/.ssh/environment fi -if [ ! -f /data/gitea/conf/app.ini ]; then - mkdir -p /data/gitea/conf +if [ ! -f "${GITEA_CUSTOM}/conf/app.ini" ]; then + mkdir -p "${GITEA_CUSTOM}/conf" # Set INSTALL_LOCK to true only if SECRET_KEY is not empty and # INSTALL_LOCK is empty @@ -22,6 +22,7 @@ if [ ! -f /data/gitea/conf/app.ini ]; then # Substitude the environment variables in the template APP_NAME=${APP_NAME:-"Gitea: Git with a cup of tea"} \ RUN_MODE=${RUN_MODE:-"dev"} \ + DATA_PATH=${DATA_PATH:-"/data/gitea"} \ SSH_DOMAIN=${SSH_DOMAIN:-"localhost"} \ HTTP_PORT=${HTTP_PORT:-"3000"} \ ROOT_URL=${ROOT_URL:-""} \ @@ -36,11 +37,12 @@ if [ ! -f /data/gitea/conf/app.ini ]; then DISABLE_REGISTRATION=${DISABLE_REGISTRATION:-"false"} \ REQUIRE_SIGNIN_VIEW=${REQUIRE_SIGNIN_VIEW:-"false"} \ SECRET_KEY=${SECRET_KEY:-""} \ - envsubst < /etc/templates/app.ini > /data/gitea/conf/app.ini + envsubst < /etc/templates/app.ini > "${GITEA_CUSTOM}/conf/app.ini" fi # only chown if current owner is not already the gitea ${USER}. No recursive check to save time -if ! [[ $(ls -ld /data/gitea | awk '{print $3}') = ${USER} ]]; then chown -R ${USER}:git /data/gitea; fi -if ! [[ $(ls -ld /app/gitea | awk '{print $3}') = ${USER} ]]; then chown -R ${USER}:git /app/gitea; fi +if ! [[ $(ls -ld "${GITEA_CUSTOM}" | awk '{print $3}') = ${USER} ]]; then chown -R ${USER}:git "${GITEA_CUSTOM}"; fi +if ! [[ $(ls -ld "${DATA_PATH}" | awk '{print $3}') = ${USER} ]]; then chown -R ${USER}:git "${DATA_PATH}"; fi +if ! [[ $(ls -ld "${RUN_DIR}" | awk '{print $3}') = ${USER} ]]; then chown -R ${USER}:git "${RUN_DIR}"; fi if ! [[ $(ls -ld /data/git | awk '{print $3}') = ${USER} ]]; then chown -R ${USER}:git /data/git; fi -chmod 0755 /data/gitea /app/gitea /data/git +chmod 0755 "${GITEA_CUSTOM}" "${DATA_PATH}" "${RUN_DIR}" /data/git diff --git a/docker/etc/templates/app.ini b/docker/etc/templates/app.ini index 589271b4a0e41..451322e8cb85c 100644 --- a/docker/etc/templates/app.ini +++ b/docker/etc/templates/app.ini @@ -5,13 +5,13 @@ RUN_MODE = $RUN_MODE ROOT = /data/git/repositories [repository.local] -LOCAL_COPY_PATH = /data/gitea/tmp/local-repo +LOCAL_COPY_PATH = $DATA_PATH/tmp/local-repo [repository.upload] -TEMP_PATH = /data/gitea/uploads +TEMP_PATH = $DATA_PATH/uploads [server] -APP_DATA_PATH = /data/gitea +APP_DATA_PATH = $DATA_PATH SSH_DOMAIN = $SSH_DOMAIN HTTP_PORT = $HTTP_PORT ROOT_URL = $ROOT_URL @@ -20,7 +20,7 @@ SSH_PORT = $SSH_PORT LFS_CONTENT_PATH = /data/git/lfs [database] -PATH = /data/gitea/gitea.db +PATH = $DATA_PATH/gitea.db DB_TYPE = $DB_TYPE HOST = $DB_HOST NAME = $DB_NAME @@ -28,19 +28,19 @@ USER = $DB_USER PASSWD = $DB_PASSWD [indexer] -ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve +ISSUE_INDEXER_PATH = $DATA_PATH/indexers/issues.bleve [session] -PROVIDER_CONFIG = /data/gitea/sessions +PROVIDER_CONFIG = $DATA_PATH/sessions [picture] -AVATAR_UPLOAD_PATH = /data/gitea/avatars +AVATAR_UPLOAD_PATH = $DATA_PATH/avatars [attachment] -PATH = /data/gitea/attachments +PATH = $DATA_PATH/attachments [log] -ROOT_PATH = /data/gitea/log +ROOT_PATH = $DATA_PATH/log [security] INSTALL_LOCK = $INSTALL_LOCK diff --git a/docker/usr/bin/entrypoint b/docker/usr/bin/entrypoint index d8e68b9404d63..29466d2cc0f26 100755 --- a/docker/usr/bin/entrypoint +++ b/docker/usr/bin/entrypoint @@ -26,7 +26,7 @@ if [ -n "${USER_UID}" ] && [ "${USER_UID}" != "`id -u ${USER}`" ]; then sed -i -e "s/^${USER}:\([^:]*\):[0-9]*:\([0-9]*\)/${USER}:\1:${USER_UID}:\2/" /etc/passwd fi -for FOLDER in /data/gitea/conf /data/gitea/log /data/git /data/ssh; do +for FOLDER in "${GITEA_CUSTOM}/conf" "${DATA_PATH}/log" /data/git /data/ssh; do mkdir -p ${FOLDER} done From 782755e0966e667af7eeab8c043c0224c6237de2 Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Tue, 16 Apr 2019 19:02:24 +0200 Subject: [PATCH 2/5] move default env to a separate file --- Dockerfile | 6 ------ docker/etc/s6/gitea/default_env | 23 +++++++++++++++++++++++ docker/etc/s6/gitea/run | 1 + docker/etc/s6/gitea/setup | 17 ----------------- 4 files changed, 24 insertions(+), 23 deletions(-) create mode 100755 docker/etc/s6/gitea/default_env diff --git a/Dockerfile b/Dockerfile index 246f8a7386a08..00a7aa380a300 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,12 +49,6 @@ RUN addgroup \ echo "git:$(dd if=/dev/urandom bs=24 count=1 status=none | base64)" | chpasswd ENV USER git -#Should later be move to /data/gitea/custom -ENV GITEA_CUSTOM /data/gitea -#Should later maybe be move to /data/gitea (goal use is to use the default path relative to AppWorkPath for new folder) -ENV RUN_DIR /app/gitea -#Should stay to /data/gitea -ENV DATA_PATH /data/gitea VOLUME ["/data"] diff --git a/docker/etc/s6/gitea/default_env b/docker/etc/s6/gitea/default_env new file mode 100755 index 0000000000000..18282d8da905d --- /dev/null +++ b/docker/etc/s6/gitea/default_env @@ -0,0 +1,23 @@ +#!/bin/bash + +# Define the environment variables +export DATA_PATH=${DATA_PATH:-"/data/gitea"} +export GITEA_CUSTOM=${GITEA_CUSTOM:-"/data/gitea"} +export RUN_DIR=${RUN_DIR:-"/app/gitea"} + +export APP_NAME=${APP_NAME:-"Gitea: Git with a cup of tea"} +export RUN_MODE=${RUN_MODE:-"dev"} +export SSH_DOMAIN=${SSH_DOMAIN:-"localhost"} +export HTTP_PORT=${HTTP_PORT:-"3000"} +export ROOT_URL=${ROOT_URL:-""} +export DISABLE_SSH=${DISABLE_SSH:-"false"} +export SSH_PORT=${SSH_PORT:-"22"} +export DB_TYPE=${DB_TYPE:-"sqlite3"} +export DB_HOST=${DB_HOST:-"localhost:3306"} +export DB_NAME=${DB_NAME:-"gitea"} +export DB_USER=${DB_USER:-"root"} +export DB_PASSWD=${DB_PASSWD:-""} +export INSTALL_LOCK=${INSTALL_LOCK:-"false"} +export DISABLE_REGISTRATION=${DISABLE_REGISTRATION:-"false"} +export REQUIRE_SIGNIN_VIEW=${REQUIRE_SIGNIN_VIEW:-"false"} +export SECRET_KEY=${SECRET_KEY:-""} \ No newline at end of file diff --git a/docker/etc/s6/gitea/run b/docker/etc/s6/gitea/run index cf4e54c3c3d51..e54e3a5f239e0 100755 --- a/docker/etc/s6/gitea/run +++ b/docker/etc/s6/gitea/run @@ -1,4 +1,5 @@ #!/bin/bash +[[ -f ./default_env ]] && source ./default_env [[ -f ./setup ]] && source ./setup pushd "${RUN_DIR}" > /dev/null diff --git a/docker/etc/s6/gitea/setup b/docker/etc/s6/gitea/setup index 63ae50387ee19..3ce7d883ea379 100755 --- a/docker/etc/s6/gitea/setup +++ b/docker/etc/s6/gitea/setup @@ -20,23 +20,6 @@ if [ ! -f "${GITEA_CUSTOM}/conf/app.ini" ]; then fi # Substitude the environment variables in the template - APP_NAME=${APP_NAME:-"Gitea: Git with a cup of tea"} \ - RUN_MODE=${RUN_MODE:-"dev"} \ - DATA_PATH=${DATA_PATH:-"/data/gitea"} \ - SSH_DOMAIN=${SSH_DOMAIN:-"localhost"} \ - HTTP_PORT=${HTTP_PORT:-"3000"} \ - ROOT_URL=${ROOT_URL:-""} \ - DISABLE_SSH=${DISABLE_SSH:-"false"} \ - SSH_PORT=${SSH_PORT:-"22"} \ - DB_TYPE=${DB_TYPE:-"sqlite3"} \ - DB_HOST=${DB_HOST:-"localhost:3306"} \ - DB_NAME=${DB_NAME:-"gitea"} \ - DB_USER=${DB_USER:-"root"} \ - DB_PASSWD=${DB_PASSWD:-""} \ - INSTALL_LOCK=${INSTALL_LOCK:-"false"} \ - DISABLE_REGISTRATION=${DISABLE_REGISTRATION:-"false"} \ - REQUIRE_SIGNIN_VIEW=${REQUIRE_SIGNIN_VIEW:-"false"} \ - SECRET_KEY=${SECRET_KEY:-""} \ envsubst < /etc/templates/app.ini > "${GITEA_CUSTOM}/conf/app.ini" fi From b8b0977cf1c696c1350a46ee626bb35ce89ce748 Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Tue, 16 Apr 2019 19:16:15 +0200 Subject: [PATCH 3/5] move lock test to default_env --- docker/etc/s6/gitea/default_env | 7 +++++++ docker/etc/s6/gitea/setup | 6 ------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/docker/etc/s6/gitea/default_env b/docker/etc/s6/gitea/default_env index 18282d8da905d..3034a603643b1 100755 --- a/docker/etc/s6/gitea/default_env +++ b/docker/etc/s6/gitea/default_env @@ -5,6 +5,13 @@ export DATA_PATH=${DATA_PATH:-"/data/gitea"} export GITEA_CUSTOM=${GITEA_CUSTOM:-"/data/gitea"} export RUN_DIR=${RUN_DIR:-"/app/gitea"} + +# Set INSTALL_LOCK to true only if SECRET_KEY is not empty and +# INSTALL_LOCK is empty +if [ -n "$SECRET_KEY" ] && [ -z "$INSTALL_LOCK" ]; then + INSTALL_LOCK=true +fi + export APP_NAME=${APP_NAME:-"Gitea: Git with a cup of tea"} export RUN_MODE=${RUN_MODE:-"dev"} export SSH_DOMAIN=${SSH_DOMAIN:-"localhost"} diff --git a/docker/etc/s6/gitea/setup b/docker/etc/s6/gitea/setup index 3ce7d883ea379..85e25036fd2bf 100755 --- a/docker/etc/s6/gitea/setup +++ b/docker/etc/s6/gitea/setup @@ -13,12 +13,6 @@ fi if [ ! -f "${GITEA_CUSTOM}/conf/app.ini" ]; then mkdir -p "${GITEA_CUSTOM}/conf" - # Set INSTALL_LOCK to true only if SECRET_KEY is not empty and - # INSTALL_LOCK is empty - if [ -n "$SECRET_KEY" ] && [ -z "$INSTALL_LOCK" ]; then - INSTALL_LOCK=true - fi - # Substitude the environment variables in the template envsubst < /etc/templates/app.ini > "${GITEA_CUSTOM}/conf/app.ini" fi From 2e38f3e9c6dab5c037eabb60a2b50f378b98f32e Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Wed, 17 Apr 2019 13:23:01 +0200 Subject: [PATCH 4/5] Add comment to file containing the env --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 00a7aa380a300..17479a8f52973 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,6 +49,7 @@ RUN addgroup \ echo "git:$(dd if=/dev/urandom bs=24 count=1 status=none | base64)" | chpasswd ENV USER git +# See docker/etc/s6/gitea/default_env file for configurable env variable VOLUME ["/data"] From c32f773e16832ce2a5181900f8fda9555716c5f0 Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Wed, 17 Apr 2019 19:37:18 +0200 Subject: [PATCH 5/5] re-add default ENV GITEA_CUSTOM to Dockerfile --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 17479a8f52973..350b20a226051 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,6 +49,7 @@ RUN addgroup \ echo "git:$(dd if=/dev/urandom bs=24 count=1 status=none | base64)" | chpasswd ENV USER git +ENV GITEA_CUSTOM /data/gitea # See docker/etc/s6/gitea/default_env file for configurable env variable VOLUME ["/data"]