gpt4 book ai didi

docker - 如何在 gitlab-ci.yml 中将文件从存储库复制到用于作业的 Docker 容器中

转载 作者:行者123 更新时间:2023-12-02 17:47:45 26 4
gpt4 key购买 nike

如何使用 gitlab-ci 将我的项目中的文件添加到 Docker 中工作。假设我在 .gitlab-ci.yml 中有以下工作.

build:master:
image: ubuntu:latest
script:
- cp sample.txt /sample.txt
stage: build
only:
- master

如何在 Ubuntu 镜像中复制 sample.txt?我在想,因为它已经是一个正在运行的容器,所以我们不能直接执行复制命令,而必须运行
docker cp sample.txt mycontainerID:/sample.txt

但我将如何获得 mycontainerID ?因为它将在 Gitlab runner 中运行,并且每次运行都会分配任何随机 id。我的假设是错误的吗?

最佳答案

该文件已经在容器内。如果您仔细阅读 CI/CD 构建日志,您将在拉取镜像并启动后在最顶部看到,您的存储库已克隆到正在运行的容器中。

您可以在 下找到它/builds/organization/repository
(请注意,这些是变量,您必须根据您的实际组织和名称进行调整)
或者使用变量 $CI_PROJECT_DIR

实际上,这是开始工作时“您”所在的目录。

例如这个 .gitlab-ci.yml 来自存储库 https://gitlab.com/bluebrown/gitlab-ci-playground

image: alpine

test:
script:
- echo "the project directory is - $CI_PROJECT_DIR"
- cat $CI_PROJECT_DIR/README.md ; echo
- echo "and where am I? - $PWD"

返回此管道输出:
enter image description here
如您所见,我可以打印出容器内 README.md 的内容。

关于docker - 如何在 gitlab-ci.yml 中将文件从存储库复制到用于作业的 Docker 容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52679245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com