docker - 未从dockerfile发布具有Net Core 3.1 API的Dockerfile

标签 docker asp.net-core dockerfile asp.net-core-3.1

这是问题所在:
我必须将asp.net core 3.1 api发送给客户端。
我确实是通过VisualStudio将其作为独立的(linux-64x)发布的,以便作为第三方合作伙伴提供较少的文件。
发送之前,我正在尝试使用docker进行测试。客户端将无法访问任何代码存储库或除软件包以外的任何内容。如何使其通过Dockerfile运行?我试过几个例子,但似乎都没有用。我是Docker的新手,但我发现每个dockerfile示例都执行“dotnet build”或“dotnet publish”之类的操作,但是Api已经发布。我只需要它与dockerfile一起运行。
Dockerfile即时通讯使用:

FROM mcr.microsoft.com/dotnet/core/runtime-deps:3.1.0-alpine3.10
WORKDIR /api
COPY publish/Api api
ENV ASPNETCORE_URLS=http://+:5000
CMD ["./api"]
从VS发布生成的文件(Dockerfile除外)
Generated files from VS publish (except Dockerfile)
更新
这样做会给我“权限被拒绝”错误:
FROM mcr.microsoft.com/dotnet/core/runtime-deps:3.1.0-alpine3.10
COPY . api
ENV ASPNETCORE_URLS=http://+:5000
CMD ["./api"]
更新2
构建命令为:
docker build .
资料夹结构:
enter image description here
enter image description here

最佳答案

如果您将其发布为:

dotnet publish Api/Api.csproj -c Release -o /publish
然后试试这个
FROM mcr.microsoft.com/dotnet/core/runtime-deps:3.1.0-alpine3.10
WORKDIR /api
COPY /publish .
ENV ASPNETCORE_URLS=http://+:5000
ENTRYPOINT ["dotnet", "Api"]

关于docker - 未从dockerfile发布具有Net Core 3.1 API的Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63904927/

相关文章:

couchdb - Node.js Koa 应用程序和 CouchDB 在单个容器中

docker - Docker撰写:可以对依赖服务的延迟启动进行建模吗?

msbuild - 如何从项目中排除文件夹但不从发布中排除?

c# - 如何向 Swagger 添加健康检查

asp.net - Azure AD B2C - ASP.NET Core 注册链接

dockerfile - Linux Alpine 的默认用户是什么?

docker - Docker Volume指向Dockerfile中的主机目录

docker - Docker,Kafka-复制在远程代理之间不起作用

mysql - 在 docker-compose.yml 中运行命令

docker - 去构建 : build output "api" already exists and is a directory