Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Windows docker映像上安装PHP composer?_Php_Windows_Docker_Powershell_Composer Php - Fatal编程技术网

如何在Windows docker映像上安装PHP composer?

如何在Windows docker映像上安装PHP composer?,php,windows,docker,powershell,composer-php,Php,Windows,Docker,Powershell,Composer Php,我正在尝试在Windows Docker映像上安装Composer PS C:\Users> docker run -it myphp:latest Microsoft Windows [Version 10.0.17763.1935] (c) 2018 Microsoft Corporation. All rights reserved. Dockerfile如下所示 FROM mcr.microsoft.com/windows/servercore:ltsc2019 RUN pow

我正在尝试在Windows Docker映像上安装Composer

PS C:\Users> docker run -it myphp:latest
Microsoft Windows [Version 10.0.17763.1935]
(c) 2018 Microsoft Corporation. All rights reserved.
Dockerfile如下所示

FROM mcr.microsoft.com/windows/servercore:ltsc2019

RUN powershell.exe Invoke-WebRequest -Uri "https://getcomposer.org/installer" -OutFile composer-setup.php
RUN powershell.exe Start-Process -FilePath "php.exe" -ArgumentList composer-setup.php
但是,当我构建docker映像时,它不会安装
composer
,也不会抛出任何错误

我尝试使用以下方法安装composer安装程序,但没有一种方法有效

1)  RUN powershell.exe Start-Process -FilePath "php.exe" -ArgumentList composer-setup.php
2)  RUN powershell.exe Invoke-Expression "'php.exe composer-setup.php'"
3)  RUN powershell.exe Invoke-Expression "php.exe composer-setup.php"
4)  RUN powershell.exe Invoke-Expression -Command "'php.exe composer-setup.php'"
5)  RUN powershell.exe Invoke-Expression "& 'php.exe' composer-setup.php"  - & not allowed error message
请告诉我如何在Docker容器中使用
Powershell
CMD
执行
php.exe composer setup.php

编辑

我已连接到docker image

PS C:\Users> docker run -it myphp:latest
Microsoft Windows [Version 10.0.17763.1935]
(c) 2018 Microsoft Corporation. All rights reserved.
并执行以下操作,但什么也没发生,而是返回到提示符

C:\Softwares\Composer>php.exe composer-setup.php
'php.exe' is not recognized as an internal or external command,
operable program or batch file.

C:\Softwares\Composer>C:\Softwares\PHP\php.exe composer-setup.php

C:\Softwares\Composer>

我在Dockerfile中添加了以下内容,效果很好

ADD vcruntime140.dll C:\\Windows\\System32\\vcruntime140.dll

与Windows主机(默认情况下存在DLL)不同,我们需要将requires DLL显式添加到Docker

为什么不直接下载PHAR?或者甚至可以尝试,尽管我不知道它是否支持无人值守运行。(更明智的做法是,放弃Windows运行PHP)。@yivi感谢您的帮助。Windows installer不支持无人参与安装。但是,不知道为什么composer-setup.php没有再次执行,只需下载phar即可。@yivi如何下载composer.phar?