这是一个关于使用容器交付和开发微服务的问题。
您如何使用容器的概念交付您的应用程序?我真的需要在每次构建时为我的应用程序生成一个 Docker 容器吗?甚至本地构建?
我是否需要将我的 Spring Boot 应用程序、Node.js 应用程序或其他类型的应用程序复制到我的 Docker 容器中?或者用我的应用程序安装一个卷是最好的方法吗?
我是否也需要使用容器在本地环境中进行开发?或者在 Spring Boot 中,例如,最好的方法是在 Eclipse 或 Idea 等 IDE 中运行 Application.class 以在本地环境中测试我的代码?
首先,如果您想使用 docker 容器进行部署,您的构建系统应该生成 docker 镜像,并且您的临时环境应该运行这些镜像。
地方发展是另一回事。有几种方法可以解决这个问题,每种方法都有自己的优点/缺点:
即使是本地构建,也始终构建 docker 镜像。好处是您的本地测试是“真实的”,因为您正在针对与最终部署在生产中的容器相同的容器进行测试。明显的缺点是 docker build 可能很慢(即使有缓存)。
使用与生产映像相同的运行时环境构建 docker 映像,但将实时代码安装到其中。有些人喜欢这种方法,因为它在花费大量时间构建图像与拥有真实的运行时环境之间实现了更好的权衡。它还具有您可以与同事共享您的环境的好处,因此每个人都使用相同的运行时环境进行测试。
使用您当前的本地环境,在本地开发中忘记 docker。这是最简单的方法,如果您不需要在本地运行大量端到端测试,我认为这也是一种很好的方法。如果您需要在本地做的只是编写代码并运行一堆单元测试,并且您已经有一个单独的暂存环境来运行真实容器的端到端测试,那么在本地使用 docker 不会增加更多价值.
简而言之,在本地运行 docker 是一种进行“真实”端到端测试的廉价方式,但它增加了复杂性,并且坦率地说不能(也不应该)取代良好的暂存设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句