dockerized jenkins 无法构建 dockerfile 工作目录问题

dockerized jenkins 无法构建 dockerfile 工作目录问题

我有一个 jenkins 容器和一个由构建 docker 镜像组成的管道。我已经安装了必要的挂载(/var/run/docker.sock、/var/run),以便 jenkins 使用 docker 命令。我还将主机上的一个文件夹绑定到 jenkins 作为其工作区目录(/var/jenkins_home/workspace)。

下面是我的项目的一部分的 Dockerfile:

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
 WORKDIR /app
 EXPOSE 80

 FROM microsoft/dotnet:2.1-sdk AS build
 WORKDIR /src
 RUN hostname && pwd
 COPY /storage/admin/jenkins/workspace/tremplinx_master-NAUVRHOZ5IJBBHVQ54PTEZJJL33WO7NMFUYS5BF3C5H3LBCDC3XA/SPA/SPA.csproj SPA/SPA.csproj
 RUN dotnet restore SPA/SPA.csproj
 COPY . .
 WORKDIR /src/SPA
 RUN dotnet build SPA.csproj -c Release -o /app

运行我的管道失败并出现以下错误:

[tremplinx_master-NAUVRHOZ5IJBBHVQ54PTEZJJL33WO7NMFUYS5BF3C5H3LBCDC3XA] Running shell script

+ docker build -t spa:dev-0.0.1 SPA/

Sending build context to Docker daemon  4.536MB


Step 1/17 : FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base

 ---> 625b44243fbe

Step 2/17 : WORKDIR /app

 ---> Using cache

 ---> 8279155deb77

Step 3/17 : EXPOSE 80

 ---> Using cache

 ---> 574345928687

Step 4/17 : FROM microsoft/dotnet:2.1-sdk AS build

 ---> f6d6062f4612

Step 5/17 : WORKDIR /src

 ---> Using cache

 ---> b49549e644ac

Step 6/17 : COPY /storage/admin/jenkins/workspace/tremplinx_master-NAUVRHOZ5IJBBHVQ54PTEZJJL33WO7NMFUYS5BF3C5H3LBCDC3XA/SPA/SPA.csproj SPA/SPA.csproj

COPY failed: stat /var/lib/docker/tmp/docker-builder969545350/storage/admin/jenkins/workspace/tremplinx_master-NAUVRHOZ5IJBBHVQ54PTEZJJL33WO7NMFUYS5BF3C5H3LBCDC3XA/SPA/SPA.csproj: no such file or directory

script returned exit code 1

我不明白为什么 docker 使用 /var/lib/docker/tmp/docker-builder969545350... 文件夹,而我已经指定了包含我的项目的完整路径。我是 Jenkins 的新手,所以如果我忘记指定重要信息,请原谅我。

谢谢。

答案1

我的问题已经解决了。我必须改变调用 Dockerfile 的方式并更改其中的 WORKDIR。

相关内容