node.js - Minikube 和 docker 上的开发工作流程

标签 node.js docker workflow kubernetes minikube

我正在尝试了解如何使用 dockerized 应用程序(尤其是在 Kubernetes 上)高效地完成开发。我正在努力寻找进行实时编辑容器的正确方法。

在过去使用 Docker 时,我只会使用 Nodemon 之类的东西来监视文件在本地发生的变化,然后当我完成应用程序时,我会将其 docker 化并部署。对于 Kubernetes (minikube),我的第一印象是我应该在每次编辑时重建容器。当然,这不可能是人们在这里发展的方式——我错过了什么?我应该在本地编辑然后 dockerize->k8s 部署吗?这似乎不对。

我正在寻找一种方法将我所有的本地更改同步到 docker 容器,然后使用新更改重新启动 kubernetes pod,这样我就可以在开发期间从日志中读取。如果这很奇怪,请向我推荐一种更好的方法。

谢谢

最佳答案

Kubernetes 是一种容器编排工具。它不是一个开发平台。它旨在简化数百个容器的部署,并处​​理生命周期/网络/存储问题。

如果您正在开发您的应用程序,目前您真的不需要 kubernetes/minikube。我建议的工作流程是:

  • 在本地 docker 容器中开发您的应用程序。不断迭代,直到满意为止。
  • 创建快照发布,标记 docker 镜像并将其推送到 repo
  • 然后部署它。
  • 当您需要更新时,应用一个新标签。

使用 Docker 的好处是它可以在您的本地笔记本电脑和生产 k8s 集群上进行完全相同的部署,因此一旦您到达准备好标记/推送图像的阶段,您可以放心,部署过程将完全相同。

Minikube 不适合本地开发,它是供人们在本地测试 kubernetes,并可能开发 kubernetes 本身,它不是设计为 vagrant 的替代品。

关于node.js - Minikube 和 docker 上的开发工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43190424/

相关文章:

docker - Docker:服务器在前台启动后如何获得交互模式的访问权限?

GitHub 操作 : "You' ve used 100% of included services for GitHub Storage (GitHub Actions and Packages)"after deleting all Artifacts

node.js - AWS Lambda 的环境变量可以设置为 bool 值吗?

javascript - Node/Express 4.0 中可以声明全局变量吗

docker - Jenkins +红帽工厂

javascript - 更新 CRM 2011 中的记录时触发的工作流程/流程

c++ - 如何在 C++ 中获得调试执行流程

javascript - 如何从我的 Node.JS 向我的 Javascript 客户端发送一个警报?

javascript - 该关键字不指向当前对象

docker - hostpath 中的只读文件系统。因此无法挂载卷