使用 docker exec 命令将较长的参数传递给 shell 脚本

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

我必须传递多个参数,某些参数需要向 docker 容器内的脚本 runenv.sh 进行冗长的输入,这超出了参数传递的最大长度。

我如何传递以下参数来运行 runenv.sh 脚本以在 docker 镜像 int_lnxenv 中执行。

docker container exec -i int_lnxenv sh runenv.sh -hosts=pchost1,pchost2,pchost3,pchost4,pchost5,pchost6,pchost7,pchost8 -dhosts=host1.domain.google.internal.example.com,host2.domain.google.internal.example.com,host3.domain.google.internal.example.com,host4.domain.google.internal.example.com,host5.domain.google.internal.example.com,host6.domain.google.internal.example.com,host7.domain.google.internal.example.com,host8.domain.google.internal.example.com -dports=8000,8001,8002,8003,8004,8005,8006,8007 -pnumber=35642822 -username=general -password=abcd123xyz -version=12.4.2 -paction=download -hosttype=linux -ptype=default -phomes=Both -phosts= -advanceparam=envparam1:envariable1,envparam2:envariable3,envparam2:envariable3,envparam4:envariable4,envparam5:envariable5,,envparam6:envariable6,envparam7:envariable7 -advancecliopts=testingpurpose 

当传递较少的参数时,脚本工作正常,但某些条件需要传递此扩展参数,这使得 docker exec 无法传递命令。

如何解决 docker exec 输入较长的问题 和多个参数?

linux docker arguments
1个回答
0
投票

您可以使用

--env-file
来存储值,然后最终创建另一个脚本,将环境变量转换为
runenv.sh
的命令行参数(如果无法从 env 获取)。

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