]> source.dussan.org Git - gitea.git/commitdiff
Add environment variable support for Docker image (#2201)
authorTao Wang <twang2218@gmail.com>
Tue, 31 Oct 2017 08:55:46 +0000 (19:55 +1100)
committerLunny Xiao <xiaolunwen@gmail.com>
Tue, 31 Oct 2017 08:55:46 +0000 (16:55 +0800)
* 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>
Dockerfile
Dockerfile.aarch64
Dockerfile.rpi
docker/etc/s6/gitea/setup
docker/etc/templates/app.ini

index 4e394bfe6f53410637174c8d16d62ff7af6dccf0..3db023ca3bac9c207bfd55fe9aa807a0b10a0b27 100644 (file)
@@ -14,6 +14,7 @@ RUN apk --no-cache add \
     s6 \
     curl \
     openssh \
+    gettext \
     tzdata
 RUN addgroup \
     -S -g 1000 \
index f76a2663d2fc29f639f103306bf827a71bc6a80b..5c6746d58483bacad1eca519cb89cc6705aa52b2 100644 (file)
@@ -14,6 +14,7 @@ RUN apk --no-cache add \
     s6 \
     curl \
     openssh \
+    gettext \
     tzdata
 RUN addgroup \
     -S -g 1000 \
index 12874f7deff0f04ce338108ef41e1b203b88dc87..17ff4430e5859694691ddc3e0e0c543e82c61fbd 100644 (file)
@@ -14,6 +14,7 @@ RUN apk --no-cache add \
     s6 \
     curl \
     openssh \
+    gettext \
     tzdata
 RUN addgroup \
     -S -g 1000 \
index 27ca49db307aa375e1d1b1604fb1951e9337dc33..30884bc4117156e1eea812985498a58e62fd19ed 100755 (executable)
@@ -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
index 0987941519965fe82f2a0482af7c8a31b86157a6..0dcf41be1481e711276448e56350257f90786d65 100644 (file)
@@ -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