繁体   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