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 <twang2218@gmail.com>
This commit is contained in:
Tao Wang 2017-10-31 19:55:46 +11:00 committed by Lunny Xiao
parent b0b24a2dbb
commit d545e32b56
5 changed files with 42 additions and 2 deletions

View File

@ -14,6 +14,7 @@ RUN apk --no-cache add \
s6 \ s6 \
curl \ curl \
openssh \ openssh \
gettext \
tzdata tzdata
RUN addgroup \ RUN addgroup \
-S -g 1000 \ -S -g 1000 \

View File

@ -14,6 +14,7 @@ RUN apk --no-cache add \
s6 \ s6 \
curl \ curl \
openssh \ openssh \
gettext \
tzdata tzdata
RUN addgroup \ RUN addgroup \
-S -g 1000 \ -S -g 1000 \

View File

@ -14,6 +14,7 @@ RUN apk --no-cache add \
s6 \ s6 \
curl \ curl \
openssh \ openssh \
gettext \
tzdata tzdata
RUN addgroup \ RUN addgroup \
-S -g 1000 \ -S -g 1000 \

View File

@ -12,7 +12,29 @@ fi
if [ ! -f /data/gitea/conf/app.ini ]; then if [ ! -f /data/gitea/conf/app.ini ]; then
mkdir -p /data/gitea/conf 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 fi
chown -R git:git /data/gitea /app/gitea /data/git chown -R git:git /data/gitea /app/gitea /data/git

View File

@ -1,4 +1,6 @@
[repository] [repository]
APP_NAME = $APP_NAME
APP_MODE = $APP_MODE
ROOT = /data/git/repositories ROOT = /data/git/repositories
[repository.upload] [repository.upload]
@ -6,10 +8,19 @@ TEMP_PATH = /data/gitea/uploads
[server] [server]
APP_DATA_PATH = /data/gitea 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] [database]
DB_TYPE = sqlite3
PATH = /data/gitea/gitea.db PATH = /data/gitea/gitea.db
DB_TYPE = $DB_TYPE
HOST = $DB_HOST
NAME = $DB_NAME
USER = $DB_USER
PASSWD = $DB_PASSWD
[session] [session]
PROVIDER_CONFIG = /data/gitea/sessions PROVIDER_CONFIG = /data/gitea/sessions
@ -22,3 +33,7 @@ PATH = /data/gitea/attachments
[log] [log]
ROOT_PATH = /data/gitea/log ROOT_PATH = /data/gitea/log
[security]
INSTALL_LOCK = $INSTALL_LOCK
SECRET_KEY = $SECRET_KEY