php - 作曲家安装不起作用 php-alpine docker
问题描述
我正在为我的 laravel 应用程序使用带有 nginx alpine 容器的 php FPM alpine 容器。
这是我的 Dockerfile,
FROM php:7.4-fpm-alpine
WORKDIR /usr/src/app
# install composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN php -r "unlink('composer-setup.php');"
# copy files
COPY ./ /usr/src/app/
# install packages
ENV COMPOSER_ALLOW_SUPERUSER 1
RUN composer install
这是我的 docker-compose 文件,
version: "3.7"
services:
web:
image: nginx:1.19-alpine
ports:
- 80:80
volumes:
- ../api:/usr/src/app
- ./site.conf:/etc/nginx/conf.d/site.conf
depends_on:
- api
api:
build: ../api
volumes:
- ../api:/usr/src/app
当我运行docker-compose up --build
容器构建过程时,正如您在随附的屏幕截图中看到的那样,但该vendor
目录从未由作曲家创建!?
使用 PHP FPM Alpine 容器时这是一个已知问题吗?
此外,当我使用此命令访问容器时
docker exec -it docker_api_1 /bin/ash
并composer install
手动运行,然后一切正常。任何建议表示赞赏。
解决方案
推荐阅读
- struts1 - Apache Struts 1.x 无漏洞版本
- ruby-on-rails - Rails 5 Puma 服务器不断冻结和挂起,除非我将工人数设置为 20
- django - 同时更新实例成员的多个字段
- azure - 如何使用 azure powershell 命令获取特定 azure 资源组中存在的 azure 逻辑应用列表
- marklogic - 带约束的 MarkLogic 搜索返回错误结果
- .net - .NET core 2.1 模板缺失
- angular - angular-cli 的 environmentSource 文件是否总是加载?
- angular-services - Angular 6 服务,HTTPClient
- javascript - 如何更改汉堡包的背景颜色
- spring - Spring MVC 控制器创建文件路径