簡體   English   中英

持續集成:在哪里構建項目?

[英]Continuous integration: Where to build the project?

我有一台Jenkins服務器,在該服務器上觀察到一個私有git存儲庫進行更改,然后觸發了管道腳本(該存儲庫包含一個nodejs應用程序)。 在此管道腳本中,我需要執行以下步驟:

  • 安裝依賴項( npm install
  • 構建我的應用程序( npm run build ,創建一個dist文件夾)
  • 構建一個Docker容器( docker build )並運行該容器(在dist文件夾中運行腳本)

建議使用以下兩個選項中的哪一個,為什么?

選項A:在jenkins管道中運行npm installnpm run build ,並在docker build期間將dist文件夾復制到docker容器。 這將允許我僅使用npm install --only=production容器中安裝運行時依賴項,從而顯着減小映像大小。

選項B:在docker npm run build期間(在Dockerfile中)運行npm installnpm run build 如果需要的話,這將允許我在CI服務器外部運行docker容器(我現在沒有用例,但是它看起來更干凈,因為它更獨立)。 但是,圖像大小會顯着增加,因此我不確定是否建議這樣做。

有什么建議么?

我會選擇選項B。其背后的原因是,有一些npm軟件包可以運行node-gyp,gcc和其他平台相關的構建。 以流行的bcrypt包為例。

使用選項A意味着您的docker和Jenkins機器需要為這種構建保持相同的基礎結構,至少可以這樣說。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM