簡體   English   中英

沒有錯誤時如何調試Docker映像中的問題

[英]How to debug issues in docker image when there is no error

我正在構建在.net Framework 4.5上運行的ASP.NET Web API應用程序。 這是我的docker文件:

FROM microsoft/dotnet-framework:4.7.2-sdk AS build
WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.sln .
COPY TestWebAPI/*.csproj ./TestWebAPI/
COPY TestWebAPI/*.config ./TestWebAPI/
RUN nuget restore

# copy everything else and build app
COPY TestWebAPI/. ./TestWebAPI/
WORKDIR /app/TestWebAPI
RUN msbuild /p:Configuration=Release


FROM microsoft/iis:10.0.14393.206

SHELL ["powershell"]

WORKDIR /inetpub/wwwroot
COPY --from=build /app/TestWebAPI/. ./

RUN Remove-Website -Name 'Default Web Site'
RUN New-Website -Name 'TestWebApi' -Port 80 \
    -PhysicalPath 'c:\inetpub\wwwroot' -ApplicationPool '.NET v4.5'
EXPOSE 80

CMD Write-Host IIS Started... ; \
    while ($true) { Start-Sleep -Seconds 3600 }

然后我運行以下命令:

 docker image build --tag v7 --file .\Dockerfile .
 docker container run --detach --publish 80 v7
docker ps to get the port number

當我轉到特定端口時,該站點無法加載。 構建容器時沒有錯誤。 我如何找到問題(顯然是我的docker文件)

運行容器時執行的命令是

CMD Write-Host IIS Started... ; \
    while ($true) { Start-Sleep -Seconds 3600 }

顯然,這不會啟動網站,因為使用RUN命令執行的步驟僅在映像的構建期間執行。

我想您還打算使用RUN命令執行在容器的構建階段中執行的兩個步驟。 這可以通過在Dockerfile的CMD步驟中鏈接它們或通過創建一個包裝這些命令並執行的小腳本來實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM