![](/img/trans.png)
[英]Azure deployment option with angular 5 application not compile and build in continuous integration
[英]Continuous integration: Where to build the project?
我有一台Jenkins服務器,在該服務器上觀察到一個私有git存儲庫進行更改,然后觸發了管道腳本(該存儲庫包含一個nodejs應用程序)。 在此管道腳本中,我需要執行以下步驟:
npm install
) npm run build
,創建一個dist
文件夾) docker build
)並運行該容器(在dist
文件夾中運行腳本) 建議使用以下兩個選項中的哪一個,為什么?
選項A:在jenkins管道中運行npm install
和npm run build
,並在docker build期間將dist
文件夾復制到docker容器。 這將允許我僅使用npm install --only=production
容器中安裝運行時依賴項,從而顯着減小映像大小。
選項B:在docker npm run build
期間(在Dockerfile中)運行npm install
和npm run build
。 如果需要的話,這將允許我在CI服務器外部運行docker容器(我現在沒有用例,但是它看起來更干凈,因為它更獨立)。 但是,圖像大小會顯着增加,因此我不確定是否建議這樣做。
有什么建議么?
我會選擇選項B。其背后的原因是,有一些npm軟件包可以運行node-gyp,gcc和其他平台相關的構建。 以流行的bcrypt包為例。
使用選項A意味着您的docker和Jenkins機器需要為這種構建保持相同的基礎結構,至少可以這樣說。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.