我正在尝试使用Jenkins管道脚本来构建Docker映像。当我运行以下代码时,
docker build -f Dockerfile -t spacestudykubernetes /var/lib/jenkins/workspace/cicd/pipeline
我在Jenkins管道作业shell脚本中添加了此命令。那里的“ cd”命令将不起作用。更改目录在Shell脚本中不起作用。因此,我没有直接更改,所以给了命令完整的路径。根据您的命令,它将起作用(在放置更改目录之后)。我正在尝试从cicd文件夹而不是管道文件夹执行。 Dockerfile位于管道文件夹中。
我的Jenkins管道脚本
pipeline
{
agent any
stages
{
stage ('imagebuild')
{
steps
{
sh 'docker build -f Dockerfile -t spacestudykubernetes /var/lib/jenkins/workspace/cicd/pipeline'
}
}
}
}
错误
我收到如下错误,
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /var/lib/jenkins/workspace/cicd/Dockerfile: no such file or directory
我不是从Dockerfile所在的直接文件夹运行。我的Dockerfile位于 pipeline 文件夹中。那是我从SVN中签出的代码。我正在尝试从 cicd 文件夹运行此命令。我用-f参数给出了完整的路径。
答案 0 :(得分:3)
您错过了命令行末尾的上下文目录。通常它只是.
。每当您使用Dockerfile
时,此目录将用作ADD/COPY
中所有路径的根目录,并用作构建上下文-意味着其内容将被压缩并在执行构建时传递给docker守护程序。
cd /var/lib/jenkins/workspace/cicd/pipeline
docker build -f Dockerfile -t spacestudykubernetes .