簡體   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