Dockerize 一个网络核心 Web api

2024-05-12

我正在尝试对 aspnetcore webapi 进行 dockerize。我按照这里的教程进行操作:https://docs.docker.com/engine/examples/dotnetcore/ https://docs.docker.com/engine/examples/dotnetcore/

但是当我运行容器时,我收到以下消息:

Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
  http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

我从 github 站点的 Dockerfile 下载代码并构建映像:

https://github.com/dotnet/dotnet-docker-samples/tree/master/aspnetapp

我运行容器...并且它有效...我比较了两个 Dockerfile,它们非常相似:

Mine:

FROM microsoft/aspnetcore-build:2.0.5-2.1.4 AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM microsoft/aspnetcore:2.0.5
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "fnizz.webapi.dll"]

以及 github 示例中的一个:

FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]

如果有遗漏的信息,请告诉我,我会添加它。谢谢 !


尝试删除一个RUN ln -s fnizz.webapi.dll entrypoint.dll并将您的 ENTRYPOINT 更改为ENTRYPOINT [ "dotnet", "entrypoint.dll" ]。我相信dotnet可能对 DLL 扩展很挑剔。此模式还允许您通用化程序集名称——有时很有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dockerize 一个网络核心 Web api 的相关文章

随机推荐