我遇到了docker-compose使用composer install获取php-fpm容器的问题 .
我有文件夹结构,如:
docker-compose.yml
containers/
nginx
Dockerfile
php-fpm
Dockerfile
泊坞窗,compose.yml:
version: '3'
services:
nginx:
build:
context: ./containers/nginx
ports:
- 80:80
php-fpm:
build:
context: ./containers/php-fpm
tty: true
在php-fpm / Dockerfile中:
FROM php:7.1.5-fpm-alpine
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
WORKDIR /srv/www
ENTRYPOINT composer install --prefer-source --no-interaction --no-autoloader
使用当前的ENTRYPOINT,似乎作曲家安装卡在"Generating autoload files",因为之后没有输出任何内容并且容器没有出现在 docker ps 列表中 .
如何保持上面的文件夹结构,但仍然能够在构建或运行后运行composer install(在这种情况下,我需要添加if条件)?
1 回答
问题是你需要一个composer.json .
请按照以下步骤操作:
转到Get composer web -> getting started并创建composer.json文件 .
将此
composer.json
文件放在dir结构中,如下所示:docker-compose.yml
个容器/
nginx
Dockerfile
php-fpm
Dockerfile
composer/
composer.json
装载卷(修改docker-compose.yml文件)以在
php-fpm
docker中将composer.json共享为/var/www/html
,因为虽然您将/srv/www/
指定为workdir,但是composer会在/var/www/html
中查找 .我希望它对你有用 .