首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有错误时如何在docker镜像中调试问题

没有错误时如何在docker镜像中调试问题
EN

Stack Overflow用户
提问于 2019-01-06 06:57:14
回答 1查看 477关注 0票数 0

我正在构建一个运行在.net Framework4.5上的ASP.NET web应用程序。这是我的docker文件:

代码语言:javascript
复制
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 }

然后我运行以下命令:

代码语言:javascript
复制
 docker image build --tag v7 --file .\Dockerfile .
 docker container run --detach --publish 80 v7
docker ps to get the port number

当我转到特定的端口时,站点没有加载。构建容器时没有错误。我如何找到问题(显然是我的docker文件)

EN

回答 1

Stack Overflow用户

发布于 2019-01-06 22:05:45

运行容器时执行的命令是

代码语言:javascript
复制
CMD Write-Host IIS Started... ; \
    while ($true) { Start-Sleep -Seconds 3600 }

这显然不会启动网站,因为使用RUN命令执行的步骤仅在构建镜像时执行。

我猜您的意思是还要使用RUN命令执行容器的构建阶段中执行的两个步骤。这可以通过在Dockerfile的CMD步骤中链接它们,或者通过创建一个包装这些命令并执行它的小脚本来实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54057070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档