You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio 2022中复现VS Code的Docker容器开发流程?

在Visual Studio 2022中复用现有Docker容器进行微服务开发

核心思路

保留Docker Desktop中已运行的其他微服务,仅让VS2022启动并调试当前开发的微服务,同时确保所有服务处于同一网络、代码与容器内运行的DLL一致。

步骤1:配置Docker Compose忽略已运行的微服务

在项目的docker-compose.override.yml文件中,将已在Docker Desktop运行的微服务标记为外部服务,阻止VS2022尝试重建它们:

services:
  # 示例:已运行的认证服务
  auth-service:
    external: true
  # 示例:已运行的支付服务
  payment-service:
    external: true
  # 当前开发的微服务(保留正常配置)
  your-service:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "5002:80"
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro

步骤2:将当前微服务加入现有Docker网络

确保VS2022启动的容器和已运行的微服务在同一网络中。先通过docker network ls命令查看现有网络名称,然后在docker-compose.yml中配置:

networks:
  default:
    external:
      name: your-existing-network-name # 替换为实际网络名称

步骤3:配置VS2022仅启动当前开发的服务

  1. 右键项目 → 属性 → 调试
  2. 启动方式选择Docker Compose
  3. 在“服务”下拉框中,仅勾选当前开发的微服务,取消其他已运行服务的勾选
  4. 保存配置

步骤4:启用快速模式解决DLL不匹配问题

VS2022的快速模式会直接挂载本地编译的DLL到容器,确保代码与运行时文件一致:

  1. 右键项目 → 属性 → 调试
  2. 找到“Docker”区域,勾选启用快速模式(仅适用于开发)
  3. 保存后,启动调试时VS2022会自动将本地bin目录挂载到容器对应路径,替代镜像中的DLL

步骤5:验证服务通信

确保当前微服务的配置文件中,其他微服务的调用地址使用容器名称(而非localhost),例如:

"AuthServiceUrl": "http://auth-service:5001"

同一Docker网络内,容器可通过名称自动解析通信。

内容的提问来源于stack exchange,提问作者Farhad 95

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:13:10