Azure Pipeline для создания образов Docker не удается использовать тот же файл Docker в Visual Studio - PullRequest
1 голос
/ 31 мая 2019

Я пытаюсь создать конвейер развертывания для развертывания моего образа в кластер Kubernetes. Первым шагом в этом процессе является создание образа на основе файла Docker. Используемый мной файл Docker был сгенерирован из Visual Studio, когда я добавил поддержку Docker, и успешно создает изображение, щелкнув правой кнопкой мыши по изображению Docker и выбрав его для создания. Когда я настраиваю конвейер Azure, создание образа Docker завершается ошибкой, как только он пытается построить реальное решение. Предыдущий шаг захватывает все исходные файлы, но затем завершается ошибкой при создании образа докера с

[error]COPY failed: stat/var/lib/docker/tmp/docker-builder158012929/DockerTest/DockerTest.csproj:
 no such file or directory

[error]/usr/bin/docker failed with return code: 1

Ниже приведен файл Docker, сгенерированный из Visual Studio, и на него ссылается этап конвейера Azure для создания образа Docker.

 FROM mcr.microsoft.com/dotnet/core/runtime:2.2-stretch-slim AS base

 WORKDIR /app   
 FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS
 build 

 WORKDIR /src      
 COPY ["DockerTest/DockerTest.csproj", "DockerTest/"]      
 RUN dotnet restore "DockerTest/DockerTest.csproj"      
 COPY . .      
 WORKDIR "/src/DockerTest"      
 RUN dotnet build "DockerTest.csproj" -c Release -o /app  

 FROM build AS publish      
 RUN dotnet publish "DockerTest.csproj" -c Release -o /app

 FROM base AS final      
 WORKDIR /app      
 COPY --from=publish /app .      
 ENTRYPOINT ["dotnet", "DockerTest.dll"]

enter image description here

## [раздел] Начало: создание образа контейнера
================================================== ============================ Задача: Docker Описание: создание, тегирование, передача или запуск образов Docker, или запустить команду Docker. Задача может использоваться с Docker или Azure Container реестр. Версия: 0.150.6 Автор: Microsoft Corporation Справка: [Дополнительная информация] https://go.microsoft.com/fwlink/?linkid=848006)
================================================== ============================ [команда] / usr / bin / docker build -f
/ home / vsts / work / 1 / s / DockerTest / Dockerfile -t ihacontainers.azurecr.io/dockertest:6 / home / vsts / work / 1 / s / DockerTest Отправка контекста сборки в демон Docker 6.144 КБ Шаг 1/15: ОТ mcr.microsoft.com/dotnet/core/runtime:2.2-stretch-slim AS base 2.2-stretch-slim: вытягивание из dotnet / core / runtime 743f2d6c1f65: вытягивание слоя fs 074da88b8de0: вытягивание слоя fs ac831735b47a: вытягивание fs layer 3adcc844418d: извлечение fs layer 3adcc844418d: ожидание ac831735b47a: загрузка завершена 743f2d6c1f65: проверка контрольной суммы 743f2d6c1f65: загрузка завершена 074da88b8de0: Проверка контрольной суммы 074da88b8de0: загрузка завершена 3adcc844418d: Проверка контрольной суммы zadcc844418d: загрузка завершена 743f2d6c1f65: извлечение завершено 074da88b8de0: вытащить в сборе ac831735b47a: вытащить в сборе 3adcc844418d: Вытащите полный дайджест: sha256: 066c31b113b0a20e6155d3bd8a314563c688d2ec31c11d7e551af5bc2595f30c Статус: загружено более новое изображение для mcr.microsoft.com/dotnet/core/runtime:2.2-stretch-slim ---> c0f9ab44ecc1 Шаг 2/15: WORKDIR / app ---> Запуск в 6d1a5f5600dd Снятие промежуточного контейнера 6d1a5f5600dd ---> 527fcebeaf1f Step 3/15: ОТ mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build 2.2-натяжение: вытягивание из dotnet / core / sdk c5e155d5a1d1: вытягивание слоя fs 221d80d00ae9: вытягивание слоя fs 4250b3117dca: вытягивание слоя fs 3b7ca19181b2: Снятие слоя fs 3466298fc231: Снятие слоя fs 310737d73ed1: Снятие слоя fs dc981de74fae: Снятие слоя fs 3b7ca19181b2: Ожидание 3466298fc231: Ожидание 310737d73ed1: Ожидание dc981de74fae: Ожидание 4250b3117dca: Проверка контрольной суммы 4250b3117dca: Загрузка завершена 221d80d00ae9: Проверка контрольной суммы 221d80d00ae9: Загрузить полную версию 3466298fc231: Проверка контрольной суммы 3466298fc231: Загрузить полную версию c5e155d5a1d1: Проверка контрольной суммы c5e155d5a1d1: Загрузить полную версию 3b7ca19181b2: Проверка контрольной суммы 3b7ca19181b2: Загрузить полностью c5e155d5a1d1: Pull complete 221d80d00ae9: Pull завершите 310737d73ed1: Проверка контрольной суммы 310737d73ed1: Загрузить complete 4250b3117dca: Pull complete dc981de74fae: Проверка контрольной суммы dc981de74fae: загрузка завершена 3b7ca19181b2: загрузка завершена 3466298fc231: вытащить полностью 310737d73ed1: вытащить полностью dc981de74fae: Вытащите полный дайджест: sha256: 222cc0bb0bc93875ee0f6be626b2838beea838f65e53653e07c33eb9d00b0163 Статус: загружено более новое изображение для mcr.microsoft.com/dotnet/core/sdk:2.2-stretch ---> e4747ec2aaff Step 4/15: WORKDIR / src ---> Запуск в a7ebcac87f68 Удаление промежуточный контейнер a7ebcac87f68 ---> d7541674a9da Шаг 5/15: COPY ["DockerTest / DockerTest.csproj", "DockerTest /"] COPY не удалось: стат/var/lib/docker/tmp/docker-builder158012929/DockerTest/DockerTest.csproj:no такой файл или каталог

## [ошибка] КОПИЯ не удалась: stat / var / lib / docker / tmp / docker-builder158012929 / DockerTest / DockerTest.csproj: нет такой файл или каталог

## [ошибка] / usr / bin / docker с ошибкой с кодом возврата: 1 ## [section] Окончание: создание образа контейнера

1 Ответ

0 голосов
/ 31 мая 2019

[ошибка] Копирование не выполнено: stat / var / lib / docker / tmp / docker-builder158012929 / DockerTest / DockerTest.csproj: такого файла или каталога нет

В соответствии с этой ошибкойсообщение, в строке вашего файла Docker произошла ошибка: COPY ["DockerTest/DockerTest.csproj", "DockerTest/"].

Сначала убедитесь, что вы не использовали файл .dockerignore для исключения этого файла: DockerTest/DockerTest.csproj, который должен существовать в каталогеоткуда вы запускаете сборку.

Если она не игнорируется файлом .dockerignore, вам необходимо учитывать уровень расположения вашего файла dockerfile.Файл

DockerTest.csproj не должен помещаться на нижний уровень пути исходного файла.Вам нужно изменить источник контекста, переместить его на более высокий уровень.Поэтому измените ваш dockerfile вручную как:

COPY ["DockerTest.csproj", "DockerTest/"]
...