docker - 参数化 docker exec psql -c 命令
问题描述
我有这个脚本,其中包含一些命令,例如:
sudo docker exec $container psql -U postgres -c "CREATE DATABASE $gisdb ;"
$container
参数没问题,但我无法通过命令中的$gisdb
参数读取正确的值。CREATE DATABASE
是否有可能以任何其他方式或我需要重新设计此命令或使用硬编码值?
解决方案
数据库名称
根据PostgreSQL Documentation,创建数据库需要数据库的名称
CREATE DATABASE _
姓名_
因此,$gisdb
在您的代码中 - 是创建的数据库的名称。你可以硬编码这个名字,但你应该确切地知道 -你硬编码了哪个名字。
因为,通常,其他服务取决于数据库名称。因此,请检查您的代码手册。
摆脱sudo
您可以在命令sudo
之前省略。docker
只需将当前用户添加到docker
组中:
usermod -aG docker $USER
然后,登录后,您将能够在docker
没有sudo
推荐阅读
- wordpress - 从 REST API 创建订单时,WooCommerce woocommerce_new_order 未触发
- php - 运行作曲家时如何修复“dyld:未加载库”错误?
- php - PHP邮件功能正在发送空白邮件正文
- android - 如果两者具有相同的键,如何对 HashMap 进行排序?
- angular - 无法在单选按钮上使用 ngForm 绑定数据
- reactjs - 反应在数组中渲染图像数组
- javascript - 在没有初始属性的情况下更新处于 React 状态的对象的方法是什么?
- postgresql - 如何将表从 PostgreSQL 导入 SAP Hana?
- c# - Azure 逻辑应用在触发时触发两次
- javascript - 如何在reactjs中创建一个调用标签的函数?