npm install 后 Gitlab Shared Runner docker build
Posted
技术标签:
【中文标题】npm install 后 Gitlab Shared Runner docker build【英文标题】:Gitlab Shared Runner docker build after npm install 【发布时间】:2021-12-03 08:08:34 【问题描述】:我正在尝试构建 docker 映像并推送到 gitlab 注册表。
我正在使用 gitlab-shared runner。
npm install 没有问题,但是如何在下一个作业中构建 docker 镜像?
image: node:14.17.3
stages:
- install
- build
install_dependencies:
stage: install
tags:
- gitlab-org-docker
script:
- pwd
- npm install
build-job:
stage: build
image: docker
tags:
- gitlab-org-docker
script:
- echo "Compiling the code..."
- echo "build"
- docker build -t bmw-frontend-app .
- docker ps
我忘记了dind。 dind 表示 Docker 中的 Docker。
我成功如下。
image: docker:19.03.13
cache:
key: $CI_COMMIT_REF_SLUG
paths:
- node_modules/
- .next/
stages:
- build
services:
- docker:19.03.13-dind
build-job:
stage: build
before_script:
- echo docker login $DOCKER_REGISTRY --username $DOCKER_REGISTRY_USER --password-stdin
tags:
- gitlab-org-docker
script:
- echo "Compiling the code..."
- echo "build"
- docker build -t registry.gitlab.com/areum.lee1/bmwgs_frontend .
- docker login registry.gitlab.com -u $DOCKER_REGISTRY_USER -p $DOCKER_REGISTRY_PASS
- docker push registry.gitlab.com/areum.lee1/bmwgs_frontend
-
我将外部图像修改为图像:docker:19.03.12
附加服务块。
【问题讨论】:
如果您提到stage: install
中的 node_modules 为 stage: build
,您可以尝试使用 cache (https://docs.gitlab.com/ee/ci/caching/
)。我没有尝试过 dind 或 shared runner,但我认为它可以工作。
【参考方案1】:
您应该查看 GitLab 的有关使用 docker-in-docker 的文档,因为它有一个很棒的演练;在这种特殊情况下,您缺少实际执行 docker 命令的 dind 服务,这就是您收到连接错误的原因。
链接:https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#docker-in-docker-with-tls-enabled
【讨论】:
谢谢我错过了dind。但是我试图在上面的文档中找到这个,但是我没有在这个问题上上传这个问题,并且在 npm install 之后我没有找到关于 docker build 的信息。我认为您没有关于 npm install 的经验。不是吗? 抱歉,马修,我在理解你的英语时遇到了一点问题,所以让我确保我理解你所问的问题:你并不是真的要问关于 @ 的问题987654322@,您实际上是想问如何在一项工作中运行npm install
,然后在下一项工作中使用npm install
的结果?如果是这样,您应该检查您的 CI/CD 的 artifacts
关键字,该关键字将从您的作业中保存一组文件/目录,并在后续作业中将这些文件下载到同一位置。
谢谢帕特里克,我像上面一样解决了这个问题。我将图像从节点更改为 docker。以上是关于npm install 后 Gitlab Shared Runner docker build的主要内容,如果未能解决你的问题,请参考以下文章
vue项目,npm install后,npm run dev报错问题