目前的场景是在基于Windows Container的环境中使用Docker打包开发环境以使用开发工具的cli功能。
但是当前稳定版本(1904090)和RC版本(1905151)均不能正常的安装、使用。
Dockerfile:
FROM mcr.microsoft.com /windows :1809 SHELL [ "powershell" ] ENV tempDir=C:\\tempDir ENV tempDevtool=${tempDir}\\devtool.exe RUN mkdir $ env :tempDir ENV devtoolDownloadLink=https: //servicewechat .com /wxa-dev-logic/download_redirect ? type =x64&from=mpwiki&download_version=1021905081&version_type=1 RUN (New-Object System.Net.WebClient).DownloadFile($ env :devtoolDownloadLink, $ env :tempDevtool) RUN Start-Process -FilePath $ env :tempDevtool -ArgumentList '/S' -Wait RUN setx path '%PATH%;C:\\Program Files (x86)\\Tencent\\微信web开发者工具' RUN New-Item -Path "$env:LOCALAPPDATA\\微信开发者工具\\User` Data\\Default" -ItemType "directory" RUN New-Item -Path "$env:LOCALAPPDATA\\微信开发者工具\\User` Data\\Default\\.ide-status" -ItemType 'file' -Value 'On' ENTRYPOINT [ "powershell" ] |
在Container中运行症状如下:
安装程序未在$env:LOCALAPPDATA\\微信开发者工具\\中正确写入相关文件;
通过上文Dockerfile打包出的镜像执行cli,其创建的几个微信开发者工具.exe进程会立即结束,且命令行卡在,同时经debug发现开发工具stuck在
。
命令行卡住应该是因为工具立即关闭导致获取无法端口。看了下,Windows Container Docker 应该是无法支持 gui 程序的,工具应该无法安装上去才对。你不通过 cli 直接启动工具,可以吗?
Windows Container 以及其他没有桌面支持的 Windows 环境依然存在 Session 0 以供 GUI 程序正常运行;
NSIS 默认情况下提供一个 /S 参数以静默安装;
直接运行相关二进制行为如下:
直接运行 wechatdevtools.exe,相关进程正常启动。
直接运行 微信开发者工具.exe,相关进程正常启动。
那你打开工具,开启 http 端口后保持工具运行,再执行 cli 看能不能行?
不能。
idePortFile 里是什么东西?用 http 调用有办法成功吗?