当前位置: 首页 > news >正文

Asp.Net Core 使用 Docker 调试并加入 docker-compose.yml 容器编排的网络,实现容器间通过 hosts 正常访问

参考

  • 豆包
  • https://learn.microsoft.com/en-us/visualstudio/containers/container-launch-settings?view=vs-2022

环境

软件/系统 版本 说明
Windows windows 10 专业版 22H2 64 位操作系统, 基于 x64 的处理器
Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.14.17
.NET 8
Docker Desktop 4.48.0
Docker Docker version 28.5.1, build e180ab8
Docker Compose Docker Compose version v2.40.0-desktop.1

正文

本文场景为:基础服务都编写在 docker-compose.yml 内,当前开发的 Asp.Net Core 应用 使用 Docker 调试 模式进行调试,应用需要调用 docker-compose.yml 内的基础服务,并且 docker-compose.yml 内的基础服务也需要访问当前开发的 Asp.Net Core 应用(如:consul 服务注册与发现)。
image

  1. 编写自己的 docker-compose.yml、指定网络并启动。
name: XiaqiuchuDemo
services:postgres:image: postgres:15-alpineenvironment:POSTGRES_USER: ${POSTGRES_USER}       # 自定义用户名,已定义在 .env,具体实现请自行搜索POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}  # 自定义密码,已定义在 .env,具体实现请自行搜索POSTGRES_DB: xiaqiuchu_db     # 自定义初始数据库名ports:- "5432:5432"  # 暴露 PostgreSQL 端口restart: unless-stoppednetworks:- xiaqiuchu_network
networks:xiaqiuchu_network:# external: truename: xiaqiuchu_network
  1. 在当前开发调试的项目执行项目名右键->添加->Docker 支持,添加 Dockerfile 文件。(在应用创建时如果已选中启用Docker支持则忽略本步骤)
    image
    image

  2. 添加完毕后在项目下会出现一个新文件Dockerfile,内容如下:(下面的内容是自动生成的,无需手动编写,仅供参考)

    # 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时
    FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
    USER $APP_UID
    WORKDIR /app
    EXPOSE 8080# 此阶段用于生成服务项目
    FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
    ARG BUILD_CONFIGURATION=Release
    WORKDIR /src
    COPY ["Home/Home.csproj", "Home/"]
    COPY ["Common/Common.csproj", "Common/"]
    RUN dotnet restore "./Home/Home.csproj"
    COPY . .
    WORKDIR "/src/Home"
    RUN dotnet build "./Home.csproj" -c $BUILD_CONFIGURATION -o /app/build# 此阶段用于发布要复制到最终阶段的服务项目
    FROM build AS publish
    ARG BUILD_CONFIGURATION=Release
    RUN dotnet publish "./Home.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值)
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app/publish .
    ENTRYPOINT ["dotnet", "Home.dll"]
    
  3. 编辑 项目/Properties/launchSettings.json,修改 profiles->Container (Dockerfile) 的内容,添加上容器指定网络的参数"containerRunArguments": "--network=xiaqiuchu_network"
    image

  4. 完成(如果不生效请删除已有容器后重新运行调试)
    此时当前调试的应用就可以通过 hosts 进行网络通信了,如应用内使用 http://postgres 就可以请求到指定容器,并且 docker-compose.yml 内的容器也可以通过当前项目名(项目名为 Home)如 http://Home 进行访问到当前项目(默认当前调试的项目 Hosts 为项目名,也可以在容器启动参数进行指定 Name 的形式进行命名)。
    image

http://www.jsqmd.com/news/16485/

相关文章:

  • 2025年10月洗碗机品牌排行榜对比与选购指南
  • 2025年10月北京离婚房产律师专业能力对比与排行分析
  • 2025年10月北京离婚房产律师专业能力对比与服务质量排行分析
  • Jemalloc简介及使用方法
  • 2025年海信洗碗机深度解析与推荐:全球技术整合与市场战略分析
  • 视频监控设备同时云台控制/onvif云台控制/一键云台控制/监控画面显示
  • 专题:2025年游戏科技的AI革新研究报告:全球市场趋势研究报告|附130+份报告PDF、数据仪表盘汇总下载
  • 2025年海信油烟机权威分析与推荐:全球化布局与技术创新的深度解析
  • 2025年10月洗碗机品牌对比与排行榜分析
  • 20232328 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • 2025年10月油烟机品牌综合评测与排行分析
  • 2025年10月上海装修公司综合实力排行榜深度解析
  • 2025年10月中国人力资源管理咨询公司对比与排行榜深度解析
  • 2025年10月油烟机品牌排行榜前十名综合评测与选购指南
  • 2025年10月北京律师行业服务能力综合对比与排行榜单
  • 2025年10月北京律师行业综合实力对比与专业服务排行榜
  • bzip2-1.0.6-13.el7.x86_64.rpm 怎么安装?CentOS 7 手动安装 rpm 包详细步骤
  • 2025年10月西安割包皮医院对比排名与专业评测分析
  • 2025年10月自行车品牌综合对比与选购排行指南
  • 2025年10月自行车品牌排行榜与深度评测对比分析
  • 2025年10月中国婚姻家事与财富管理律师综合评测排行榜
  • 2025年10月企业级需求管理工具综合对比与排行榜分析
  • 2025年10月槲皮素产品综合排名与详细评测分析
  • 2025年10月槲皮素产品综合对比与权威排行榜单解析
  • day02-Coze入门
  • 2025年10月上海装修公司综合实力排行与评测分析
  • 2025年10月中国电线电缆厂家综合实力对比与排行分析
  • 2025年10月成都装修公司综合对比排行与实用选择指南
  • 完整教程:广州途道信息科技有限公司企业白皮书:创新驱动增长,责任铸就品牌
  • 2025年10月成都装修公司对比排行与实用选择指南