[英]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 install
將node_modules
移至/example/node_modules
然后在構建過程中將其移回到/builds/namespace/project/node_modules
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.