linux - 如何在 Linux 中运行 asp dot net core 图像?

标签 linux docker .net-core

我正在使用这个 docker 文件来构建它

FROM microsoft/dotnet:2.1-sdk-alpine3.7 AS build
WORKDIR /app
COPY Packt.HelloWorld.csproj ./
RUN dotnet restore

COPY . ./
RUN dotnet publish -c Release -o /published
RUN ls -alrth /published

FROM microsoft/dotnet:2.1-runtime-deps-alpine3.7 AS base
WORKDIR /app
COPY --from=build /published .
RUN ls -alrth /app

# ENTRYPOINT ["dotnet", "TestApp.dll"] <-- I can run in Windows like this
ENTRYPOINT ["Packt.HelloWorld"]

调试ls可以显示/app文件夹下的所有文件 但是如果我用这个

入口点 ["/app/Packt.HelloWorld"]

它提示没有这样的路径。

docker: Error response from daemon: OCI runtime create failed: 
container_linux.go:348: starting container process ca                                                             
used "exec: \"/app/Packt.HelloWorld\": stat /app/Packt.HelloWorld: no such file or directory": unknown.

如果我用

ENTRYPOINT ["Packt.HelloWorld"]

它给了我

docker: Error response from daemon: OCI runtime create failed: 
container_linux.go:348: starting container process caused "exec: 
\"Packt.HelloWorld\": executable file not found in $PATH": unknown.

图像似乎构建正常,内容也在其中,只是运行不成功。

任何人都可以提示我缺少什么吗?

谢谢

最佳答案

# ENTRYPOINT ["dotnet", "TestApp.dll"] <-- I can run in Windows like this

这也正是它在 Linux 上的工作方式。

看起来您正在执行框架相关部署(-r--runtime 参数用于 dotnet publish)。因此,在 Windows 上构建/运行的相同步骤也适用于 Linux。

关于linux - 如何在 Linux 中运行 asp dot net core 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51935397/

相关文章:

linux - 如何在 linux-shell 中使用 `amp;` 和 `gt;` 命令?

linux - 查看并选择要从列表中删除的文件

linux - 比较 Bash 脚本中的变量

docker - 将参数传递给Docker中的入口点

linux - DNSMasq 中的多个 addn-hosts conf

docker - Docker服务的端口映射和Docker运行之间的区别

postgresql - 如何将 pgadmin 容器连接到主机系统 localhost postgres

c# - 如何在.Net Core 2 中控制依赖注入(inject)的范围

c# - 将内存流拆分为 bytarray

c# - 如何在 .NET Core 和 .NET Framework 应用程序之间干净地发送数据,并使用 Json.NET 进行序列化?