我正在获得有关 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/