我用this tutorial來創建我的第一個docker webapi項目。dotnet aspnetcore docker build失敗,出現145錯誤代碼
我使用的是Windows 7(docker toolbox)。
這是我已經跑了:
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"]
現在的我,我試圖建立新的圖像使用
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
我走進網址,重新安裝的東西,我還得到一個錯誤。
我試圖在同一個命令行會話中使用dotnet cli命令,並且我成功(dotnet restore
works)。
我試着搜索這個錯誤,但找不到任何解決方案。
我在這裏錯過了什麼?我在多次場合和測試中得到這個145錯誤。
感謝您的回答,但讓我明白一些事情。我正在嘗試基於另一個包含我需要的運行時的Docker鏡像來構建Docker鏡像。我知道構建過程需要SDK,但爲什麼我需要包含SDK的基礎映像? –
@AmirPopovich我在答案中增加了一些細節,讓我知道你是否還有其他問題。 – Polynomial
很好的解釋!非常感謝你。最後一個問題:是否有隻包含運行時和SDK的較小圖像?有沒有什麼辦法可以在我的docker文件中添加2 FROM命令? –