将文件添加到 docker 容器以在启动期间使用

Hub*_*ber 1 docker dockerfile docker-compose

是否可以run在容器启动期间使用的操作期间向docker容器提供文件?

基本上我想提供类似于一个txt文件plugins.txt詹金斯泊坞窗到Tomcat服务器。该文件应包含name:version要在容器启动期间下载的 .war 和 .jar 文件的名称和版本 ( )。我希望这种设置能够更灵活地为客户提供定制的容器,而不是拥有客户特定的图像。但对我来说最大的问题是:

  1. 我可以在容器启动期间提供这样的文件吗?
  2. 我应该如何处理文件和/或容器的版本控制,以便能够检查客户特定容器包含的内容?
  3. 还有什么我应该考虑的吗?

BMi*_*tch 5

您可以将单个文件作为卷挂载到容器中:

docker run -v `pwd`/conf.txt:/app/conf.txt my_app
Run Code Online (Sandbox Code Playgroud)

这需要在 docker 主机本身上运行,或者在 Windows/MacOS 上的用户目录下运行。您还可以在 docker 中创建一个命名卷,您可以在其中存储这些文件并通过临时容器进行更新。

对于这些卷挂载,您确实需要注意权限,容器内的 uid 可能与主机上的 uid 不匹配。您还可以挂载只读文件,:ro并在卷挂载后附加一个简单的内容。