1.背景
我目前正在处理以下构建/部署管道:
。
2.问题
每当我将某些内容推送到Github存储库时,都会启动构建并正确执行步骤1-3。
但是,无法访问Azure上的网站。
我使用SCM浏览到调试控制台(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安装相比,在Azure的Linux机器上运行Docker镜像似乎有点不同,我的本地Docker安装在为Windows安装Docker时正在安装的默认VM上运行Docker镜像。
3.使用的配置文件:
.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绑定(bind)安装永久站点卷的位置,该站点卷是跨实例共享的磁盘,并且在两次重新启动之间保持不变。
您不必使用它(运行自己的镜像时可能没有任何用处),但是镜像/ home中的任何内容在运行时都会消失。