我有一个asp.net core 2.0应用程序,其docker镜像在本地运行正常,但是当同一图像部署到AKS群集时,pod的状态为 CrashLoopBackOff ,并且pod日志显示:
你的意思是运行dotnet SDK命令吗?请从以下位置安装dotnet SDK: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
既然你不能ssh到AKS集群,很难搞清楚这一点吗?
Dockerfile :
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY . .
EXPOSE 80
ENTRYPOINT ["dotnet", "myapi.dll"]
答案 0 :(得分:1)
原来我们的构建系统并没有按照我们的想法将应用程序代码放入容器中。由于容器不可运行,我不知道如何检查其内容,直到我发现这个命令是这种情况的救星:
docker run --rm -it --entrypoint=/bin/bash [image_id]
...此时,您可以自由检查/验证容器的内容。
答案 1 :(得分:0)
我刚遇到同样的问题,因为我错过了这个难题的关键部分。
docker-compose -f docker-compose.ci.build.yml run ci-build
VS2017 Docker Tools将创建docker-compose.ci.build.yml
个文件。运行该命令后,将填充publish
文件夹,docker build -t <tag>
将构建一个已填充的图像(没有空的/app
文件夹)。