首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在VS2017中为dotnet核心Web应用程序设置一个码头项目(dcproj)

如何在VS2017中为dotnet核心Web应用程序设置一个码头项目(dcproj)
EN

Stack Overflow用户
提问于 2018-10-04 09:56:49
回答 1查看 1.7K关注 0票数 0

我正在使用dotnetcore开发应用程序,在创建aspnetcore (2.1)时,我注意到了一件事: web是在项目上“启用Docker”的选项。见下文:

这对于允许我在本地停靠程序上运行web应用程序进行调试非常棒!:-D我看到我有一个新的.dcproj文件用于码头项目,一个码头文件在我的web和一个yml文件在码头项目。在调试中运行所需的一切。

现在,我正在创建一个dotnetcore控制台应用程序(同样,核心2.1是我使用的版本)。不幸的是,我没有一个“启用码头支持”选项的控制台应用程序,并希望运行我的控制台应用程序在我的本地码头实例。我正在运行的Visual版本如下:

我看了一下,似乎找不到作为项目类型模板的docker项目。所以我从我的web应用程序中复制了docker项目并修改它来运行我的控制台应用程序.不用说,我无法做到这一点。当我试图启动对接程序组合时,我会得到以下错误:

未能启动调试适配器

我的停靠文件与来自web项目的文件(可以工作)是相同的,但我的项目和dll名称除外(这些设置正确)。

我的yml文件也是相同的,除了名称也被更改。不知道我做错了什么--有人成功做到了吗?当控制台应用程序通过Visual调试在docker中运行时,我最终希望调试它。

谢谢你提前给我指点!!

关于细节,这里是我的Dockerfile

代码语言:javascript
运行
复制
FROM microsoft/dotnet:2.1.2-runtime-alpine3.7 AS base
WORKDIR /app
EXPOSE 52649
EXPOSE 44331

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY AI.EmitterJob.csproj AI.EmitterJob/
RUN dotnet restore AI.EmitterJob/AI.EmitterJob.csproj
COPY . .
WORKDIR /src/AI.EmitterJob
RUN dotnet build AI.EmitterJob.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish AI.EmitterJob.csproj -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "AI.EmitterJob.dll"]

docker-compose.yml文件:

代码语言:javascript
运行
复制
version: '3.4'

services:
  ai.emitterjob:
    image: ${DOCKER_REGISTRY}ai_emitter
    build:
      context: .
      dockerfile: ../AI.EmitterJob/Dockerfile
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_HTTPS_PORT=44331
    ports:
      - "52649:80"
      - "44331:443"
    volumes:
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro

注意-我知道我不需要为控制台应用程序公开端口或在这里使用卷(或设置env ),但我希望将工作的web停靠文件的更改保持在最低限度。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-04 11:19:37

万一其他人想试试,我终于让它起作用了!

当我复制docker文件时,我唯一更改的行是:

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base

对此:

FROM microsoft/dotnet:2.1.2-runtime-alpine3.7 AS base

因为我以前用过那座高山建筑作为基础图像。返回到aspnetcore的基本映像使这一工作很好。

显然,对于适当的部署来说,这并不理想,我需要为安装dotnetcore运行时的aspnetcore基本映像找到足够的替代品。

我很高兴我现在可以通过docker调试我的控制台应用程序了!

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

https://stackoverflow.com/questions/52643874

复制
相关文章

相似问题

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