Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dockerfile:该命令在Dockerfile中工作,但在shell脚本中不工作_Docker_Shell_Liquibase - Fatal编程技术网

Dockerfile:该命令在Dockerfile中工作,但在shell脚本中不工作

Dockerfile:该命令在Dockerfile中工作,但在shell脚本中不工作,docker,shell,liquibase,Docker,Shell,Liquibase,我正在dockerfile中运行liquibase命令,并且该命令已成功执行 CMD liquibase/liquibase/--url=$My_url--username$username--password$password--loglevel=$LogL--changeLogFile/changes/postgresql.xml更新 但是,如果我执行这是一个sh脚本 liquibase/liquibase/--url=$My_url--username$username--password

我正在dockerfile中运行liquibase命令,并且该命令已成功执行

CMD liquibase/liquibase/--url=$My_url--username$username--password$password--loglevel=$LogL--changeLogFile/changes/postgresql.xml更新

但是,如果我执行这是一个sh脚本

liquibase/liquibase/--url=$My_url--username$username--password$password--loglevel=$LogL--changeLogFile/changes/postgresql.xml更新

然后我得到这个错误:

“(选项必须以“---”开头)e.integration.commandline.Main-运行Liquibase时出现意外错误:意外值”更新 “(选项必须以“---”开头)singException:意外值”更新

我不明白为什么这个命令在Dockerfile中按预期执行,但在shell脚本中仅部分运行。我的部分意思是,该命令确实打开了liquibase Jar文件并显示ASCII徽标。但随后我看到了“意外值更新”错误


知道如何更正shell脚本中的命令吗?

看起来在liquibase/liquibase/的末尾有多余的/。 此外,请确保定义了shell命令中使用的所有变量:

echo $My_URL
echo $Username
echo $Password
echo $LogL
如果没有,请通过

export Username=bob
export Password=caution_this_is_not_secure
export My_URL=...
...

看起来你在liquibase/liquibase/的末尾有多余的。 此外,请确保定义了shell命令中使用的所有变量:

echo $My_URL
echo $Username
echo $Password
echo $LogL
如果没有,请通过

export Username=bob
export Password=caution_this_is_not_secure
export My_URL=...
...

您是否可以编辑问题以包含一个,包括完整的shell脚本以及如何启动容器等详细信息?您是否运行了ShellCheck之类的工具来查找脚本中引用错误之类的内容?@CaptainKidd:在启用
-x
的情况下运行脚本,并发布您得到的确切错误消息。另外,请在您的问题中使用正确的代码格式,以便我们可以准确地看到空格。您是否可以编辑问题,使其包含完整的shell脚本以及如何启动容器等详细信息?您是否运行了ShellCheck之类的工具来查找脚本中引用错误之类的内容?@CaptainKidd:在启用
-x
的情况下运行脚本,并发布您得到的确切错误消息。另外,请在您的问题中使用正确的代码格式,以便我们可以准确地看到空格。虽然命令末尾确实有一个不必要的
/
,但这并不重要。例如,
/usr/bin/echo x
/usr/bin/echo/x
都是一样的。不,这不是真的,至少在Linux shell中是这样:user@chi:~$/bin/echo/x“将导致”-bash:/bin/echo/:不是目录“更正了结尾”/”你还没有检查环境变量是否设置好吗?@ValeryPanov:也许这取决于bash版本?我可以用MacOS上的bash 3.2来证实你的发现,但它在Cygwin下的bash上运行得很好,Cygwin大约是4.x(我现在无法访问那台计算机,所以我无法检查确切的版本)。虽然命令末尾确实有一个不必要的
/
,但这不重要。例如,
/usr/bin/echo x
/usr/bin/echo/x
都是一样的。不,这不是真的,至少在Linux shell中是这样:user@chi:~$/bin/echo/x“将导致”-bash:/bin/echo/:不是目录“更正了结尾”/”你还没有检查环境变量是否设置好吗?@ValeryPanov:也许这取决于bash版本?我可以用MacOS上的Bash3.2来证实你的发现,但它在Cygwin下的bash上运行得很好,Cygwin大约是4.x(我现在无法访问那台计算机,所以我无法检查确切的版本)。