我正在尝试了解如何使用 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/