小编Dav*_*ave的帖子

为什么在 gitlab-ci 中构建之前先拉取 docker 镜像?

我正在学习 GitLab-ci,有一些事情让我困惑。这是我在谷歌搜索时发现的一个构建工作:

.build:
  before_script:
    - echo "$CI_REGISTRY_PASSWORD" | docker login --username $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
  script:
    - docker pull $CI_REGISTRY_IMAGE/$IMAGE_NAME:latest || true
    - docker build --ssh default --cache-from $CI_REGISTRY_IMAGE/$IMAGE_NAME:latest --build-arg BUILDKIT_INLINE_CACHE=1 --tag $CI_REGISTRY_IMAGE/$IMAGE_NAME:latest --tag $CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA .
    - docker push $CI_REGISTRY_IMAGE/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA
    - docker push $CI_REGISTRY_IMAGE/$IMAGE_NAME:latest
  stage: build
  image: docker:stable
  services:
    - docker:dind
  needs: []
Run Code Online (Sandbox Code Playgroud)

为什么在建筑物图像被拉动并管道化为真实之前?我想这与缓存有关,但我不确定为什么要使用管道来实现。

另外,--ssh default 和 BUILDKIT 的目的是什么?

docker gitlab-ci

6
推荐指数
1
解决办法
1604
查看次数

如何在不使用 venv 的情况下在 Gitlab CI/CD 中缓存 python 依赖项?

我尝试在 .gitlab-ci.yml 文件中使用缓存,但时间只会增加(通过添加空行进行测试)。我想缓存我用 pip 安装的 python 包。这是我安装和使用这些包的阶段(其他阶段使用 Docker):

image: python:3.8-slim-buster

variables:
  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"

cache:
  paths:
    - .cache/pip

stages:
  - lint
  - test
  - build
  - deploy

test-job:
  stage: test
  before_script:
    - apt-get update
    - apt-get install -y --no-install-recommends gcc
    - apt install -y default-libmysqlclient-dev
    - pip3 install -r requirements.txt
  script:
    - pytest tests/test.py
Run Code Online (Sandbox Code Playgroud)

运行此管道后,对于每个管道,管道时间都会增加。我按照 GitLab 文档中的这些步骤进行操作 - https://docs.gitlab.com/ee/ci/caching/#cache-python-dependency 虽然我没有使用 venv,因为它不需要它就可以工作。我仍然不确定为什么需要 PIP_CACHE_DIR 变量(如果不使用的话),但我遵循了文档。

缓存 python 依赖项的正确方法是什么?我不想使用 venv。

python pip gitlab-ci

5
推荐指数
1
解决办法
9094
查看次数

Python 3 从最后一个特定字符切片字符串

我正在尝试从最后一个符号“/”中切出 URL。

例如,我有一个 URL http://google.com/images/54152352

现在我需要该图像的一部分,即 54152352。

我知道我可以简单地通过从某个字符切片来切片它,但是我有一个 URL 列表,并且每个 URL 都不相同。

URL 的其他示例:

https://google.uk/images/kfakp3ok2  #I would need kfakp3ok2  
bing.com/img/3525236236             #I would need 3525236236 
wwww.google.com/img/1osdkg23        #I would need 1osdkg23 
Run Code Online (Sandbox Code Playgroud)

有没有办法从 Python3 中的字符串中的最后一个字符“/”开始切片?来自不同 URL 的每个部分都有不同的长度。

所有的帮助将不胜感激。

python string character slice python-3.x

0
推荐指数
2
解决办法
134
查看次数

标签 统计

gitlab-ci ×2

python ×2

character ×1

docker ×1

pip ×1

python-3.x ×1

slice ×1

string ×1