无法在 Docker Windows Container 内执行第三方 Exe 文件

问题描述

我正在尝试执行一个不属于我的财产 exe 的 win browserstackLocal.exe 文件 https://www.browserstack.com/local-testing/automate#establishing-a-local-testing-connection

这是我的 Dockerfile:

FROM mcr.microsoft.com/dotnet/sdk:5.0

SHELL ["pwsh","-Command"]

ENV BINARIES=/binaries

workdir $BINARIES

RUN Invoke-WebRequest -Uri https://www.browserstack.com/browserstack-local/browserstackLocal-win32.zip -OutFile $env:BINARIES/browserstackLocal-win32.zip && \
Expand-Archive -LiteralPath $env:BINARIES/browserstackLocal-win32.zip -DestinationPath $env:BINARIES && \
Remove-Item $env:BINARIES/browserstackLocal-win32.zip

RUN ls
RUN ps
RUN ./browserstackLocal.exe
RUN ps

这是输出

Building qa-aut-net5
Step 1/9 : FROM mcr.microsoft.com/dotnet/sdk:5.0
 ---> de8b4af9de0d
Step 2/9 : SHELL ["pwsh","-Command"]
 ---> Using cache
 ---> 8977a4b019ef
Step 3/9 : ENV BINARIES=/binaries
 ---> Using cache
 ---> 66200b6b9a18
Step 4/9 : workdir $BINARIES     
 ---> Using cache
 ---> 6e530b267fe4
Step 5/9 : RUN Invoke-WebRequest -Uri https://www.browserstack.com/browserstack-local/browserstackLocal-win32.zip -OutFile $env:BINARIES/browserstackLocal-win32.zip && Expand-Archive -LiteralPath $env:BINARIES/browserstackLocal-win32.zip -DestinationPath $env:BINARIES && Remove-Item $env:BINARIES/browserstackLocal-win32.zip
 ---> Running in 0e672adafa5b
Removing intermediate container 0e672adafa5b
 ---> 680bd1b4c2db
Step 6/9 : RUN ls
 ---> Running in 6e51157b7245

    Directory: C:\binaries

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a    ---          12/18/2020  9:11 AM       41220096 browserstackLocal.exe

Removing intermediate container 6e51157b7245
 ---> cb7b0be51d38
Step 7/9 : RUN ps
 ---> Running in ce4e5d7f7ae0

 NPM(K)    PM(M)      WS(M)     cpu(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
      6     1.00       3.77       0.00    1076   1 CExecSvc
      6     1.04       2.24       0.00     976   1 csRSS
      0     0.06       0.01       0.00       0   0 Idle
     17     2.72       9.37       0.00     328   1 lsass
     49    47.79      69.54       1.31    1324   1 pwsh
      9     1.63       5.04       0.00      64   1 services
      4     0.49       1.16       0.00     952   0 smss
     12     2.91       9.99       0.00     484   1 svchost
     14     1.98       6.63       0.00     636   1 svchost
      8     1.84       6.04       0.00     796   1 svchost
      7     1.40       4.65       0.00    1052   1 svchost
     15     5.48      10.54       0.00    1116   1 svchost
     14     2.71       7.68       0.00    1204   1 svchost
     15     9.45      19.04       0.00    1360   1 svchost
      0     0.15       0.14       0.00       4   0 System
      8     1.25       4.13       0.00    1012   1 wininit

Removing intermediate container ce4e5d7f7ae0
 ---> 1b7f55f0de14
Step 8/9 : RUN ./browserstackLocal.exe
 ---> Running in fd16d66e6dba
ERROR: Service 'qa-aut-net5' Failed to build : The command 'pwsh -Command ./browserstackLocal.exe' returned a non-zero code: 1

返回这个并且没有关于错误的详细信息:

ERROR: Service 'XXX' Failed to build : The command 'pwsh -Command ./browserstackLocal.exe' returned a non-zero code: 1

您可以在日志中检查 browserstackLocal.exe 是否已成功下载,我也尝试在 Windows 的机器上执行相同的文件,并且工作正常。问题仅在我在 docker windows 容器内运行时发生。

也许缺少某些 DLL 文件,或者我需要安装其他任何东西。你有什么想法来解决这个问题吗?或任何解决方法

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)