我在使用 docker-compose 安装 php-fpm 容器时遇到了问题。
我的文件夹结构如下:
docker-compose.yml
containers/
nginx
Dockerfile
php-fpm
Dockerfile
docker-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,composer install 似乎卡在“生成自动加载文件”上,因为之后没有任何输出并且容器没有出现在 中。 docker ps 列表。
如何保持上述文件夹结构,但仍然能够在构建或运行后运行 composer install (在这种情况下,我需要添加 if 条件)?
最佳答案
问题是你需要一个 composer.json。
请按照以下步骤操作:
composer.json
目录结构中的文件如下,例如:/var/www/html
在 php-fpm
docker,因为尽管您指定了 /srv/www/
作为工作目录, Composer 在 /var/www/html
中查找. 版本:'3'
服务:
nginx:
build :
上下文:./containers/nginx
端口:
- “80:80”
php-fpm:
build :
上下文:./containers/php-fpm
tty: 真的
卷:
- ./composer/composer.json:/var/www/html/composer.json
我希望它对你有用。
关于docker 和 composer 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44469944/