在Linux上的Azure Web应用程序中运行dotnet核心docker映像时没有find可执行的匹配命令“dotnet – / .. /。dll”
1.背景
我目前正在处理下面的构build/部署pipe道:
-
Github( https://github.com/devedse/DeveMazeGeneratorCore )
-
Travis Build( https://travis-ci.org/devedse/DeveMazeGeneratorCore/jobs/196910720 )
- dotnet恢复
- dotnet构build
- dotnet发布
- docker工人创build图像
- docker工人将镜像发布到集线器
- Docker镜像集线器( https://hub.docker.com/r/devedse/devemazegeneratorcore/ )
- 在Linux上使用Azure Web App执行部署( http://devemazegeneratorcoredocker.azurewebsites.net/api/mazes/MazePath/512/512 )
- 。
2.问题
每当我把东西推到Github仓库时,一个构build就会被启动,步骤1-3正在被正确执行。 但是,Azure上的网站无法访问。
我使用SCM浏览到debugging控制台( https://devemazegeneratorcoredocker.scm.azurewebsites.net/DebugConsole/Default.cshtml (供将来参考)),并执行以下命令以查找由Docker生成的日志文件:
然后使用以下命令来读取它们:
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"
奇怪的是,每当我在本地运行图像,它都可以正常工作:
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中的任何内容都将在运行时消失。
- 从Docker容器连接到SQL Server数据库
- 如何从docker容器中的bash检查.net核心dll的版本
- 如何使用docker在dotnet上正常closures?
- Docker中用于.NET Core应用程序的appSettings.json?
- 在.NET Core上使用MongoDB Docker
- Linux Docker中的SQL Server实例string连接
- 如何从Visual Studio Mac的容器中debugging多个dot.net核心服务
- WebSocket客户端错误.net核心与Linux Docker图像与botframework直线
- Dotnet core 2 docker:找不到可执行的匹配命令“dotnet-watch”