ASP.NET Core分布式项目实战

默认教学计划
1052人加入学习
(33人评价)
价格 ¥398.00
教学计划

Docker编译问题:

错误代码:

CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/src/code/User.API.csproj]

Build FAILED.

CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/src/code/User.API.csproj]
    0 Warning(s)
    1 Error(s)

dockerfile文件:

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY *.csproj code/
RUN dotnet restore code/*.csproj
COPY . .
WORKDIR /src/code
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", "User.API.dll"]

 

解决方案:

项目属性-->输出类型:

从控制台应用程序改为类库。

问题解决。

 

[展开全文]

官方文档:https://docs.docker.com/compose/startup-order/

可以通过depends_on来编排服务之间的依赖关系,但是有一个问题,比如一个web项目,依赖一个数据库或者依赖一个redis服务,那么要等到数据库完全准备好之后,才能让web服务开始启动并连接数据库,docker默认的依赖方式是只要依赖数据库服务容器启动就会启动web容器,而不 检查数据库是否已经准备好。

解决方法一个方面是在连接层面使用自动重连策略,比如mysql jdbc可以有auto reconnect自动重连参数。或者使用下面建议的用一个脚本(wait-for-it.sh)来探测依赖服务已经完全准备好,或者自己编写一个health check脚本来检测依赖服务的健康状况来判断依赖服务是否启动完成。

[展开全文]

yml文件需要用ASCII编码格式,否则执行docker-compose build 会报出”ERROR: In file '.\docker-compose.yml', service '锘縱ersion' must be a mapping not a string.“错误,我踩坑几小时,经微信群友Karl解救才得解脱。

[展开全文]

授课教师

程序员

课程特色

下载资料(2)
视频(144)
讨论(1)
图文(2)