从Dockerfile构建Docker映像,使错误“ docker build”需要精确的1个参数”

时间:2019-05-28 11:22:45

标签: docker

我正在尝试使用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参数给出了完整的路径。

1 个答案:

答案 0 :(得分:3)

您错过了命令行末尾的上下文目录。通常它只是.。每当您使用Dockerfile时,此目录将用作ADD/COPY中所有路径的根目录,并用作构建上下文-意味着其内容将被压缩并在执行构建时传递给docker守护程序。

cd /var/lib/jenkins/workspace/cicd/pipeline
docker build -f Dockerfile -t spacestudykubernetes .