到目前为止,我们只讨论了使用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. 【LeetCode贪心#06】加油站(股票买卖变种)

    加油站 力扣题目链接(opens new window) 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 ...

  2. 【Azure Logic App】使用Outlook.com发送邮件遇到429报错

    问题描述 在Logic App中使用 Outlook.com组件发送邮件,遇见了outlook connection报429的错误 {"error":{"code&quo ...

  3. 【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App

    问题描述 如图上,是App Services在Windows环境中,系统自带了MySQL In App功能.而在,Linux环境中,没有发现Mysql in App功能,是不是无法在Linux中使用呢 ...

  4. 容器与 Pod

    现在 Docker 的流行程度越来越高,越来越多的公司使用 Docker 打包和部署项目.但是也有很多公司只是追求新技术,将以前的单体应用直接打包为镜像,代码.配置方式等各方面保持不变,使用 Dock ...

  5. wsl使用记录

    # wsl使用记录 安装 直接参考微软官方文档使用 WSL 在 Windows 上安装 Linux ubuntu可用发行版安装 https://ubuntu.com/wsl 访问 方式一:在资源管理器 ...

  6. 探究C# dynamic动态类型本质

    本周在做接口动态传参的时候思考了个问题:如何把一个json字符串,转成C#动态类? 比如由 { 'userId': 100, 'id': 1, 'title': 'hello world', 'com ...

  7. day02-事件处理机制

    5.Java事件处理机制 5.1小球移动案例 通过监听键盘按键,实现小球的移动 例子: package li.gui.even_; import javax.swing.*; import java. ...

  8. 在LabVIEW中编程运行可执行程序

    以下文字来自于 https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000YGhVCAW&l=en-US 翻译来自于Chat ...

  9. (2)Python解释器的安装

    鉴于有同学在安装Python解释器出现了问题,这里再安装一下 step1,下载安装包,链接https://www.python.org/downloads/ 这里我安装的是3.6.4版本 我选择的是6 ...

  10. InfluxDB、Grafana、node_exporter、Prometheus搭建压测平台

    InfluxDB.Grafana.node_exporter.Prometheus搭建压测平台 我们的压测平台的架构图如下: 配置docker环境 1)yum 包更新到最新 sudo yum upda ...