【问题标题】:Docker CMD instruction executionDocker CMD指令执行
【发布时间】:2016-09-06 19:33:24
【问题描述】:

我的 docker 文件有以下说明

CMD ["luarocks","install",luasocket"]

当我尝试构建映像时,它会成功构建,但 luasocket 尚未安装在我的 docker 上。
但是,当我在 docker 上的“sudo apt-get update”之后手动执行此语句时,一切都很顺利。

为什么在命令行上手动“更新”后正确执行。即使我的 docker 包含“update”命令,为什么在这种情况下它会失败?

【问题讨论】:

    标签: docker apt-get luarocks


    【解决方案1】:

    但是当我在 docker 上的“sudo apt-get update”之后手动执行这个语句时,一切都很顺利

    如果您在容器 会话中执行sudo apt-get update(即,在docker run 之后),apt-get 命令所做的任何事情都将在下一个docker run 时重置(下一个容器)。

    如果命令 luarocks install luasocket 需要它成功完成,请确保在 Dockerfile 中包含 RUN apt-get update

    更一般地说,此安装命令 (luarocks install luasocket) 不应是 CMD,而是 RUN 指令,以便将 luasocket 的安装烘焙到映像中。

    【讨论】:

      猜你喜欢
      • 2019-03-14
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多