首页 > 解决方案 > 作曲家安装不起作用 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手动运行,然后一切正常。任何建议表示赞赏。

这是我访问该站点时的错误消息。它找不到作曲家 autoload.php 文件, 在此处输入图像描述

标签: phplaraveldockerdocker-compose

解决方案


推荐阅读