Docker Gitlab管道运行非常慢
我使用Gitlab作为我的DevOps平台,并在docker容器中运行管道。因此,我使用的是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
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文件夹,然后在其他作业中提取它也非常缓慢。太慢,无法使用。这里有一个悬而未决的问题