在生成期间,将参数传递到通过Dockerfile运行的脚本中

在生成期间,将参数传递到通过Dockerfile运行的脚本中,docker,dockerfile,Docker,Dockerfile,我有一个脚本或“控制台”,在docker构建期间通过Dockerfile启动。运行此命令时,它会正常运行并打开其交互式提示。我的问题是,我似乎无法将命令传递到交互式提示中 以下是我的dockerfile中重要的部分: RUN ./iiq console RUN import init.xml RUN quit 我希望看到init.xml带来的依赖项,但我得到的是: Step 24/26 : RUN ./iiq console ---> Running in d1

我有一个脚本或“控制台”,在docker构建期间通过Dockerfile启动。运行此命令时,它会正常运行并打开其交互式提示。我的问题是,我似乎无法将命令传递到交互式提示中

以下是我的dockerfile中重要的部分:

    RUN ./iiq console
    RUN import init.xml
    RUN quit
我希望看到init.xml带来的依赖项,但我得到的是:

Step 24/26 : RUN ./iiq console
 ---> Running in d1bf75e69674
Setting iiq.hostname to d1bf75e69674-console
> Removing intermediate container d1bf75e69674
 ---> 3832361dee0e
Step 25/26 : RUN import init.xml
 ---> Running in 8a3cd63c7789
/bin/sh: import: command not found

步骤中的大于号符号是打开这个控制台并等待输入。看起来,我只是不确定如何正确地发送它。我可以在没有这个步骤的情况下构建我的容器,并手动进行,这样它就可以正常工作。

Docker构建过程是完全非交互式的

但我是用另一种方式来做的,你可以在你的脚本中尝试

testargs.sh

#!/bin/ash

echo "Arg is $1"
这是我的文件

FROM alpine
copy testargs.sh /testargs.sh
RUN chmod +x /testargs.sh
ARG arg1
RUN ./testargs.sh $arg1
现在构建上面的dockerfile

docker build --no-cache --build-arg arg1=testingarg1 -t test .
正如您所看到的,它不是交互式的,但至少它接受动态参数