在Mac上使用Docker的IIS和.NET

情景:我们是一个由10人在Mac和Windows上开发的团队。 我们的项目使用NodeJS,.NET Framework 4.5,TSQL和IIS服务器。 为了让我们的应用跨平台,我们使用Vagrant来设置Windows。

问题:我们似乎在使用大量的时间来保持我们的开发环境运行。 在Mac和Windows上部署是不同的,部署到testing服务器是困难的,Vagrant机器是19GB,这使得部署缓慢。

解? 我们正在研究Docker,看它是否能为我们带来更好的结果。 该项目看起来很有希望,但似乎我们需要使用基于Windows的容器来运行只能在Windows Server 2016和Windows 10周年更新上运行的IIS和.NET Framework。

问题:我们必须使用基于Windows的容器吗? 我们可以在Mac上运行开发环境而不下载虚拟机​​吗? 我们应该使用Docker吗?

答案很复杂:

  1. 如果你在Mac上运行,你需要Linux容器。 您不能运行Windows容器。

  2. 有没有Linux容器版本的IIS,只有Windows容器版本: https : //hub.docker.com/r/microsoft/iis/

  3. 您可以在Linux容器中使用.NET Core https://hub.docker.com/r/microsoft/dotnet/

  4. 您可以在Linux容器中使用NodeJS https://hub.docker.com/_/node/

  5. 有使用TSQL的NodeJS和.NET核心模块

如果您需要每个开发人员都可以访问.NET 4.5(而不是.NET Core)中的IIS和/或function,那么您需要另一种方法来完成此任务。 如果人们可以在某个地方的Windows 2016服务器上进行testing,那么可以这样做。