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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 ViViDboarder
						ViViDboarder