我可以创建一个不能覆盖或删除文件和文件夹的泊坞窗卷吗?

时间:2019-10-24 16:05:55

标签: docker docker-compose dockerfile docker-volume

是否可以仅在文件尚未退出的情况下将其写入我的卷中,并且永不删除我以前的文件?

我有一个Dockerfile,它创建一个名为bot的映像。在图像中,我有一个文件夹/models,该文件夹可以为空。 构建映像后,将其推送到Nexus / Dockerhub存储库。

要在我的VM上构建我的应用程序,我有一个docker-compose.yml,其中除其他外称为bot映像,还指定文件夹/models应该在一个卷中。

我的问题是,如果我先进行file_1然后{ {1}}由于容量原因,我保留了这些文件。但是,如果我有映像的新版本file_2,当我执行/models时,将调用映像的新版本(这几乎是我想要的),但是我将删除文件夹{{1 }},并从图片中添加新的docker-compose down文件夹。

因此,我想找到一种方法来写入卷中的文件,除非它们尚未退出并且永远不要删除我以前的文件。

docker-compose up -d

1 个答案:

答案 0 :(得分:0)

沿着@masseyb的注释行,我将在映像构建时执行任何文件检查,并在映像内写入一个小文件(甚至是要执行的shell脚本),以告诉我模型文件是否可写。然后,您在ENTRYPOINT中调用的脚本可以使用该文件执行适当的复制逻辑。

您还可以通过运行容器并查找您的构建步骤在其中写入的文件,来使撰写Shell脚本执行主机级检查。

希望这会有所帮助!