因此,我正在学习和熟悉Docker,并尝试使用docker run
命令来运行VisualStudio2017生成的映像。
一些背景:
其目的是将一个坞映像发布到容器注册表(我正在使用gitlab),在DigitalOcean中创建一个对接器液滴,并拉出映像并运行它。
我正在尝试构建一个发布映像,并首先在本地运行它。
我有一个VS解决方案,包含3个项目:
我有一个码头组合文件和每个项目有一个码头文件。所有这些都是由visual studio使用docker支持工具生成的。
我可以在VS的调试和发布模式下构建和运行,它运行图像,我可以浏览到web应用程序和api -一切都可以。
我曾尝试跟进这个问题的答案:
How to run docker image produced by VS 2017
所以我试过:
docker run --rm -p 80:5000 -d myapp.web:latest
我已经在浏览器中尝试过http://localhost:5000
和http://127.0.0.1:5000
,两者都无法加载或解析。
我可以通过docker images
命令看到VS生成的对接图像
REPOSITORY TAG IMAGE ID CREATED SIZE
myapp.apinet latest b3fa6d92bd23 24 hours ago 305MB
myapp.web latest f418d4571ac3 24 hours ago 315MB
<none> <none> 50c89857daf1 24 hours ago 315MB
如果有用的话,我的一个码头文件:
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY *.sln ./
COPY src/myapp.Web/myapp.Web.csproj src/myapp.Web/
COPY src/myapp.Core/myapp.Core.csproj src/myapp.Core/
RUN dotnet restore
COPY . .
WORKDIR /src/src/myapp.Web
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "myapp.Web.dll"]
我还使用docker inspect myapp.web
检查了码头映像,并公开了端口80:
"ExposedPorts": {
"80/tcp": {}
},
我已经尝试了来自https://github.com/dotnet/dotnet-docker/tree/master/samples/aspnetapp的https://github.com/dotnet/dotnet-docker/tree/master/samples/aspnetapp核心示例,如下所示,这很好。
docker run --rm -p 8000:80 --name aspnetcore_sample microsoft/dotnet-samples:aspnetapp
有什么建议或想法吗?
发布于 2018-03-08 22:39:33
只是想隔离这里的问题。请容忍我,因为我在这里和你一起工作。我会尽我最大的努力去帮助:
Q1您是使用/Ent还是?Q2您使用的是什么版本的VS2017?码头是预装的还是你单独安装的?Q3,自从你提到有一个码头组合,你试着运行对接-组合?Q4你修改了你的文件吗?我觉得奇怪的是,您的dockerfile示例只是构建web而不是核心。网络参考核心项目也有可能吗?因为如果是的话,而且没有编译,那么它可能不会运行web应用程序Q5 (只有当您正在使用docker工具箱)您忘记使用您的停靠机IP的ip地址而不是本地主机吗?
另外,看看我在这篇文章中的反应,看看你是否遗漏了什么。(可能也不适用于您的情况) How to get docker toolbox to work with .net core 2.0 project!
https://stackoverflow.com/questions/49184741
复制相似问题