Add ability to override any configs with env
Use environemnt variables to override any value in config.php Also, locked version on the ubuntu image to something that actually builds.
This commit is contained in:
parent
adacce4ba1
commit
6f3dff46d1
@ -1,4 +1,4 @@
|
||||
FROM ubuntu
|
||||
FROM ubuntu:14.04
|
||||
MAINTAINER Christian Lück <christian@lueck.tv>
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y \
|
||||
|
12
README.md
12
README.md
@ -164,6 +164,18 @@ For more information check out the [official documentation](https://github.com/g
|
||||
-e SELF_URL_PATH=https://example.org/ttrss
|
||||
```
|
||||
|
||||
### Additional configuration
|
||||
|
||||
In addition to the environement variables above, it is possible to override any value in the `config.php`
|
||||
by using another environment variable. Prefix the config value you want to override with `CONFIG_`
|
||||
and it will replace the default value on container creation.
|
||||
|
||||
For example, to add the `auth_external` plugin, set the following variable:
|
||||
|
||||
```
|
||||
-e CONFIG_PLUGINS='auth_internal, note, auth_external'
|
||||
```
|
||||
|
||||
### Testing ttrss in foreground
|
||||
|
||||
For testing purposes it's recommended to initially start this container in foreground.
|
||||
|
@ -63,7 +63,7 @@ if (!dbcheck($config)) {
|
||||
$super['DB_NAME'] = null;
|
||||
$super['DB_USER'] = env('DB_ENV_USER', 'docker');
|
||||
$super['DB_PASS'] = env('DB_ENV_PASS', $super['DB_USER']);
|
||||
|
||||
|
||||
$pdo = dbconnect($super);
|
||||
|
||||
if ($super['DB_TYPE'] === 'mysql') {
|
||||
@ -75,7 +75,7 @@ if (!dbcheck($config)) {
|
||||
}
|
||||
|
||||
unset($pdo);
|
||||
|
||||
|
||||
if (dbcheck($config)) {
|
||||
echo 'Database login created and confirmed' . PHP_EOL;
|
||||
} else {
|
||||
@ -100,6 +100,15 @@ catch (PDOException $e) {
|
||||
unset($pdo);
|
||||
}
|
||||
|
||||
$config_prefix = 'CONFIG_';
|
||||
foreach ($_SERVER as $name => $value) {
|
||||
if (strpos($name, $config_prefix) === 0) {
|
||||
$name = substr($name, strlen($config_prefix));
|
||||
echo 'Getting config from env: ' . $name . PHP_EOL;
|
||||
$config[$name] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$contents = file_get_contents($confpath);
|
||||
foreach ($config as $name => $value) {
|
||||
$contents = preg_replace('/(define\s*\(\'' . $name . '\',\s*)(.*)(\);)/', '$1"' . $value . '"$3', $contents);
|
||||
@ -109,11 +118,11 @@ file_put_contents($confpath, $contents);
|
||||
function env($name, $default = null)
|
||||
{
|
||||
$v = getenv($name) ?: $default;
|
||||
|
||||
|
||||
if ($v === null) {
|
||||
error('The env ' . $name . ' does not exist');
|
||||
}
|
||||
|
||||
|
||||
return $v;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user