Docker Gitlab管道运行非常慢

Docker Gitlab管道运行非常慢,docker,gitlab,gitlab-ci-runner,gitlab-ce,gitlab-ee,Docker,Gitlab,Gitlab Ci Runner,Gitlab Ce,Gitlab Ee,我使用Gitlab作为我的DevOps平台,并在docker容器中运行管道。因此,我使用的是docker executor,我的runner作为docker容器运行。 下面是我的gitlab ci.yml文件,它除了npm install cypress stages: - release release: image: node:12.19.0 stage: release only: refs: - master - alpha

我使用Gitlab作为我的DevOps平台,并在docker容器中运行管道。因此,我使用的是
docker executor
,我的runner作为docker容器运行。 下面是我的
gitlab ci.yml
文件,它除了
npm install cypress

stages:
  - release

release:
  image: node:12.19.0
  stage: release
  only:
    refs:
      - master
      - alpha
      - /^(([0-9]+)\.)?([0-9]+)\.x/
      - /^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/
  before_script:
    - export http_proxy=http://17.14.45.41:8080/
    - export https_proxy=http://17.14.45.41:8080/
    - echo 'strict-ssl=false'>>.npmrc
  script:
    # - npm ci
    - npm install cypress
当我运行这个作业时,几乎需要
12分钟
,这是非常多的时间。我的Gitlab是自托管的,我使用代理与外部世界对话,但我不认为代理有任何问题,因为当我执行
docker pull
时,它工作正常并立即运行


我不知道我是否可以做些什么,或者我在Gitlab配置中缺少了什么,但是如果有人有任何想法,请让我知道。这将非常有帮助。

我不知道您的项目,如果您有太多依赖项,请下载并安装

为了提高性能,您需要使用gitlab的缓存特性

但是,在执行此操作之前,您需要使用环境变量
cypress\u cache\u folder
配置cypress缓存文件夹,请看下面的示例

CYPRESS_CACHE_FOLDER: '$CI_PROJECT_DIR/cache/Cypress'
我告诉cypress将所有依赖项和二进制文件下载到此特定文件夹,然后,我将gitlab配置为缓存此文件夹

  stage: ci
  cache:
    paths:
      - cache/Cypress
在您的情况下,.gitlab-ci.yml文件将

stages:
  - release

release:
  image: node:12.19.0
  variables:
    CYPRESS_CACHE_FOLDER: '$CI_PROJECT_DIR/cache/Cypress'
  stage: release
  cache:
    paths:
      - cache/Cypress
  only:
    refs:
      - master
      - alpha
      - /^(([0-9]+)\.)?([0-9]+)\.x/
      - /^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/
  before_script:
    - export http_proxy=http://17.14.45.41:8080/
    - export https_proxy=http://17.14.45.41:8080/
    - echo 'strict-ssl=false'>>.npmrc
  script:
    # - npm ci
    - npm install cypress

但不要忘记,您需要根据所使用的执行器配置缓存。您可以从gitlab文档中获得有关它的详细信息

我想我已经找到了答案。我使用无根docker,这可能是因为它使用vfl文件系统。我将发布另一个问题,但感谢您的帮助。对于我们来说,即使使用缓存,试图缓存Cypress文件夹,然后在其他作业中提取它也非常缓慢。太慢,无法使用。这里有一个悬而未决的问题