【问题标题】:How to inject a command into a dockerfile?如何将命令注入 dockerfile?
【发布时间】:2022-08-21 20:50:35
【问题描述】:

我有一个 dockerfile,我想在其中运行 bash 命令。该命令可以根据条件而有所不同。因此,我决定将此命令作为参数传递。

我可以在 RUN 中注入参数吗?

它看起来像这样:

RUN ${MYCOMMAND}

我还需要知道是否可以在 dockerfile 的同一层中运行多个命令。


编辑:-

我需要在 dockerfile 中安装一堆类似于pip install <app> 的应用程序。

如果我有 4 个应用程序,该命令将与此类似。

RUN pip install app_1 && \\ 
    pip install app_2 && \\ 
    pip install app_3 && \\ 
    pip install app_4 

但是,提供的应用程序列表是动态的。

这就是为什么我认为我可以将整组命令字符串作为参数注入。

  • 这有点可能(通过ARG directive)。然而,这听起来像XY porblem。你的用例是什么?
  • 是啊,你说得对。我会更新问题。
  • 通常,如果您有一长串要使用 pip 安装的东西,您可以通过创建一个名为 requirements.txt 的文件,将该文件复制到 Docker 容器中,然后运行 ​​pip install -r requirements.txt 来实现。

标签: docker dockerfile


【解决方案1】:

我最终使用了一个 for 循环。传递参数后 APP_LIST = "app1 app2 app3"

for app in ${APP_LIST}; do pip install $app; done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多