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,腾讯开发者社区,阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏和关注
Docker学习路线12:开发者体验的更多相关文章
- 优秀的云计算工程师需要学什么?云计算Docker学习路线
云计算工程师要学什么?随着互联网的快速发展,云计算这个词大家并不陌生,但是云计算究竟是做什么的,想要从事云计算要学习什么,很多都不知道,那么今天就给大家讲一下云计算. 云计算是基于互联网的相关服务的增 ...
- docker 学习路线
docker 学习路线 参考资料 知乎 docker 的学习路线 Docker - 从入门到实践 Docker 核心技术与实现原理 Docker 入门 <Kubernetes in Action ...
- docker学习笔记12:Dockerfile 指令 ENTRYPOINT介绍
本文介绍Dockerfile的 ENTRYPOINT指令的含义. 先回顾下CMD指令的含义,CMD指令可以指定容器启动时要执行的命令,但它可以被docker run命令的参数覆盖掉. ENTRYPOI ...
- docker学习路线
http://www.simapple.com/320.html DOCKER 官网 :https://docs.docker.com/docker-for-mac/
- iOS 写给iOS开发者的React Native学习路线(转)
我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...
- 写给iOS开发者的React Native学习路线(转)
我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...
- 工作不久的安卓开发者,他们是这样规划自己的Android学习路线
Android开发工作者工作不久的时候,会有一段迷茫期,觉得自己应该再学一点,却不知道从何学起,该怎样规划自己的学习路线呢?今天,我给大家梳理一下Android基础,就像建造房屋一样,要建造一座宏伟的 ...
- Docker学习总结(12)——非常详细的 Docker 学习笔记
一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docke ...
- Docker学习总结
本文作为总结性文章,不会详细讲解Docker.但会把已学习的.了解的内容按照由易到难的顺序串起来,更多的是帮助Docker新手快速的了解Docker,知道目前处在哪个阶段,接下来该学些什么,避免碰太多 ...
- HTML5课程大纲/学习路线
HTML5课程大纲/学习路线 这是什么? 这个一个HTML技术路线的课程大纲/学习大纲. 你能用它做什么? 如果你是找工作的人, 利用本大纲, 你可以学习HTML5语言, 做一个HTML前端工程师, ...
随机推荐
- [Linux] ubuntu系统使用zfs记录
关于zfs 之前从B站视频里面了解到了btrfs这个文件系统,说是能够实现cow,然后我第一时间觉得这是个极好的特性,结果后来才发现,使用的时候并不多,而且只能通过cp --reflink的方式使用, ...
- multiple definition of `MainWindow::MainWindow(QWidget*)
qt刚建好工程运行的时候没问题,后面写了一点东西之后,再运行就发现出现MainWindow重复,我不理解. 解决方法:删除重复的引用. 再重新构建一下就好了.
- Java 多线程----- 解决线程安全问题的 方式三:Lock锁 --------jdk 5.0 新增
1 package bytezero.deadlock; 2 3 import java.util.concurrent.locks.ReentrantLock; 4 5 /** 6 * 解决线程安全 ...
- flomo 窗口置顶 - 通用方法 autohotkey
需求 开网页的时候需要记录一些东西 想一直显示 操作 要安装 https://www.autohotkey.com/ 创建个 .ahk 文件 运行下 快捷键是 alt+小键盘8 ;置顶当前窗口 !Nu ...
- npm-links - 查看项目依赖包 - vscode 插件
npm-links 依赖包相关快捷链接
- manjaroLinux-xfce4设置显示桌面快捷键
1.打开窗口快捷键 2.寻找显示桌面 3.设置快捷键 啊!简单的我都不想写了,这不是为让像以前的"我"--小白,食用性更好一点吗?
- 蓝牙BLE无线控制氛围灯解决方案之特色解析
谁的方案? 前几天和一个小伙伴讨论方案公司的价值,他给出定位还是比较准确地,作为一家方案公司,就是让产品公司,低成本,快速的推出具有市场竞争力的产品.凭借着本团队在无线蓝牙领域的深耕,这些年也做了 ...
- 13_AAC编码介绍
AAC(Advanced Audio Coding,译为:高级音频编码),是由Fraunhofer IIS.杜比实验室.AT&T.Sony.Nokia等公司共同开发的有损音频编码和文件格式. ...
- Libcurl & Log4cplus 移植和使用 以及 Jsoncpp 简单使用
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- [675. 为高尔夫比赛砍树] dijkstra算法
import java.util.*; class Solution { public int cutOffTree(List<List<Integer>> forest) { ...