0

容器和 Kubernetes 的新手。

我正在尝试进行设置,以便我们在整个生产过程中始终保持本地发展的平等。

Skaffold 似乎是做到这一点的好方法,但我对一些小例子和“理想的工作流程”感到困惑

参考https://github.com/GoogleContainerTools/skaffold/tree/master/examples/nodejs

他们提供的 dockerfile 使用 nodemon。不会在产品中使用相同的容器吗?在 prod 中运行 nodemon 不是很糟糕吗?

如何设置具有实时文件同步的 kubernetes 本地开发环境并使用相同的资源(为了具有幂等性)进行生产?

4

1 回答 1

1

你是绝对正确的。不建议在生产容器中使用 nodemon。相反,您通常需要不同的图像或不同的入口点用于开发、登台和生产。有两种选择可以解决这个问题:

1. 多个 Dockerfiles
您可以在 Skaffold 中配置配置文件,并告诉 Skaffold 在构建步骤中使用不同的 Dockerfile:https ://skaffold.dev/docs/how-tos/profiles/

2. 单个 Dockerfile + Dev Overrides
如果您不想管理多个 Dockerfile,您可以使用支持 dev overrides 的开发工具。DevSpace ( https://github.com/devspace-cloud/devspace ) 例如区分devspace deploydevspace dev应用某些覆盖,例如覆盖图像的入口点。在这种情况下,您可以在 package.json 中指定 2 个 npm 脚本并使用入口点启动开发模式,npm start dev使用npm start.

于 2019-08-29T00:06:49.957 回答