Я использовал this tutorial, чтобы создать свой первый проект webapi для докеров.dotnet aspnetcore docker build не работает с кодом ошибки 145
Я использую окна 7 (панель инструментов докеров).
Это то, что я побежал:
dotnet new webapi
Это Dockerfile:
FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000
ENTRYPOINT ["dotnet", "run"]
Это, как я создал образ:
docker build -t mydemos:aspnetcorehelloworld .
И это, как я Создан и запущен контейнер:
docker run -d -p 8080:5000 -t mydemos:aspnetcorehelloworld
Мое обслуживание прошло успешно в качестве контейнера-докера.
Затем я попытался изменить Dockerfile работать на aspnetcore базового изображения:
FROM microsoft/dotnet:latest
было изменено на FROM microsoft/aspnetcore:1.0.1
Новый Dockerfile выглядит как:
FROM microsoft/aspnetcore:1.0.1
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000
ENTRYPOINT ["dotnet", "run"]
Теперь я ve попытался построить новое изображение, используя
docker build -t mydemos:aspnetcorehelloworld1 .
И я получаю сообщение об ошибке.
Это журнал сборки:
Sending build context to Docker daemon 636.9 kB
Step 1/8 : FROM microsoft/aspnetcore:1.0.1
---> 2c7bbc508bb2
Step 2/8 : COPY . /app
---> Using cache
---> 1d5b9bd908b3
Step 3/8 : WORKDIR /app
---> Using cache
---> c1d5d091d111
Step 4/8 : RUN dotnet restore
---> Running in 8399e21caeb2
Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
The command 'dotnet restore' returned a non-zero code: 145
Я пошел в URL, переустановил вещи, и я все еще получаю ошибку.
Я попытался использовать команды dotnet cli в том же сеансе командной строки и мне удалось (dotnet restore
works).
Я попытался найти эту ошибку, но не смог найти решение.
Что мне здесь не хватает? Я получаю эту ошибку 145 во многих случаях и тестах.
Спасибо за ответ, но позвольте мне кое-что понять. Я пытаюсь создать изображение докера, основанное на другом изображении докеров, которое содержит требуемое время выполнения. Я понимаю, что процесс сборки требует SDK, но зачем мне базовое изображение, содержащее SDK? –
@AmirPopovich Я добавил еще несколько подробностей в ответ, дайте мне знать, если у вас есть другие вопросы. – Polynomial
Отличное объяснение !!! Большое спасибо. Последние вопросы: есть ли меньшее изображение, содержащее только время выполнения и SDK? Есть ли способ добавить 2 команды FROM в файл докеры? –