在Docker容器内或外面运行Grunt/Gulp?

sca*_*ega 18 node.js gruntjs docker gulp dockerfile

我正在尝试使用grunt/gulp在docker容器内部署一个nodejs应用程序构建过程的良好实践.

我很满意以下顺序:

  • 使用grunt(或gulp)外部容器构建
  • 将./dist文件夹添加到容器中
  • 在容器内运行npm install(带--production标志)

但在我发现的每个例子中,我都看到了一种不同的方法:

  • 将./src文件夹添加到容器中
  • 在容器内运行npm install(带有dev依赖项)
  • 在容器内运行bower install(如果需要)
  • 在容器内运行grunt(或gulp)

IMO,第一种方法生成更轻,更高效的容器,但所有的例子都使用第二种方法.我错过了什么吗?

Von*_*onC 3

我看到的唯一区别是您可以在第二种方法中重现完整的 grunt 安装。

对于第一个,您依赖于本地操作,该操作可能会在不同的环境中以不同的方式完成。

容器应该基于可以轻松复制的图像,而不是依赖于包含“需要什么”的主机文件夹(不知道该部分是如何完成的)


如果安装带来的构建环境开销对于 grunt 镜像来说太大,您可以:

最终结果是应用程序存在于其文件系统上的图像。

这是方法 1 和方法 2 的混合。