我有一个使用脚本( /bin/bash /init.sh
)作为入口点的 Docker 映像。我只想在容器第一次启动时执行这个脚本。当容器在 docker 守护进程崩溃后重新启动或再次启动时,应该省略它。
有没有办法用 docker 本身来做到这一点,或者是否必须在脚本中实现某种检查?
原文由 user2995925 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个使用脚本( /bin/bash /init.sh
)作为入口点的 Docker 映像。我只想在容器第一次启动时执行这个脚本。当容器在 docker 守护进程崩溃后重新启动或再次启动时,应该省略它。
有没有办法用 docker 本身来做到这一点,或者是否必须在脚本中实现某种检查?
原文由 user2995925 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.5k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答1.7k 阅读
我有同样的问题,这里有一个简单的程序(即解决方法)来解决它:
步骤1:
创建一个包含以下代码的“myStartupScript.sh”脚本:
第2步:
将“# YOUR_JUST_ONCE_LOGIC_HERE”行替换为您希望仅在第一次启动容器时执行的代码
第 3 步:
将脚本设置为 Dockerfile 的入口点:
总之,逻辑非常简单,它检查文件系统中是否存在特定文件;如果没有,它会创建它并执行你的一次性代码。下次启动容器时,文件位于文件系统中,因此不会执行代码。