Browse Source

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>
for-closed-social
Tao Wang 7 years ago
committed by Lunny Xiao
parent
commit
d545e32b56
5 changed files with 42 additions and 2 deletions
  1. +1
    -0
      Dockerfile
  2. +1
    -0
      Dockerfile.aarch64
  3. +1
    -0
      Dockerfile.rpi
  4. +23
    -1
      docker/etc/s6/gitea/setup
  5. +16
    -1
      docker/etc/templates/app.ini

+ 1
- 0
Dockerfile 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 \

+ 1
- 0
Dockerfile.aarch64 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 \

+ 1
- 0
Dockerfile.rpi 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 \

+ 23
- 1
docker/etc/s6/gitea/setup 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

+ 16
- 1
docker/etc/templates/app.ini 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

Loading…
Cancel
Save