【问题标题】:How to use docker arguments as arguments to a function inside it如何使用 docker 参数作为其内部函数的参数
【发布时间】:2018-04-12 15:45:57
【问题描述】:

我正在尝试从 docker 映像中获取参数,然后我想将该参数用作 docker 内部函数的参数。

例如:

CMD ["python", "xyz.py","--input=/input_data","--output=/output_data"]

我想输入输入输出命令行的位置

CMD ["python", "add.py","--input1=4","--input2=5"]

我想从命令行输入 4 和 5 得到总和,这样我可以很好地概括我的 docker。

我该怎么做?

【问题讨论】:

  • 如果你在 Dockerfile CMD 语句中传递参数意味着一旦它们被读取,你必须构建 Docker 镜像然后运行它(作为一个容器)。这对我来说毫无意义。不将任何参数传递给 CMD 并让您的 python 程序在运行时读取这些参数不是更好吗,这样您就不必每次都构建图像?

标签: docker arguments parameter-passing command-line-arguments


【解决方案1】:

据我所知,在第二种情况下,您想要创建一个添加两个元素的容器。

如果我是对的,那么您现在想要执行的是: docker run add:latest 4 6

您需要做的是一个带有python add.py 的脚本,并将其作为入口点包含在内,而不是在 CMD 中。然后你可以调用:docker run add: latest 4 5 并得到两者的总和。

CMD 可以在docker run覆盖。看看这个帖子:

http://www.johnzaccone.io/entrypoint-vs-cmd-back-to-basics/

【讨论】:

  • 谢谢你,它有帮助!!!!。但是,我对参数的默认值有疑问。如果我想将其中一个参数更改为默认值,我需要编写所有输入参数,这很痛苦。
  • 您可以在 ENTRYPOINT 脚本中控制默认值。
猜你喜欢
  • 2021-03-27
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 2018-08-15
  • 1970-01-01
相关资源
最近更新 更多