From e93f5fada88d4f46dd7cf55be962b2b7751fad2e Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Wed, 24 May 2023 11:37:22 +0800 Subject: [PATCH] Make environment-to-ini support loading key value from file (#24832) Replace #19857 Close #19856 Close #10311 Close #10123 Major changes: 1. Move a lot of code from `environment-to-ini.go` to `config_env.go` to make them testable. 2. Add `__FILE` support 3. Update documents 4. Add tests --- doc/installation/with-docker-rootless.en-us.md | 13 +++++++++++-- doc/installation/with-docker.en-us.md | 13 +++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/doc/installation/with-docker-rootless.en-us.md b/doc/installation/with-docker-rootless.en-us.md index e1073a1d..b8c76438 100644 --- a/doc/installation/with-docker-rootless.en-us.md +++ b/doc/installation/with-docker-rootless.en-us.md @@ -286,9 +286,18 @@ docker-compose up -d ## Managing Deployments With Environment Variables -In addition to the environment variables above, any settings in `app.ini` can be set or overridden with an environment variable of the form: `GITEA__SECTION_NAME__KEY_NAME`. These settings are applied each time the docker container starts. Full information [here](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini). +In addition to the environment variables above, any settings in `app.ini` can be set +or overridden with an environment variable of the form: `GITEA__SECTION_NAME__KEY_NAME`. +These settings are applied each time the docker container starts. +Full information [here](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini). -These environment variables can be passed to the docker container in `docker-compose.yml`. The following example will enable an smtp mail server if the required env variables `GITEA__mailer__FROM`, `GITEA__mailer__HOST`, `GITEA__mailer__PASSWD` are set on the host or in a `.env` file in the same directory as `docker-compose.yml`: +These environment variables can be passed to the docker container in `docker-compose.yml`. +The following example will enable a smtp mail server if the required env variables +`GITEA__mailer__FROM`, `GITEA__mailer__HOST`, `GITEA__mailer__PASSWD` are set on the host +or in a `.env` file in the same directory as `docker-compose.yml`. + +The settings can be also set or overridden with the content of a file by defining an environment variable of the form: +`GITEA__section_name__KEY_NAME__FILE` that points to a file. ```bash ... diff --git a/doc/installation/with-docker.en-us.md b/doc/installation/with-docker.en-us.md index 043a10c0..e70a6ab1 100644 --- a/doc/installation/with-docker.en-us.md +++ b/doc/installation/with-docker.en-us.md @@ -287,9 +287,18 @@ docker-compose up -d ## Managing Deployments With Environment Variables -In addition to the environment variables above, any settings in `app.ini` can be set or overridden with an environment variable of the form: `GITEA__SECTION_NAME__KEY_NAME`. These settings are applied each time the docker container starts. Full information [here](https://github.com/go-gitea/gitea/tree/master/contrib/environment-to-ini). +In addition to the environment variables above, any settings in `app.ini` can be set +or overridden with an environment variable of the form: `GITEA__SECTION_NAME__KEY_NAME`. +These settings are applied each time the docker container starts. +Full information [here](https://github.com/go-gitea/gitea/tree/master/contrib/environment-to-ini). -These environment variables can be passed to the docker container in `docker-compose.yml`. The following example will enable an smtp mail server if the required env variables `GITEA__mailer__FROM`, `GITEA__mailer__HOST`, `GITEA__mailer__PASSWD` are set on the host or in a `.env` file in the same directory as `docker-compose.yml`: +These environment variables can be passed to the docker container in `docker-compose.yml`. +The following example will enable an smtp mail server if the required env variables +`GITEA__mailer__FROM`, `GITEA__mailer__HOST`, `GITEA__mailer__PASSWD` are set on the host +or in a `.env` file in the same directory as `docker-compose.yml`. + +The settings can be also set or overridden with the content of a file by defining an environment variable of the form: +`GITEA__section_name__KEY_NAME__FILE` that points to a file. ```bash ...