У меня есть контейнер jenkins и конвейер, состоящий из создания образов докеров. Я смонтировал необходимые крепления (/var/run/docker.sock, / var / run), чтобы Дженкинс мог использовать команды докера. Я также привязываю смонтированную папку с моего хоста к 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
Я не могу понять, почему докер использует папку / var / lib / docker / tmp / docker-builder969545350 ..., тогда как я указал полный путь, содержащий мой проект. Я новичок в Jenkins, так что простите меня, если я забыл указать важную информацию.
Спасибо.
Я решил свою проблему. Мне пришлось изменить способ вызова моего Dockerfile и изменить внутри WORKDIR.