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

标签 docker docker-compose dockerfile

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

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

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

最佳答案

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

docker run -v `pwd`/conf.txt:/app/conf.txt my_app

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

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

关于docker - 将文件添加到 docker 容器以在启动期间使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414965/

相关文章:

docker - docker-compose oci运行时错误启动容器进程导致对等方重置连接

docker-compose:记录到持久文件

入口点后 Docker 退出

docker - Dockerized elasticsearch和fscrawler:无法创建Elasticsearch客户端,禁用了搜寻器…连接被拒绝

java - 如何从 Spring Boot jar 构建 Docker 镜像

image - 使用docker-compose创建容器会删除另一个已经运行的容器

php - Erros使用PHP和Twig镜像Docker

docker - 从 docker 清理图像时出错

docker - 如何在单个容器中运行两个Docker镜像?

maven - 高级Docker和Dockerfile的卷/写出理解