C# 找不到匹配命令的可执行文件“;dotnet-/...dll“;在Linux上的Azure Web App中运行dotnet core docker映像时 1.背景
我目前正在处理以下构建/部署管道:C# 找不到匹配命令的可执行文件“;dotnet-/...dll“;在Linux上的Azure Web App中运行dotnet core docker映像时 1.背景,c#,azure,docker,travis-ci,.net-core,C#,Azure,Docker,Travis Ci,.net Core,我目前正在处理以下构建/部署管道: Github() Travis Build() 网络还原 网络构建 网络出版 docker创建图像 docker将图像发布到中心 Docker图像中心() 在Linux上使用Azure Web App执行部署() 2.问题 每当我将某些内容推送到Github存储库时,就会启动一个构建,并正确执行步骤1-3。 但是,Azure上的网站无法访问 我使用SCM浏览到调试控制台((供将来参考))并执行以下命令以查找Docker生成的日志文件: 然后使用以
- 网络还原
- 网络构建
- 网络出版
- docker创建图像
- docker将图像发布到中心
cat docker_128_err.log
cat docker_128_out.log
输出日志显示了以下结果(似乎正确):
但是,错误日志显示以下错误:
2017-01-31T13:11:46.757760723Z No executable found matching command "dotnet-/home/DeveMazeGeneratorCoreWebPublish/DeveMazeGeneratorWeb.dll"
奇怪的是,每当我在本地运行图像时,它都可以正常工作:
在Azure的Linux机器上运行Docker映像似乎与我的本地Docker安装有所不同,我的本地Docker安装在默认VM上运行Docker映像,而默认VM是在安装Docker for Windows时安装的
3.使用的配置文件:
.travis.yml:()
Dockerfile:()
4.总结
总而言之,在Azure上运行Docker的方式似乎与在本地运行时不同。有人知道这可能是什么/如何解决吗
同样,(仅供参考)错误:
2017-01-31T13:11:46.757760723Z No executable found matching command "dotnet-/home/DeveMazeGeneratorCoreWebPublish/DeveMazeGeneratorWeb.dll"
修改图像以将应用程序位放置在/home以外的位置 /home是Linux bind上的Azure App Service装载持久站点卷的地方,该卷是一个跨实例共享的磁盘,在重启之间持久化
您不必使用它(在运行自己的映像时,您可能无法使用它),但映像/主页中的任何内容都将在运行时消失。谢谢,终于解决了我的问题:)。这有文件记录吗?(附言:现在可以用了;)还没有,希望很快可以:)很好的演示顺便说一句。迷宫有时可能有点让人着迷。但是你喜欢它真是太好了。我有一个关于这个话题的后续问题。docker托管的网站似乎仍然运行良好,但是,每当我将新图像推送到docker hub时,它不会在Azure中自动更新。事实上,我也无法手动触发此映像的新“安装”。是否有关于如何实现自动化的文档?(例如,在travis构建完成并将新映像推送到docker hub后,它将自动触发Azure docker容器重新下载并重新托管)?对此的更好支持正在进行中。现在最好的选择是修改webapp上的应用程序设置。这将触发图像刷新。
docker run -it --rm -p 0.0.0.0:5001:80 devedse/devemazegeneratorcore:latest
2017-01-31T13:11:46.757760723Z No executable found matching command "dotnet-/home/DeveMazeGeneratorCoreWebPublish/DeveMazeGeneratorWeb.dll"