无法使用来自 Dockerfile 的参数执行 shell 脚本

Unable to execute shell script with parameter from Dockerfile

我正在创建一个 Dockerfile 来自定义一个名为 jboss/wildfly 的图像。我需要执行以下命令:

/opt/jboss/wildfly/bin/jboss-cli.sh --file=/opt/jboss/wildfly/bin/add-datasource.cli

当翻译成 Dockerfile 时,该命令在我的主机上运行良好:

CMD ["/opt/jboss/wildfly/bin/jboss-cli.sh", "--file=","/opt/jboss/wildfly/bin/add-datasource.cli"]

返回以下错误:

'add-datasource.cli' is assumed to be a command(s) but the commands to execute have been specified by another argument: [--file]

有什么帮助吗?

问题在于您使用的语法。您错误地拆分了 --file=。您需要:

CMD ["/opt/jboss/wildfly/bin/jboss-cli.sh", "--file=/opt/jboss/wildfly/bin/add-datasource.cli"]

CMD ["/opt/jboss/wildfly/bin/jboss-cli.sh", "--file", "/opt/jboss/wildfly/bin/add-datasource.cli"]

您指定的命令将解析为 --file= /opt/...,这不是有效的命令行。