将Dockerfile保存在项目中的位置?

Luc*_*uke 34 jenkins docker

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

  • Dockerfile在项目中保存在哪里?
    • 他们是否与来源保持联系?
    • 它们是否在源头之外?你是否只为Dockerfile拥有一个自己的Git存储库?

如果CI服务器应为每个构建创建一个新映像并在测试服务器上运行它,那么您是否保留上一个映像?我的意思是,您是否标记了上一张图片,还是在创建新图片之前删除了上一张图片?

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

sea*_*mcl 15

保留Dockerfile的唯一限制是,添加到映像的任何文件都必须位于文件系统中的Dockerfile下面.我通常在顶级项目中看到它们,虽然我有一个回购,它结合了一堆小图像,我有类似的东西

top/
  project1/
    Dockerfile
    project1_files
  project2/
    Dockerfile
    project2_files  
Run Code Online (Sandbox Code Playgroud)

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