如何在.gitlab-ci.yml中避免在每个阶段之前安装requirements.txt?

5

我有一个名为.gitlab-ci.yml的文件,内容如下:

image: "python:3.7"

before_script:
  - pip install -r requirements.txt

stages:
  - stageA
  - stageB

stage_a:
  stage: stageA
  script:
  - run_some_python_scripts

stage_b:
  stage: stageB
  script:
  - run_more_python_scripts

使用以下设置,requirements.txt 在每个阶段之前都会被安装。

我需要它只安装一次,以便stageAstageB都可以使用。

我该如何实现这个目标?

1个回答

4

如果requirements.txt文件变化不大,我发现一个很好的选择是将它打包到自己的Docker镜像中。

另一个选择是使用virtualenv,然后在virtualenv上使用GitLab的缓存,不过如果存在许多pip软件包,则可能会比较慢。


这是最好的方法。对于我的项目,我创建一个Docker容器并将其存储在GitLab的注册表中:https://docs.gitlab.com/ee/user/packages/container_registry/ - aknosis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接