Pouziti promenne v config.neon

haagen6000
Člen | 2
+
0
-

Ahoj vsem,

pokousim se prekopat jednu starsi aplikaci psanou v nette (nepsal jsem ji, nette neznam a delam s nim poprve) tak, aby bezela v dockeru bez ruznych hacku (typu generovani konfigu z ENV promennych pri startu kontejneru atp.)

Snazim se do konfiguraku config.neon narvat ENV promenne, pricemz se mi to castecne povedlo pomoci tohoto modulu: https://github.com/…nette-dotenv

Nicmene jsem narazil na problem, kdy se v pripade, ze dosazuju @env::get promennou do DSN pri konfiguraci DB, promenna nevyhodnoti:

	database: # database connection
		dsn: 'pgsql:host=@env::get("POSTGRES_HOST");dbname=@env::get("POSTGRES_DATABASE")' //NOK
		user: @env::get('POSTGRES_USER') //OK
		password: @env::get('POSTGRES_PASSWORD') //OK

Nenapada vas nekoho spravne kombo uvozovek, escapu atd. tak, aby se vse korektne vyhodnotilo?

Predem moc diky!

David Matějka
Moderator | 6445
+
0
-

Ahoj, pouzij dynamicke parametry

haagen6000
Člen | 2
+
0
-

Diky moc! @DavidMatějka

Nakonec je to hezci, nez jsme cekal a neni k tomu potreba extra modul, za me +.

Kdyby na to v budoucnu nekdo narazil, tak do bootstrap.php (coz nevim, zda je standardni nette soubor, ale v te apce co resim, to tak je) stacilo pridat.

$configurator->addDynamicParameters([
	'env' => getenv(),
]);

a nasledne v config.neon

	database: # database connection
		dsn: 'pgsql:host=%env.POSTGRES_HOST%;dbname=%env.POSTGRES_DATABASE%'
		user: %env.POSTGRES_USER%
		password: %env.POSTGRES_PASSWORD%