首页 > 其他分享 >Docker学习路线12:开发者体验

Docker学习路线12:开发者体验

时间:2023-07-26 19:34:02浏览次数:42  
标签:容器 12 应用程序 开发者 测试 镜像 Docker 调试

到目前为止,我们只讨论了使用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简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

到目前为止,我们只讨论了使用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简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

标签:容器,12,应用程序,开发者,测试,镜像,Docker,调试
From: https://www.cnblogs.com/xiaowange/p/17583384.html

相关文章

  • Docker安装部署ElasticSearch
    参考文档:https://blog.csdn.net/qq_37726813/article/details/129917352https://blog.csdn.net/yangkei/article/details/126837326https://blog.csdn.net/yangkei/article/details/1268373261.部署单点ElasticSearch因为我们还需要部署kibana容器,因此需要让ElasticSearch和......
  • xxl-job docker 搭建&接入
    项目地址:https://github.com/xuxueli/xxl-job1初始化数据库新建表sql语句在项目里/xxl-job/doc/db/tables_xxl_job.sql在目标数据库执行语句建库、建表##XXL-JOBv2.4.1-SNAPSHOT#Copyright(c)2015-present,xuxueli.CREATEdatabaseifNOTEXISTS`xxl_job`......
  • Debian12上安装显卡驱动
    新笔记本上有nvidia独立显卡,因此需要安装显卡驱动。在Debian12上根据提示安装完成之后,发现驱动一直没有工作。各种查资料之后,发现是SecureBoot引起问题。到BIOS中把SecureBoot禁用之后,重新安装一次显卡驱动问题就解决了。原因是SecureBoot出于安全原因,只使用正确签名的kernel和mou......
  • uva 12299 RMQ with Shifts(线段树单点更新初步应用)
                                 uva12299RMQwithShiftsInthetraditionalRMQ(RangeMinimumQuery)problem,wehaveastaticarrayA.Thenforeachquery(L,R)(LR),wereporttheminimumvalueamongA[L],A[L+1],...,A[R].N......
  • docker如何利用iptables限制外网访问
    先看官网:点击跳转如果有问题,也别来问我,我也不懂,下面自己感悟一下,或者有iptables的大佬,欢迎指教还有什么问题,想咨询的,加群:582337768。这个群不是我的,但是我在里面,但是还是那句话,我也不懂。然后开始了,首先使用DOCKER-USER的chain来进行操作。DOCKER-USER该chain在ubuntu下面,......
  • centos7使用docker安装sentry
    来源:https://www.likecs.com/show-307736478.html 环境:centos7、docker19基础环境需求*Docker17.05.0+*Compose1.23.0+流程:docker安装-->docker-compose安装-->clone项目-->安装sentry-->启动sentry-->访问验证(可以直接查看安装文档 moreonpremise/README.md )1、s......
  • 122.lambda表达式
    122.lambda表达式1.Lambda表达式概述Lambda表达式是现代C++在C++11和更高版本中的一个新的语法糖,在C++11、C++14、C++17和C++20中Lambda表达的内容还在不断更新。lambda表达式(也称为lambda函数)是在调用或作为函数参数传递的位置处定义匿名函数对象的便捷方法。通常,lambda用于封......
  • 【docker】Portainer安装配置
    1、官网Welcome-PortainerDocumentation   参考链接:portainer安装,配置,使用-Net码畜-博客园......
  • Ubuntu18.04离线安装cuda,docker和nvidia-docker
    近来接手一个项目,服务器没有外网,还缺少一堆基础工具,离线安装相关依赖十分头疼。在此两篇博客记录一下此次经历。各部件的依赖如下:Nvida-docker需要CUDA驱动,安装CUDA需要GCC编译库,安装GCC需要用到make工具(make非必须)有关GCC依赖与make工具安装,请看另一篇博客。目录1.离线安装......
  • 1124.longest well performing interval
    Description1124.LongestWell-PerformingInterval(Medium)Wearegivenhours,alistofthenumberofhoursworkedperdayforagivenemployee.Adayisconsideredtobeatiringdayifandonlyifthenumberofhoursworkedis(strictly)greaterthan......