到目前为止,我们只讨论了使用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腾讯开发者社区阿里开发者社区

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

Docker学习路线12:开发者体验的更多相关文章

  1. 优秀的云计算工程师需要学什么?云计算Docker学习路线

    云计算工程师要学什么?随着互联网的快速发展,云计算这个词大家并不陌生,但是云计算究竟是做什么的,想要从事云计算要学习什么,很多都不知道,那么今天就给大家讲一下云计算. 云计算是基于互联网的相关服务的增 ...

  2. docker 学习路线

    docker 学习路线 参考资料 知乎 docker 的学习路线 Docker - 从入门到实践 Docker 核心技术与实现原理 Docker 入门 <Kubernetes in Action ...

  3. docker学习笔记12:Dockerfile 指令 ENTRYPOINT介绍

    本文介绍Dockerfile的 ENTRYPOINT指令的含义. 先回顾下CMD指令的含义,CMD指令可以指定容器启动时要执行的命令,但它可以被docker run命令的参数覆盖掉. ENTRYPOI ...

  4. docker学习路线

    http://www.simapple.com/320.html DOCKER 官网 :https://docs.docker.com/docker-for-mac/

  5. iOS 写给iOS开发者的React Native学习路线(转)

    我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...

  6. 写给iOS开发者的React Native学习路线(转)

    我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...

  7. 工作不久的安卓开发者,他们是这样规划自己的Android学习路线

    Android开发工作者工作不久的时候,会有一段迷茫期,觉得自己应该再学一点,却不知道从何学起,该怎样规划自己的学习路线呢?今天,我给大家梳理一下Android基础,就像建造房屋一样,要建造一座宏伟的 ...

  8. Docker学习总结(12)——非常详细的 Docker 学习笔记

    一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docke ...

  9. Docker学习总结

    本文作为总结性文章,不会详细讲解Docker.但会把已学习的.了解的内容按照由易到难的顺序串起来,更多的是帮助Docker新手快速的了解Docker,知道目前处在哪个阶段,接下来该学些什么,避免碰太多 ...

  10. HTML5课程大纲/学习路线

    HTML5课程大纲/学习路线 这是什么? 这个一个HTML技术路线的课程大纲/学习大纲. 你能用它做什么? 如果你是找工作的人, 利用本大纲, 你可以学习HTML5语言, 做一个HTML前端工程师, ...

随机推荐

  1. [Linux] ubuntu系统使用zfs记录

    关于zfs 之前从B站视频里面了解到了btrfs这个文件系统,说是能够实现cow,然后我第一时间觉得这是个极好的特性,结果后来才发现,使用的时候并不多,而且只能通过cp --reflink的方式使用, ...

  2. multiple definition of `MainWindow::MainWindow(QWidget*)

    qt刚建好工程运行的时候没问题,后面写了一点东西之后,再运行就发现出现MainWindow重复,我不理解. 解决方法:删除重复的引用. 再重新构建一下就好了.

  3. Java 多线程----- 解决线程安全问题的 方式三:Lock锁 --------jdk 5.0 新增

    1 package bytezero.deadlock; 2 3 import java.util.concurrent.locks.ReentrantLock; 4 5 /** 6 * 解决线程安全 ...

  4. flomo 窗口置顶 - 通用方法 autohotkey

    需求 开网页的时候需要记录一些东西 想一直显示 操作 要安装 https://www.autohotkey.com/ 创建个 .ahk 文件 运行下 快捷键是 alt+小键盘8 ;置顶当前窗口 !Nu ...

  5. npm-links - 查看项目依赖包 - vscode 插件

    npm-links 依赖包相关快捷链接

  6. manjaroLinux-xfce4设置显示桌面快捷键

    1.打开窗口快捷键 2.寻找显示桌面 3.设置快捷键 啊!简单的我都不想写了,这不是为让像以前的"我"--小白,食用性更好一点吗?

  7. 蓝牙BLE无线控制氛围灯解决方案之特色解析

    谁的方案?   前几天和一个小伙伴讨论方案公司的价值,他给出定位还是比较准确地,作为一家方案公司,就是让产品公司,低成本,快速的推出具有市场竞争力的产品.凭借着本团队在无线蓝牙领域的深耕,这些年也做了 ...

  8. 13_AAC编码介绍

    AAC(Advanced Audio Coding,译为:高级音频编码),是由Fraunhofer IIS.杜比实验室.AT&T.Sony.Nokia等公司共同开发的有损音频编码和文件格式. ...

  9. Libcurl & Log4cplus 移植和使用 以及 Jsoncpp 简单使用

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  10. [675. 为高尔夫比赛砍树] dijkstra算法

    import java.util.*; class Solution { public int cutOffTree(List<List<Integer>> forest) { ...