我正在尝试在 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 关注
- 318 浏览
添加回答
举报
0/150
提交
取消