环境 + 编译输出 = 构件
也就是说,完整的开发环境,包括所有构建源代码所需的工具、依赖等(镜像),以及由此构建/编译出来的可执行文件 / 库,后者存储在前者中!
这样,在出现崩溃/错误的情况下,无论该问题发生在软件的哪个版本上,您都可以调试它,因为一切都在那里供您使用。 *
*:上述描述中我没有包含源代码,但有时候也许需要。否则,既然我们都使用版本控制,如果有必要,它可以随后挂载。
(注释中的说明)
“构件”只是指开发软件时产生的副产品;在这种情况下,可执行文件 / 库是编译源代码时产生的构件,而镜像是整个“构建”步骤产生的构件,基本上是包含一个或多个其他构件的构件!
当你开始使用自动化构建、测试和部署流水线(也称为持续交付)时,这将变得更有意义。
注1:
这将是最终结果,因此你选择设置任何步骤直到这一点是由你决定的(分离镜像方法等)。
注2:
我最近刚开始尝试使用Docker与持续交付,所以这些只是我最初的想法 :)
就构建流水线而言,Artifact是在构建过程中生成的软件组件,存储在仓库中,最终部署到不同的环境中。
对于非docker化的Java应用程序,通常是JAR/WAR文件。 对于docker化的应用程序,通常是包含JAR/WAR文件的镜像。