参数化docker exec psql -c命令的参数设置

问题描述 投票:1回答:1

我有一些命令的脚本,例如:

sudo docker exec $container psql -U postgres -c "CREATE DATABASE $gisdb ;"

$container参数没问题,但是我无法在$gisdb命令中使用CREATE DATABASE参数获得正确的值。还有其他方法吗,还是我需要重新设计此命令或使用硬编码值?

docker parameter-passing psql
1个回答
0
投票

数据库名称

根据PostgreSQL Documentation,创建数据库需要数据库名称

[CREATE DATABASE _ name _

因此,代码中的$gisdb-是创建的数据库的名称。您可以对该名称进行硬编码,但是您应该确切知道-哪个名称是硬编码。

因为通常,其他服务取决于数据库名称。因此,请查看您的代码手册。

摆脱sudo

您可以在sudo命令之前省略docker。只需将当前用户添加到docker组:

usermod -aG docker $USER

然后,登录后,您可以在没有docker的情况下运行sudo

© www.soinside.com 2019 - 2024. All rights reserved.