Docker CMD指令执行
我的docker文件有以下说明
CMD ["luarocks","install",luasocket"]
当我尝试构build映像时,它会成功构build,但luasocket
尚未安装在我的泊坞窗上。
但是当我在docker上的“ sudo apt-get update
”之后手动执行这个语句时,一切都很顺利。
为什么在命令行上手动“更新”后,它正在被正确执行。 即使我的docker包含“ update
”命令,为什么在这种情况下失败?
但是当我在docker上的“sudo apt-get update”之后手动执行这个语句的时候,每一件事情都很顺利
如果你在一个容器会话中执行一个sudo apt-get update
(例如,在docker run
), apt-get
命令完成的任何操作都将在下一个docker run
(下一个容器)时被重置。
请确保在Dockerfile中包含RUN apt-get update
,如果命令luarocks install luasocket
需要它成功完成。
更一般地说,这个安装命令( luarocks install luasocket
)不应该是一个CMD
,而是一个RUN
指令,以便将镜像安装到luasocket
。