gpt4 book ai didi

postgresql - Docker exec - 无法使用环境变量调用 postgres

转载 作者:行者123 更新时间:2023-12-02 19:15:58 29 4
gpt4 key购买 nike

我在我的 Postgres 容器上定义了多个环境变量,例如 POSTGRES_USER。容器正在运行,我想使用 exec 从命令行连接到 Postgres。

我无法连接到以下设备:

docker exec -it <CONTAINER-ID> psql -U $POSTGRES_USER -d <DB NAME>

我知道该变量是在容器上定义的,并且以下内容确实有效:

docker exec -it <CONTAINER-ID> bash -c 'psql -U $POSTGRES_USER  -d <DB NAME>'

有没有办法直接从docker exec执行psql命令,调用容器上的环境变量?

docker exec -it <CONTAINER-ID> psql -U ????? -d <DB NAME>

最佳答案

根据您的用例,您可以做的不是将用户传递给 psql 命令,而是定义 environment variable PGUSER在启动时发送到容器。

这样,如果您没有指定任何用户,它将成为 PostgreSQL 的默认用户,因此您甚至不必指定它即可连接:

$ docker run --name postgres -e POSTGRES_PASSWORD=bar -e POSTGRES_USER=foo -e PGUSER=foo -d postgres
e250f0821613a5e2021e94772a732f299874fc7a16b340ada4233afe73744423

$ docker exec -ti postgres psql -d postgres
psql (12.4 (Debian 12.4-1.pgdg100+1))
Type "help" for help.

postgres=#

关于postgresql - Docker exec - 无法使用环境变量调用 postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63492860/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com