[英]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/
是您在基本映像中使用的工作区。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.