微服务学习之旅 - 构建一个helloworld的Micro service.
将业务独立拆解,开发测试部署,这正是微服务的魅力所在之一。下面开始整一个hello world的微服务。
准备条件
1. windows 平台,install Docker Docker Desktop: The #1 Containerization Tool for Developers | Docker
安装完后咱可以check下版本。

桌面版UI就是下面蓝色小美人

2. 咱准备用Visual Studio 的ASp.NET Core Web API template模板建立一个简答的hello world micro service . 安装之。
步骤
1. 写个hello world micro service. 都是template直接生成的:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseAuthorization();
app.MapControllers();
// 配置 HTTP 请求管道
app.MapGet("/", () => "Hello World from Microservice!");
app.Run();
2. 然后咱们在VS IDE 编译运行下 确保没错哈。

咱要是不把他部署在容器里。那现在这个web api可以直接部署在windows server上的web服务器上了,比如IIS。
但是 咱的目的是把他微服务化 部署到容器里。 let's go
3. 在该项目的根目录下,咱建一个dockerfile 的文件, 用于配置docker :

下面是这个示例的dockerfile内容:
# 使用官方的 .NET 运行时作为基础镜像
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
# 使用 .NET SDK 镜像来构建应用程序
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["HelloWorldMicroservice.csproj", "./"]
RUN dotnet restore "HelloWorldMicroservice.csproj"
COPY . .
RUN dotnet build "HelloWorldMicroservice.csproj" -c Release -o /app/build
# 发布应用程序
FROM build AS publish
RUN dotnet publish "HelloWorldMicroservice.csproj" -c Release -o /app/publish
# 最终镜像
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "HelloWorldMicroservice.dll"]
4. 下面 ,万事俱备,只欠东风!下面,咱来建一个docker image :

经过一番噼里啪啦的操作, 一个美美的docker image 就按照之前dockerfile里面我们设定的那样被建好了。 弱弱的说一下,这个配置文件有点像Azure Devops里面建立release pipeline的YAML 文件。

5. 打开我们的dokcer app, 可以看到我们的image已经进好了 :

6. 然后我们运行,设置host主机的映射端口为8080:80 ( 也即是host监听的端口是8080,映射到docker里面的80端口) 然后我们的第一个Micro Service 就美美的在8080端口等待您的调用了:


欢迎走进微服务学习的大门!
浙公网安备 33010602011771号