如何在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), ... ] ];
这看起来是一个明智的做法吗?