在dotnet SDK和Docker容器上

时间:2017-06-13 00:14:03

标签: docker asp.net-core .net-core dotnet-linux

这个问题应该是非常直截了当的。

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

Dockerfile需要针对特定​​版本的aspnetcore,看起来像这样:

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

测试一下,我运行一个Docker命令......

enter image description here

所以我难以理解的是这个;我假设ENTRYPOINT定义中的“dotnet”命令正在运行.Net Core SDK。

如果此Linux代理上的容器没有安装SDK,或者安装的SDK是您尝试使用的SDK的旧版本,那么您将如何获得此版本的docker?本质上,ENTRYPOINT中的“dotnet”命令指的是一个不存在的程序?

我是否应该将SDK与容器打包在一起?如果是这样,该行是否应该读取 ENTRYPOINT [“./dotnet”,“run”] 因为它在Linux上?如果是这样,我还需要执行哪些其他步骤才能打包SDK?

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

非常感谢任何见解!

1 个答案:

答案 0 :(得分:3)

如果您需要SDK,我认为您需要https://hub.docker.com/r/microsoft/aspnetcore-build/

您使用的图像仅包括运行时,而不包括SDK。