From d545e32b5623b12ed2c4405be2484ffdfa9432e5 Mon Sep 17 00:00:00 2001 From: Tao Wang Date: Tue, 31 Oct 2017 19:55:46 +1100 Subject: [PATCH] Add environment variable support for Docker image (#2201) * Add `gettext` dependencies as we need `envsubst` command; * Modified s6's gitea setup script, instead of `cp` the template if no `app.ini` exist, it will substitude the envvars and generate the new `app.ini`; * Make `/docker/etc/templates/app.ini` a template contains environment variables; Signed-off-by: Tao Wang --- Dockerfile | 1 + Dockerfile.aarch64 | 1 + Dockerfile.rpi | 1 + docker/etc/s6/gitea/setup | 24 +++++++++++++++++++++++- docker/etc/templates/app.ini | 17 ++++++++++++++++- 5 files changed, 42 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4e394bfe6..3db023ca3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,7 @@ RUN apk --no-cache add \ s6 \ curl \ openssh \ + gettext \ tzdata RUN addgroup \ -S -g 1000 \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index f76a2663d..5c6746d58 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -14,6 +14,7 @@ RUN apk --no-cache add \ s6 \ curl \ openssh \ + gettext \ tzdata RUN addgroup \ -S -g 1000 \ diff --git a/Dockerfile.rpi b/Dockerfile.rpi index 12874f7de..17ff4430e 100644 --- a/Dockerfile.rpi +++ b/Dockerfile.rpi @@ -14,6 +14,7 @@ RUN apk --no-cache add \ s6 \ curl \ openssh \ + gettext \ tzdata RUN addgroup \ -S -g 1000 \ diff --git a/docker/etc/s6/gitea/setup b/docker/etc/s6/gitea/setup index 27ca49db3..30884bc41 100755 --- a/docker/etc/s6/gitea/setup +++ b/docker/etc/s6/gitea/setup @@ -12,7 +12,29 @@ fi if [ ! -f /data/gitea/conf/app.ini ]; then mkdir -p /data/gitea/conf - cp /etc/templates/app.ini /data/gitea/conf/app.ini + + # 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 + APP_NAME=${APP_NAME:-"Gitea: Git with a cup of tea"} \ + APP_MODE=${APP_MODE:-"dev"} \ + 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"} \ + SECRET_KEY=${SECRET_KEY:-""} \ + envsubst < /etc/templates/app.ini > /data/gitea/conf/app.ini fi chown -R git:git /data/gitea /app/gitea /data/git diff --git a/docker/etc/templates/app.ini b/docker/etc/templates/app.ini index 098794151..0dcf41be1 100644 --- a/docker/etc/templates/app.ini +++ b/docker/etc/templates/app.ini @@ -1,4 +1,6 @@ [repository] +APP_NAME = $APP_NAME +APP_MODE = $APP_MODE ROOT = /data/git/repositories [repository.upload] @@ -6,10 +8,19 @@ TEMP_PATH = /data/gitea/uploads [server] APP_DATA_PATH = /data/gitea +SSH_DOMAIN = $SSH_DOMAIN +HTTP_PORT = $HTTP_PORT +ROOT_URL = $ROOT_URL +DISABLE_SSH = $DISABLE_SSH +SSH_PORT = $SSH_PORT [database] -DB_TYPE = sqlite3 PATH = /data/gitea/gitea.db +DB_TYPE = $DB_TYPE +HOST = $DB_HOST +NAME = $DB_NAME +USER = $DB_USER +PASSWD = $DB_PASSWD [session] PROVIDER_CONFIG = /data/gitea/sessions @@ -22,3 +33,7 @@ PATH = /data/gitea/attachments [log] ROOT_PATH = /data/gitea/log + +[security] +INSTALL_LOCK = $INSTALL_LOCK +SECRET_KEY = $SECRET_KEY