Docker 学习路线 12:开发者体验
到目前为止,我们只讨论了使用 Docker 来部署应用程序。然而,Docker 也是一个极好的用于开发应用程序的工具。可以采用一些不同的建议来改善开发体验。
在应用程序中使用
docker-compose
以方便开发。使用绑定挂载将本地代码挂载到容器文件系统中,以避免每次更改都需要重新构建容器映像。
对于自动重载,您可以使用像vite这样的工具用于客户端,nodemon用于 nodejs,或者air用于 golang。
您还应该提供一种调试应用程序的方式。例如,使用delve进行 Go 调试,在 node.js 中启用调试使用--inspect 标志等等。无论您使用什么,重点是您应该有一种方法来调试在容器内运行的应用程序。
您应该有一种在容器内运行测试的方法。例如,您可以有一个单独的 docker-compose 文件来运行测试。
您应该拥有一个用于生产映像的 CI 流水线。
每个拉取请求都应该有一个临时环境。
Hot Reloading in Docker
即使我们启用了层缓存以加速镜像构建,我们也不想在每次代码更改时都重建容器镜像。相反,我们希望容器中的应用程序状态立即反映更改。我们可以通过绑定挂载和热重新加载工具的组合来实现这一点!
在 Docker 中使用调试器
为了使容器开发与本地开发具有竞争力,我们需要能够在容器内运行和附加调试器。
测试
我们希望在尽可能接近生产环境的情况下运行测试,因此最好在容器内部进行测试!
持续集成(CI)
持续集成是指在将代码推送到版本控制系统时自动执行某些操作(例如构建、测试等)的理念。
对于容器,我们可能需要执行以下几个操作:
构建容器镜像
执行测试
扫描容器镜像的漏洞
给镜像打标签,附加有用的元数据
推送到容器注册表
最后
为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:
公众号 Let us Coding
,牛客,知乎,开源中国,CSDN,思否,掘金,InfoQ,简书,博客园,慕课,51CTO,helloworld,腾讯开发者社区,阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏和关注
到目前为止,我们只讨论了使用 Docker 来部署应用程序。然而,Docker 也是一个极好的用于开发应用程序的工具。可以采用一些不同的建议来改善开发体验。
在应用程序中使用
docker-compose
以方便开发。使用绑定挂载将本地代码挂载到容器文件系统中,以避免每次更改都需要重新构建容器映像。
对于自动重载,你可以使用像vite这样的工具用于客户端,nodemon用于 nodejs,或者air用于 golang。
你还应该提供一种调试应用程序的方式。例如,使用delve进行 Go 调试,在 node.js 中启用调试使用--inspect 标志等等。无论你使用什么,重点是你应该有一种方法来调试在容器内运行的应用程序。
你应该有一种在容器内运行测试的方法。例如,你可以有一个单独的 docker-compose 文件来运行测试。
你应该拥有一个用于生产映像的 CI 流水线。
每个拉取请求都应该有一个临时环境。
Hot Reloading in Docker
即使我们启用了层缓存以加速镜像构建,我们也不想在每次代码更改时都重建容器镜像。相反,我们希望容器中的应用程序状态立即反映更改。我们可以通过绑定挂载和热重新加载工具的组合来实现这一点!
在 Docker 中使用调试器
为了使容器开发与本地开发具有竞争力,我们需要能够在容器内运行和附加调试器。
测试
我们希望在尽可能接近生产环境的情况下运行测试,因此最好在容器内部进行测试!
持续集成(CI)
持续集成是指在将代码推送到版本控制系统时自动执行某些操作(例如构建、测试等)的理念。
对于容器,我们可能需要执行以下几个操作:
构建容器镜像
执行测试
扫描容器镜像的漏洞
给镜像打标签,附加有用的元数据
推送到容器注册表
最后
为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:
公众号 Let us Coding
,牛客,知乎,开源中国,CSDN,思否,掘金,InfoQ,简书,博客园,慕课,51CTO,helloworld,腾讯开发者社区,阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏和关注
版权声明: 本文为 InfoQ 作者【小万哥】的原创文章。
原文链接:【http://xie.infoq.cn/article/dcfb11616c74ecc4f4418d903】。文章转载请联系作者。
评论