收藏
回答

开发工具cli无法在Windows Container Docker中正常初始化

问题模块 框架类型 问题类型 操作系统 工具版本
开发者工具 小程序 Bug Windows 全版本

目前的场景是在基于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中运行症状如下:

  1. 安装程序未在$env:LOCALAPPDATA\\微信开发者工具\\中正确写入相关文件;

  2. 通过上文Dockerfile打包出的镜像执行cli,其创建的几个微信开发者工具.exe进程会立即结束,且命令行卡在,同时经debug发现开发工具stuck在

回答关注问题邀请回答
收藏

1 个回答

  • 红帽
    红帽
    2019-05-16

    命令行卡住应该是因为工具立即关闭导致获取无法端口。看了下,Windows Container Docker 应该是无法支持 gui 程序的,工具应该无法安装上去才对。你不通过 cli 直接启动工具,可以吗?

    2019-05-16
    赞同
    回复 4
    • Jiacheng
      Jiacheng
      2019-05-16
      1. Windows Container 以及其他没有桌面支持的 Windows 环境依然存在 Session 0 以供 GUI 程序正常运行;

      2. NSIS 默认情况下提供一个 /S 参数以静默安装;

      3. 直接运行相关二进制行为如下:


      直接运行 wechatdevtools.exe,相关进程正常启动。



      直接运行 微信开发者工具.exe,相关进程正常启动。


      2019-05-16
      回复
    • 红帽
      红帽
      2019-05-16回复Jiacheng

      那你打开工具,开启 http 端口后保持工具运行,再执行 cli 看能不能行?

      2019-05-16
      回复
    • Jiacheng
      Jiacheng
      2019-05-16回复红帽

      不能。


      2019-05-16
      回复
    • 红帽
      红帽
      2019-05-17回复Jiacheng

      idePortFile 里是什么东西?用 http 调用有办法成功吗?

      2019-05-17
      回复
登录 后发表内容