假设我有如下安装说明:
如何在Dockerfile中表达它?
答案 0 :(得分:1)
这完全取决于他们需要重启的原因。对于Linux,重新启动计算机通常会指示内核修改,尽管它可能更简单,例如更改用户权限(可以通过注销再次返回来处理)。如果安装尝试将操作系统级别更改为内核,则在容器内部完成时应该会失败。默认情况下,容器隔离并限制应用程序可以对正在运行的主机操作系统执行的操作,这会影响主机或其他正在运行的容器。
如果重新启动是强制应用程序服务重新启动,您应该意识到此设计无法很好地映射到容器,因为每个RUN命令在隔离环境中仅运行该命令。通过仅运行该命令,这还表明通常在OS启动(cron,sendmail或您的应用程序)上启动的任何OS服务都不会在容器中启动。因此,除了重新启动任何相关服务之外,您还需要找到运行安装命令的方法。
我能想到的最后一个场景是他们希望不同的用户权限对登录用户生效。在这种情况下,下一个RUN命令将运行所请求的命令,并具有来自先前RUN命令的任何更改的访问权限。因此,您无需采取自己的任何特定操作来重新启动,只需执行安装步骤,就像每个步骤之间完全重新启动一样。