我正在尝试在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?
答案 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