dae*_*aai 5 javascript production-environment docker docker-compose
当使用 docker 创建生产构建时,人们使用的编译和捆绑代码的策略是什么。
因此,在 docker 世界之外,我将创建一个构建(使用某种 npm 命令),它将创建一个 dist。代码(没有任何源代码,例如丑化和压缩的 javascript),然后我将 Web 服务器指向 dist 文件夹。
在 docker 世界中,您将在哪里构建代码,是在 docker 映像中还是在主机操作系统上,然后将 dist 文件夹复制到 docker 映像中?基本上我不想要整个 npm_modules 和 docker 镜像/容器中的所有源代码文件。
知道如何实现这一目标吗?
谢谢
听起来您担心两个不同的、有效的问题:
您可以使用您建议的方法来实现这两个目标 - 将构建步骤作为Dockerfile. 但这有您提到的缺点 - 您在运行时会留下所有源/开发工件,除非您采取明确的步骤将它们全部删除。
Docker 引入了多阶段构建来在一定程度上缓解这个问题 - 它有效地允许您将多个层“压缩”为一个层。但它并不能消除需要显式清理的问题。
因此,根据我的经验,最常见的解决方案确实是在外部构建工件,然后将COPY其添加到生产映像中。
这解决了问题#1,但没有解决问题#2。因此,更进一步 - 在 Docker 容器内构建您的 Docker 映像!CI 平台越来越多地支持这种方法,并将其作为一流的概念 - 请参阅Circle CI 的 Docker 执行器。
| 归档时间: |
|
| 查看次数: |
490 次 |
| 最近记录: |