簡體   English   中英

Docker / GitLab:npm依賴項已安裝在Docker映像中,但未通過運行器滿足

[英]Docker/GitLab: npm dependencies installed in docker image, but unmet via runner

首先,我正在檢查測試泊塢窗映像,我在gitlab CI中將其用作泊塢窗運行器:

如果docker容器( testing )...內部運行此命令...

meteor npm list --depth=0

給我意外的結果:

npm info it worked if it ends with ok
npm info using npm@5.4.2
npm info using node@v8.6.0
project@1.0.0 /builds/namespace/project
+-- autoprefixer@7.1.5
+-- babel-runtime@6.26.0
+-- bcrypt@1.0.3
+-- fluent-ffmpeg@2.1.2
+-- gm@1.23.0
+-- gridfs-stream@1.1.1
+-- react@16.0.0

因此,所有依賴項都安裝在docker映像中。 現在,我在gitLab CI中使用此圖像:

我的gitLab CI yml文件如下所示:

unit:
  image: testing:latest
  stage: unit
  tags:
    - testing
  script:
    - meteor npm list --depth=0

但是結果是:

npm info it worked if it ends with ok
npm info using npm@5.4.2
npm info using node@v8.6.0
project@1.0.0 /builds/namespace/project
+-- UNMET DEPENDENCY autoprefixer@7.1.4
+-- UNMET DEPENDENCY babel-runtime@6.26.0
+-- UNMET DEPENDENCY bcrypt@1.0.3
+-- UNMET DEPENDENCY fluent-ffmpeg@2.1.2
+-- UNMET DEPENDENCY gm@1.23.0
+-- UNMET DEPENDENCY gridfs-stream@1.1.1
+-- UNMET DEPENDENCY react@15.6.0

為什么沒有安裝依賴項? 我不想每次CI運行作業時都安裝它們。 相反,我希望已在Docker映像中安裝的所有依賴項使其更快。

更新資料

運行CI階段, node_modules中不存在node_modules目錄...如何防止gitlab刪除文件夾?

這是因為當構建開始時,它會再次獲取您的存儲庫,實質上是用新的克隆覆蓋內容。 最快的解決方法是將依賴項臨時移到另一個文件夾,然后在實際構建過程中將它們移回。 例如執行meteor npm installnode_modules移至/example/node_modules然后在構建過程中將其移回到/builds/namespace/project/node_modules

暫無
暫無

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

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