繁体   English   中英

多个 dockerfiles 的模式和 1 package.json

[英]pattern for multiple dockerfiles and 1 package.json

说我有这个:

project/
   app1/Dockerfile
   app2/Dockerfile
   app3/Dockerfile
   package.json

每个应用程序可能会使用 package.json 中的一部分依赖项。 有没有什么好的方法可以为每个子应用创建精简版的 package.json 文件?

我意识到我不清楚问题是什么 - 问题是每个 Dockerfile(每个项目)不需要 package.json 中的所有依赖项,事实上它们可能每个只使用 20% 或更少的依赖项。 因此,为了减少 docker 图像的大小,我们可能需要一种方法来覆盖 package.json,如下所示:

  project/
       app1/
          Dockerfile
          dependencies.json
       app2/
          Dockerfile
          dependencies.json
       app3/
          Dockerfile
          dependencies.json
       package.json

其中dependencies.json声明了 package.json 的依赖项子集,例如:

{
  dependencies: ['foo', 'bar', 'baz']
}

甚至可能更有趣:

{
   antiDependencies: ['foo', 'bar', 'baz']
}

安装或不安装的依赖项。

(未经测试的解决方案)

我认为一种可能的解决方案是完全按照 OP 中的方式进行操作:

// package.js

const pkgJson = require('../../package.json')

module.exports = Object.assign({}, pkgJson, {

    dependencies: {
       ...pkgJson.dependencies,
       // eliminate these:
       heavyDep: undefined,  
       anotherHeavyDep: undefined
   }

});

这不是一个好的解决方案,因为它是动态的,但也许能让球滚动起来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM