我正在嘗試在 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 回答

慕婉清6462132
TA貢獻1804條經驗 獲得超2個贊
我通過以下方式解決了問題:
從 docker-compose.yml 中刪除卷
更改
COPY . .
命令的順序并將其放在前面RUN composer install
刪除
--no-autoloader
- 2 回答
- 0 關注
- 376 瀏覽
添加回答
舉報
0/150
提交
取消