【问题标题】:How to install PHP composer on Windows docker image?如何在 Windows docker 镜像上安装 PHP composer?
【发布时间】:2021-08-15 01:05:29
【问题描述】:

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

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 或抛出任何错误

我尝试使用以下方法安装作曲家设置,但没有成功

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 容器中使用 PowershellCMD 执行 php.exe composer-setup.php

编辑

我连接到 docker 镜像

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>

【问题讨论】:

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

标签: php windows docker powershell composer-php


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2018-08-20
    • 2018-12-02
    • 2023-01-10
    • 2022-01-08
    • 1970-01-01
    • 2021-11-23
    • 2020-01-25
    • 2018-03-31
    • 2019-03-19
    相关资源
    最近更新 更多