在 blog post 中关于创建 dockerized 开发环境,有一个部分给出了以下问题和第一段答案:
What type of build artifacts do you want?
The build artifact I wanted in this example was a running container. Either Compose or docker would have been appropriate tools to that end. In your scenario you might prefer to have a distributable image, or you might prefer that the build produce a binary on your host operating system.
我阅读了 another question artifact 可以是在一个过程中创建的任何东西。通过阅读其他答案,似乎使用该术语的上下文很重要。
在使用 Docker 的上下文中创建开发环境,build artifact是什么意思?
最佳答案
简而言之我会说:Environment + Compiled output = Artifact
。
即完整的环境,包括构建源代码(image)所需的所有工具、依赖项等,+ 实际构建/编译的结果(runnables/libs),后者存储在前者中!
这样,万一发生崩溃/错误,一切都准备就绪,无论问题发生在什么尘土飞扬的旧版本软件上,都可以随时进行调试。 *
*:我没有在上面的描述中包含来源,但这也可能更可取。否则,由于我们都使用版本控制,所以如果需要,它可以在以后挂载。
工件与图像:
(来自评论的注释)
“Artifact”只是一个词,表示所生产的东西;在这种情况下,开发软件时的副产品。因此,runnables/libs 是编译源代码时产生的工件,而图像是整个“构建”步骤产生的工件,基本上是包含一个或多个其他工件的工件!
当您开始使用自动化构建、测试和部署管道 (AKA Continuous Delivery) 时,这更有意义。
注一:
这将是最终结果,因此在此之前如何选择设置任何步骤取决于您(split-image approach 等)。
注2:
我最近才开始将 docker 与持续交付相结合,所以这些只是我最初的两分钱 :)
关于docker - 在 dockerized 开发环境的上下文中, "build artifact"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42479620/