簡體   English   中英

Dockerizing Gitlab CI 的 Nodejs 依賴項

[英]Dockerizing Nodejs dependencies for Gitlab CI

我正在使用 Gitlab CI 來為我的 Node.js 應用程序實現 CI。 我已經在使用工件並共享作業之間的依賴關系,但是,我想讓它更快。 每次管道啟動時,它都會在第一個作業中安裝依賴項,我想通過在 Docker 映像中包含所有依賴項並將該映像傳遞到測試和生產階段來防止這種情況。 但是,我一直無法這樣做。 顯然 Gitlab 不會在我的圖像的 WORKDIR 中運行代碼。

以下是我的 Dockerfile:

FROM node:6.13-alpine
WORKDIR /home/app
COPY package.json .
RUN npm install
CMD [“sh”]

以下是我的 gitlab-ci.yml:

test:
  image: azarboon/dependencies-test
  stage: test
  script:
     — pwd
     — npm run test

查看日志, pwd導致/builds/anderson-martin/lambda-test ,這與定義的 WORKDIR 不同,並且未找到已安裝的依賴項。 你對我有什么建議,我怎樣才能對我的依賴項進行 Dockerize 並加快構建階段?

解決您的問題的最簡單方法可能是將 node_modules 文件夾從您的基本圖像符號鏈接到 gitlab CI 工作區,如下所示:

test:
  image: azarboon/dependencies-test
  stage: test
  script:
     — ln -s /home/app/node_modules ./node_modules
     — npm run test

符號鏈接的語法是ln -s EXISTING_FILE_OR_DIRECTORY SYMLINK_NAME

請注意/home/app/是您在基本映像中使用的工作區。

Gitlab 還提供了其他功能來共享依賴項。 一方面你有緩存,另一方面你有工作工件

暫無
暫無

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

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