使用变量的 pgpass 文件?
pgpass file that uses variables?
我正在处理 docker 使用 psql 连接到 postgres 的映像。
我的入口点:
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: option '--password' doesn't allow an argument
Try "psql --help" for more information.
我找到了一些关于使用 .pgpass 的文档,这个要添加到用户主目录的文件采用以下形式:
hostname:port:database:username:password
现在我将不得不做类似的事情:
${INPUT_HOST}:5432:analytics:analytics:${INPUT_PASSWORD}
然后在添加到图像之前对该文件进行 envsubst 或 sed。
开放式问题,有没有better/more方便的方法? ${INPUT_PASSWORD}
来自 docker 秘密。无论如何,我可以将密码传递给我对 psql 的调用吗?
最好的方法是使用连接字符串:
psql "password='${INPUT_PASSWORD}' dbname=analytics host='${INPUT_HOST}' user=analytics port=32648"
我正在处理 docker 使用 psql 连接到 postgres 的映像。
我的入口点:
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: option '--password' doesn't allow an argument Try "psql --help" for more information.
我找到了一些关于使用 .pgpass 的文档,这个要添加到用户主目录的文件采用以下形式:
hostname:port:database:username:password
现在我将不得不做类似的事情:
${INPUT_HOST}:5432:analytics:analytics:${INPUT_PASSWORD}
然后在添加到图像之前对该文件进行 envsubst 或 sed。
开放式问题,有没有better/more方便的方法? ${INPUT_PASSWORD}
来自 docker 秘密。无论如何,我可以将密码传递给我对 psql 的调用吗?
最好的方法是使用连接字符串:
psql "password='${INPUT_PASSWORD}' dbname=analytics host='${INPUT_HOST}' user=analytics port=32648"