首页 > 解决方案 > 从 Dockerfile 构建 Docker 映像导致错误“docker build”需要 1 个参数”

问题描述

我正在尝试使用 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 位于管道文件夹中。那是我从 SVN 签出的代码。我正在尝试从cicd文件夹运行此命令。我用 -f 参数给出了完整的路径。

标签: docker

解决方案


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

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

推荐阅读