1

我的 docker 文件有以下说明

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

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

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

4

1 回答 1

1

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

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

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

更一般地说,这个安装命令 ( luarocks install luasocket) 不应该是一个CMD,而是一个RUN指令,以便将luasocket.

于 2016-05-11T12:40:24.003 回答