如何在PHP代码中使用Docker的秘密?

在PHP脚本中使用Docker机密的最佳实践是什么?

使用案例:我有一个Docker堆栈,它由(1)基于图像的web服务组成,它将php与apache服务器连接起来,(2)基于最新的mysql映像的db服务。

在我的web服务的/ var / www / html中,我有一个config.php,它定义了许多表示数据库连接参数(用户名,密码等)的variables。 这个config.php文件包含在整个代码库build立数据库连接的地方。 我有docker的秘密定义对应于我想在config.php中定义的每个参数 – 在config.php的定义中使用这些秘密的最佳方法是什么?

默认情况下,每个docker机密都被挂载到文件/run/secrets/<secret name>

我天真的解决scheme只是简单地使用fopen()和fgets(),如下所示:

 function getSecret($secret){ $secret_file = fopen("/run/secrets/{$secret}"); $secret = fgets($secret_file); fclose($secret_file); return $secret; } 

config.php文件:

 return [ 'database' => [ 'host' => getSecret('db_host'), 'user' => getSecret('db_user'), 'password' => getSecret('db_password), ... ] ]; 

这看起来是一个明智的做法吗?