在Linux上的Azure Web应用程序中运行dotnet核心docker映像时没有find可执行的匹配命令“dotnet – / .. /。dll”

1.背景

我目前正在处理下面的构build/部署pipe道:

  1. Github( https://github.com/devedse/DeveMazeGeneratorCore )

  2. Travis Build( https://travis-ci.org/devedse/DeveMazeGeneratorCore/jobs/196910720 )

    • dotnet恢复
    • dotnet构build
    • dotnet发布
    • docker工人创build图像
    • docker工人将镜像发布到集线器
  3. Docker镜像集线器( https://hub.docker.com/r/devedse/devemazegeneratorcore/ )
  4. 在Linux上使用Azure Web App执行部署( http://devemazegeneratorcoredocker.azurewebsites.net/api/mazes/MazePath/512/512 )
    • Docker在Azure上

2.问题

每当我把东西推到Github仓库时,一个构build就会被启动,步骤1-3正在被正确执行。 但是,Azure上的网站无法访问。

我使用SCM浏览到debugging控制台( https://devemazegeneratorcoredocker.scm.azurewebsites.net/DebugConsole/Default.cshtml (供将来参考)),并执行以下命令以查找由Docker生成的日志文件:

命令KUDU

然后使用以下命令来读取它们:

cat docker_128_err.log cat docker_128_out.log 

出日志显示以下结果(似乎是正确的):

 Login Succeeded latest: Pulling from devedse/devemazegeneratorcore 5040bd298390: Already exists fce5728aad85: Already exists 76610ec20bf5: Already exists 51ee4768b31d: Already exists 4dc55ff439a1: Already exists 9cb727c7d7a0: Already exists 2bea08464ad0: Pulling fs layer 2bea08464ad0: Verifying Checksum 2bea08464ad0: Download complete 2bea08464ad0: Pull complete Digest: sha256:647f3db3daa3330b7eb109a1c604e5bd403c2c7089b3c18c5e9249a9805d3a4d Status: Downloaded newer image for devedse/devemazegeneratorcore:latest Login Succeeded latest: Pulling from devedse/devemazegeneratorcore Digest: sha256:647f3db3daa3330b7eb109a1c604e5bd403c2c7089b3c18c5e9249a9805d3a4d Status: Image is up to date for devedse/devemazegeneratorcore:latest 

错误日志但是,显示以下错误:

 2017-01-31T13:11:46.757760723Z No executable found matching command "dotnet-/home/DeveMazeGeneratorCoreWebPublish/DeveMazeGeneratorWeb.dll" 

奇怪的是,每当我在本地运行图像,它都可以正常工作: Dockerlocal

 docker run -it --rm -p 0.0.0.0:5001:80 devedse/devemazegeneratorcore:latest 

不知何故,在安装Docker for Windows的默认虚拟机上运行Docker镜像的本地Docker安装相比,在Azure的Linux机器上运行Docker镜像似乎有所不同。

3.使用的configuration文件:

.travis.yml:( https://github.com/devedse/DeveMazeGeneratorCore/blob/master/.travis.yml )Dockerfile:( https://github.com/devedse/DeveMazeGeneratorCore/blob/master/Scripts/Docker/ Dockerfile )

4.总结

所以总结一下,在Azure上运行Docker似乎是以不同的方式执行,然后在本地执行此操作。 有没有人有一个想法,这可能是/如何解决它?

再次,(只是为了便于参考),错误:

 2017-01-31T13:11:46.757760723Z No executable found matching command "dotnet-/home/DeveMazeGeneratorCoreWebPublish/DeveMazeGeneratorWeb.dll" 

修改你的图像,把你的应用程序位置放在/ home以外的地方。

/ home是Linux上的Azure App Service绑定挂载永久性站点卷的位置,这是一个跨实例共享的磁盘,并在重新启动之间持续存在。

您不必使用它(运行自己的图像时可能没有任何用处),但是图像/ home中的任何内容都将在运行时消失。