docker - 在 dockerized 开发环境的上下文中, "build artifact"是什么意思?

标签 docker build developer-tools

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/

相关文章:

google-chrome - 页面底部的 Google Chrome 和 FB Like 按钮

docker - 运行和启动 Docker 容器的区别

docker - CMD 在 Dockerfile 中的 ENTRYPOINT 后不运行

docker - 如何在不创建新镜像的情况下升级 docker 镜像?

git - 使用例如构建源代码后的清理策略。混帐

android - 在手机上安装应用程序时出现平台不兼容和包不兼容错误

php - Laravel 5.4.36无法在AWS ECS容器上注册新用户正常工作

python - 在不运行测试的情况下制作(从源代码安装)python

javascript - 在 Chrome 开发者工具中同时查看和暂停 JS、CSS 和 HTML

html - 为什么某些 HTML 元素在开发人员工具中显示为灰色?