如何使用docker exec安装Composer

时间:2018-07-08 13:53:34

标签: docker composer-php docker-compose dockerfile

我正在尝试在docker容器上安装composer。我有一个laravel55容器,我打算在其内部安装composer。

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

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

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

#result
Could not open input file: composer.phar

似乎尚未安装Composer! 如何在docker容器上安装composer?

2 个答案:

答案 0 :(得分:4)

使用命令,您实际上是在主机上本地安装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"

答案 1 :(得分:1)

您可以使用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