docker - 将 Dockerfile 保存在项目中的什么位置?

标签 docker jenkins

我正在获得有关 Docker 的知识,我有以下问题

  • Dockerfile 保存在项目中的什么位置?
    • 它们是否与源一起保存?
    • 它们是否保留在源代码之外?您是否有自己的 Git 存储库仅用于 Dockerfile?

如果 CI 服务器应该为每个构建创建一个新镜像并在测试服务器上运行它,你会保留之前的镜像吗?我的意思是,您是在创建新图像之前标记之前的图像还是删除之前的图像?

我是一名 Java EE 开发人员,所以我会使用 Maven、Jenkins 等。

最佳答案

对 Dockerfile 保存位置的唯一限制是,您添加到镜像中的任何文件都必须位于文件系统中的 Dockerfile 之下。我通常会在项目的顶层看到它们,尽管我有一个结合了一堆小图像的存储库,其中我有类似的东西

top/
  project1/
    Dockerfile
    project1_files
  project2/
    Dockerfile
    project2_files  

Jenkins docker 插件可以使用 Dockerfile 指向任意目录,所以这很容易。至于 CI,我见过的最常见的策略是将使用 CI 构建的每个图像标记为“最新”。如果您不向构建添加标签,这是默认设置。然后发布有自己的标签。因此,如果你只是运行一个不带参数的图像,你会得到 CI 构建的最后一个图像,但如果你想要一个特定的版本,很容易这么说。

关于docker - 将 Dockerfile 保存在项目中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27387811/

相关文章:

docker - 是否可以在minikube中放置固定的IP和端口?

docker - 不带systemd的CentOS 7 Docker镜像中的服务

terminal - 从终端杀死 iOS 模拟器

java - Jenkins 作业的 Cron 表达式

mongodb - 用于连接在 docker 中运行的应用程序的数据库连接路径

docker - 如何在 python docker sdk 中使用 exec_run 来替换我的 docker cli 命令

docker - 从标签名称获取容器ID

maven - 当 docker-maven 插件尝试构建镜像时会发生什么?

ios - Xcode 5 Storyboard编译失败

jenkins - BitBucket Webhook 在发布到 Jenkins 时出现 Crumb 问题