在dotnet SDK和Docker容器上

这个问题应该是非常简单的。

假设你正在尝试运行一个Asp.Net Core Web Api。 该应用程序将运行在干净的Linux安装中的Docker容器(味道并不重要)。 该容器位于一个带有泊坞窗工具的Kubernetes集群中的POD内部。

Dockerfile需要定位一个特定版本的aspnetcore,看起来像这样:

FROM microsoft/aspnetcore:1.1 COPY . /app WORKDIR /app EXPOSE 5000/tcp ENV ASPNETCORE_URLS http://*:5000 ENTRYPOINT ["dotnet", "run"] 

testing一下,我运行一个Docker命令

在这里输入图像说明

所以我被困在这里, 我假设ENTRYPOINT定义中的“dotnet”命令是运行.Net Core SDK。

如果此Linux代理上的容器没有安装SDK,或者所安装的SDK是您尝试使用的SDK的较旧版本,那么您将如何将此代码移植到Docker构build中? 从本质上来说,ENTRYPOINT中的“dotnet”命令是指一个不存在的程序?

我是否应该用容器打包SDK? 如果是这样,该行应该读取ENTRYPOINT [“./dotnet”,“run”],因为它在Linux上? 另外如果是这样,我需要执行什么其他步骤来打包SDK?

我的假设是SDK已经打包在Microsoft / aspnetcore:1.1的容器中了吗? 如果是这样,有没有办法在ENTRYPOINT定义中引用打包的可执行文件?

任何有识之士将不胜感激!

如果你需要SDK,我想你想要https://hub.docker.com/r/microsoft/aspnetcore-build/

你使用的图像只包括运行时,而不是SDK。