Gitlab CI 将文件从 repo 复制到管道并将其解压缩到路径
Gitlab CI copy file from repo to pipeline and extract it to path
我有一个文件夹文件 trivy-offline.db.tgz
,我想将其复制并解压到 docker,而 CI 是 运行。
project directory
是 - /builds/test/eval-trivy-3
gitlab-ci.yml
container_scanning:
stage: test
image:
name: $CI_REGISTRY/devops/trivy/trivy:0.20.1
entrypoint: [""]
variables:
GIT_STRATEGY: none
TRIVY_USERNAME: "$CI_REGISTRY_USER"
TRIVY_PASSWORD: "$CI_REGISTRY_PASSWORD"
TRIVY_AUTH_URL: "$CI_REGISTRY"
FULL_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
script:
- echo "the project directory is - $CI_PROJECT_DIR"
- trivy --version
- time trivy image --clear-cache
- <cp file to this docker>
- <extract file to path>
首先要解决的问题是,您正在使用的 trivy
容器中有哪些工具可用,里面是否有 tar
可用。
通过tar提取的命令非常简单tar -xzf <file>
。
GitLab CI 通常已经检查了您的存储库,因此文件应该已经就位,无需特别注意。
变体 1:tar 可用
container_scanning:
# ...
script:
- echo "the project directory is - $CI_PROJECT_DIR"
- trivy --version
- time trivy image --clear-cache
- tar -xzf trivy-offline.db.tgz
变体 2:tar 不在图像中
您可以对包含 tar
的任何其他图像进行预处理,然后用那个
提取它
extract-trivy-db:
# ...
script:
- tar -xzf trivy-offline.db.tgz
artifacts:
paths:
- trivy-offline.db
container_scanning:
# ...
needs: ["extract-trivy-db"]
script:
- echo "the project directory is - $CI_PROJECT_DIR"
- trivy --version
- time trivy image --clear-cache
我有一个文件夹文件 trivy-offline.db.tgz
,我想将其复制并解压到 docker,而 CI 是 运行。
project directory
是 - /builds/test/eval-trivy-3
gitlab-ci.yml
container_scanning:
stage: test
image:
name: $CI_REGISTRY/devops/trivy/trivy:0.20.1
entrypoint: [""]
variables:
GIT_STRATEGY: none
TRIVY_USERNAME: "$CI_REGISTRY_USER"
TRIVY_PASSWORD: "$CI_REGISTRY_PASSWORD"
TRIVY_AUTH_URL: "$CI_REGISTRY"
FULL_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
script:
- echo "the project directory is - $CI_PROJECT_DIR"
- trivy --version
- time trivy image --clear-cache
- <cp file to this docker>
- <extract file to path>
首先要解决的问题是,您正在使用的 trivy
容器中有哪些工具可用,里面是否有 tar
可用。
通过tar提取的命令非常简单tar -xzf <file>
。
GitLab CI 通常已经检查了您的存储库,因此文件应该已经就位,无需特别注意。
变体 1:tar 可用
container_scanning:
# ...
script:
- echo "the project directory is - $CI_PROJECT_DIR"
- trivy --version
- time trivy image --clear-cache
- tar -xzf trivy-offline.db.tgz
变体 2:tar 不在图像中
您可以对包含 tar
的任何其他图像进行预处理,然后用那个
extract-trivy-db:
# ...
script:
- tar -xzf trivy-offline.db.tgz
artifacts:
paths:
- trivy-offline.db
container_scanning:
# ...
needs: ["extract-trivy-db"]
script:
- echo "the project directory is - $CI_PROJECT_DIR"
- trivy --version
- time trivy image --clear-cache