我有一个管道设置来成功地 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
,但总是出错。
1条答案
按热度按时间pepwfjgg1#
从您的问题中可以理解的是,您需要在映像中安装requirement.txt内容。
因此,您需要使用Dockerfile指令之一COPY和ADD
COPY和ADD的区别:
COPY只支持将本地文件基本复制到容器中,ADD则有一些功能(如仅本地tar提取、远程URL支持)
COPY“您源文件的路径”“镜像中的路径”,也可以使用
ADD“您源文件的路径”“镜像中的路径”
**注意:**路径必须对应您的Dockerfile所在位置。
如果我理解错了要求,请告诉我。