【问题标题】:How to install Composer with docker exec如何使用 docker exec 安装 Composer
【发布时间】:2018-12-16 09:03:09
【问题描述】:

我正在尝试在 docker 容器上安装 composer。我有一个容器laravel55,我将在其中安装作曲家。

docker exec laravel55 curl --silent --show-error 
https://getcomposer.org/installer | php

#result
Composer (version 1.6.5) successfully installed to: /root/docker- 
images/docker-php7-apache2/composer.phar
Use it: php composer.phar

安装后,我正在尝试使用composer,但它不起作用:

 docker exec -w /var/www/html laravel55 php composer.phar install

#result
Could not open input file: composer.phar

好像没有安装 Composer! 如何在 docker 容器上安装 composer?

【问题讨论】:

标签: docker composer-php docker-compose dockerfile


【解决方案1】:

您的命令实际上是在主机上本地安装 composer.phar,您只需在容器内执行 curl 命令。管道符号 | 后面的部分不在您的 docker 容器中执行,而是在您的主机上执行。在您的第二个命令中,您将您的工作目录切换到 /var/www/html,您显然期望 composer.phar 但不是在第一个命令中。

所以要让整个命令在容器中运行,可以尝试以下方法:

docker-compose exec -w /var/www/html laravel55 \
    sh -c "curl --silent --show-error https://getcomposer.org/installer | php"

【讨论】:

  • 成功了,谢谢。我错误地写了docker-compose 而不是docker,所以我更新了我的问题。
【解决方案2】:

您可以使用 official composer image from dockerhub 并从您的应用容器中安装一个卷

docker run -td --name my_app --volume /var/www myprivateregistry/myapp

docker run --rm --interactive --volumes-from my_app --volume /tmp:/tmp --workdir /var/www  composer install

【讨论】:

  • 我很困惑。它在/var/www 中运行composer install 吗?
  • /var/www 是您的容器应用程序中的一个卷
猜你喜欢
  • 2015-09-26
  • 1970-01-01
  • 2020-11-25
  • 2012-07-24
  • 1970-01-01
  • 2021-08-15
  • 2018-12-02
  • 2020-03-02
  • 2014-03-09
相关资源
最近更新 更多