Команда Docker ADD выдает ошибку «не удается найти файл» - PullRequest
1 голос
/ 17 мая 2019

Я пытаюсь переместить свои несколько микросервисов в контейнеры докеров, используя тип проекта docker-compose из Visual Studio.

У меня также есть проект Service Fabric, поэтому я должен установить Service Fabric SDK в свои док-контейнеры.

Это то, что я делаю, чтобы достичь этого (мой докер-файл (ы)):

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-nanoserver-1809 AS base
WORKDIR /app
EXPOSE 80

...

WORKDIR /temp

ADD https://aka.ms/vs/15/release/vs_buildtools.exe /temp #C:\TEMP\vs_buildtools.exe

...

Остальной код не имеет значения, так как он аварийно завершает работу с командой ADD. Ошибка из Output после того, как я запустил это через Ctrl + F5:

3>Step 4/11 : ADD https://aka.ms/vs/15/release/vs_buildtools.exe /temp
3>Service 'bmt.microservices.snowforecastcenter' failed to build: ADD failed: CreateFile \\?\C:\ProgramData\Docker\tmp\docker-builder567273413\temp: The system cannot find the file specified.

Я не понимаю, что я делаю неправильно и что означает «система не может найти файл», так как я просто загружаю файл из Интернета и помещаю его в свою недавно созданную папку \ temp (ссылка действительна) Я проверил).

Кто-нибудь знает, с чем это может быть связано?

1 Ответ

3 голосов
/ 17 мая 2019

Хорошо, я случайно исправил проблему, переместив комментарий на следующую строку.

Из этого:

ADD https://aka.ms/vs/15/release/vs_buildtools.exe /temp #C:\TEMP\vs_buildtools.exe

К этому:

ADD https://aka.ms/vs/15/release/vs_buildtools.exe /temp
#C:\TEMP\vs_buildtools.exe

Затем я сообщаю на официальном сайте (https://docs.docker.com/engine/reference/builder/#/from), что вы не можете иметь встроенные комментарии, поскольку они рассматриваются как аргументы:

Docker рассматривает строки, начинающиеся с #, как комментарий, если строка не является допустимой директивой синтаксического анализатора. Маркер # в любом месте строки рассматривается как аргумент.

Надеюсь, это поможет другим новичкам в Docker.

...