【发布时间】:2021-10-20 12:54:52
【问题描述】:
我正在处理一个使用 psql 连接到 postgres 的 docker 映像。
我的入口点:
psql analytics \
--host=${INPUT_HOST} \
--username=analytics \
--port=32648
如果我运行它,系统会提示我输入密码,我输入它并能够连接。太好了。
但如果我尝试自动输入密码,我会收到错误:
psql analytics \
--host=${INPUT_HOST} \
--username=analytics \
--port=32648 \
--password=${INPUT_PASSWORD}
/usr/lib/postgresql/13/bin/psql: 选项 '--password' 不允许参数 尝试“psql --help”以获取更多信息。
我发现了一些关于使用 .pgpass 的文档,这个要添加到用户主目录的文件采用以下形式:
hostname:port:database:username:password
现在我将不得不做类似的事情:
${INPUT_HOST}:5432:analytics:analytics:${INPUT_PASSWORD}
然后在添加到图像之前对该文件进行 envsubst 或 sed。
开放式问题,有没有更好/更方便的方法? ${INPUT_PASSWORD} 来自 docker 机密。无论如何我可以将密码传递给我对 psql 的调用吗?
【问题讨论】:
标签: psql