如何将文件从源代码库传递到Jenkins管道中的代理Dockerfile?

arknldoa  于 2023-06-05  发布在  Jenkins
关注(0)|答案(1)|浏览(489)

我有一个管道设置来成功地 checkout 一个git repo,拉入一个Jenkinsfile,然后使用包含在所述repo中的Dockerfile来创建一个管道代理。
我的问题是,我试图在Dockerfile中运行一个pip install -r requirements.txt,使用的是一个也在repo中找到的requirements.txt文件,但我还没有找到一种方法将其传递给Dockerfile。
我知道我可以在后续阶段在Jenkinsfile中运行pip安装,但我更喜欢让Dockerfile尽可能多地完成繁重的工作。
Jenkinsfile:

* Requires the Docker Pipeline plugin */
pipeline {
    agent {
        dockerfile {
            dir 'ci/unit_test'
        }
    }
}

我已经在agent阶段尝试过使用checkout scm,但总是出错。

pepwfjgg

pepwfjgg1#

从您的问题中可以理解的是,您需要在映像中安装requirement.txt内容。
因此,您需要使用Dockerfile指令之一COPY和ADD
COPY和ADD的区别:

COPY只支持将本地文件基本复制到容器中,ADD则有一些功能(如仅本地tar提取、远程URL支持)
COPY“您源文件的路径”“镜像中的路径”,也可以使用
ADD“您源文件的路径”“镜像中的路径”
**注意:**路径必须对应您的Dockerfile所在位置。

如果我理解错了要求,请告诉我。

相关问题