为了账号安全,请及时绑定邮箱和手机立即绑定

在docker容器中运行laravel时找不到autoload.php

在docker容器中运行laravel时找不到autoload.php

PHP
斯蒂芬大帝 2021-06-29 17:53:02
我正在尝试在 docker 容器上运行 laravel。但是,我创建了一个 docker 文件来安装所需的依赖项和扩展。然后,我创建了一个 docker-compose 文件来运行容器。但是,当使用docker-compose up以下错误运行容器时会出现:警告:要求(/var/www/vendor/autoload.php):无法打开流:第 18 行 main_system_1 | 上的 /var/www/artisan 中没有这样的文件或目录 | main_system_1 | 致命错误:require():在第 18 行的 /var/www/artisan 中打开所需的 '/var/www/vendor/autoload.php' (include_path='.:/usr/local/lib/php') 失败,已退出带代码 255Dockerfile:FROM php:alpine# Install dev dependenciesRUN apk add --no-cache --virtual .build-deps \    $PHPIZE_DEPS \    curl-dev \    imagemagick-dev \    libtool \    libxml2-dev \    postgresql-dev \    sqlite-dev# Install production dependenciesRUN apk add --no-cache \    bash \    curl \    g++ \    gcc \    git \    imagemagick \    libc-dev \    libpng-dev \    make \    mysql-client \    nodejs \    nodejs-npm \    yarn \    openssh-client \    postgresql-libs \    rsync \    zlib-dev \    libzip-dev# Install PECL and PEAR extensionsRUN pecl install \    imagick# Install and enable php extensionsRUN docker-php-ext-enable \    imagickRUN docker-php-ext-configure zip --with-libzipRUN docker-php-ext-install \    curl \    iconv \    mbstring \    pdo \    pdo_mysql \    pdo_pgsql \    pdo_sqlite \    pcntl \    tokenizer \    xml \    gd \    zip \    bcmath# Install composerENV COMPOSER_HOME /composerENV PATH ./vendor/bin:/composer/vendor/bin:$PATHENV COMPOSER_ALLOW_SUPERUSER 1RUN curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer# Install PHP_CodeSnifferRUN composer global require "squizlabs/php_codesniffer=*"# Cleanup dev dependenciesRUN apk del -f .build-deps# Setup working directoryWORKDIR /var/wwwCOPY composer.json composer.json#COPY composer.lock composer.lockRUN composer install --no-autoloaderCOPY . .RUN composer dump-autoloadRUN php artisan key:generateRUN php artisan jwt:secretRUN chmod 777 -R storageCMD php artisan serve --host=0.0.0.0 --port=8000EXPOSE 8000
查看完整描述

2 回答

?
MM们

TA贡献1886条经验 获得超2个赞

您的 dockerfile 运行compose install --no-autoloader. 这可能是问题所在。


查看完整回答
反对 回复 2021-07-09
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

我通过以下方式解决了问题:

  1. 从 docker-compose.yml 中删除卷

  2. 更改COPY . .命令的顺序并将其放在前面RUN composer install

  3. 删除 --no-autoloader


查看完整回答
反对 回复 2021-07-09
  • 2 回答
  • 0 关注
  • 318 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信