首页 > 解决方案 > 从 GitLab CI 中的服务容器访问项目目录

问题描述

我试图在部署期间通过Percy截屏来测试我的站点构建,但我无法启动在 GitLab 运行器上本地运行我的站点的服务容器。

我有一个安装了 Percy (& Puppeteer) 的自定义 docker 映像。我将其作为 GitLab-CI 作业映像运行,并带有一个单独的service容器,该容器应该运行我的(NodeJS / Gatsby)网站:

take screenshots:
  stage: test
  image: my/custom-percy-image:latest
  services:
    - name: node:14-slim
      alias: testserver
      command: ["sh","/builds/start-testserver.sh"]
  script:
    - percy exec -- node /sitemap.js

(我的start-testserver.sh脚本所做的基本上就是yarn install && yarn start。)

根据这里的 GitLab-CI 文档

所有服务都将作业目录安装为 /builds 下的卷

我理解的意思是,在我的服务容器中,我的项目根目录应该可以在/builds/.

然而,情况似乎并非如此。我在作业输出中收到有关“无法链接到未运行的容器”的错误。

当我将start-testserver上面的命令交换为:

command: ["ls","-la","/builds"]

该作业输出一个空目录列表。

我误解了文档吗?我的方法错了吗?如何在服务容器中运行我的站点?

标签: dockergitlabgitlab-ci

解决方案


推荐阅读