我遇到了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,似乎作曲家安装卡在&#34;生成自动加载文件&#34;,因为之后没有输出任何内容并且容器没有出现在 docker ps 列表中。< / p>
如何保持上面的文件夹结构,但仍然可以在构建或运行后运行composer install(在这种情况下,我需要添加if条件)?
答案 0 :(得分:0)
问题是您需要composer.json。
请按照以下步骤操作:
将此composer.json
文件放入您的dir结构中,如下所示:
挂载卷(修改docker-compose.yml文件)以将composer.json共享到/var/www/html
泊坞中的php-fpm
,因为尽管您将/srv/www/
指定为workdir,composer在/var/www/html
中查找。
version: '3' services: nginx: build: context: ./containers/nginx ports: - "80:80" php-fpm: build: context: ./containers/php-fpm tty: true volumes: - ./composer/composer.json:/var/www/html/composer.json
我希望它对您有用。