Estoy tratando de ejecutar laravel en un contenedor docker. Sin embargo, creé un archivo docker para instalar las dependencias y extensiones requeridas. Luego, creé un archivo docker-compose para ejecutar el contenedor. Pero, al ejecutar el contenedor usando docker-compose up aparece el siguiente error:
Advertencia: require(/var/www/vendor/autoload.php): error al abrir el flujo: No existe tal archivo o directorio en /var/www/artisan en la línea 18 main_system_1 | sistema_principal_1 | Error fatal: require(): Error al abrir requerido '/var/www/vendor/autoload.php' (include_path='.:/usr/local/lib/php') en /var/www/artisan en la línea 18 workspace_main_system_1 salió con codigo 255
El Dockerfile:
FROM php:alpine # Install dev dependencies RUN apk add --no-cache --virtual .build-deps \ $PHPIZE_DEPS \ curl-dev \ imagemagick-dev \ libtool \ libxml2-dev \ postgresql-dev \ sqlite-dev # Install production dependencies RUN 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 extensions RUN pecl install \ imagick # Install and enable php extensions RUN docker-php-ext-enable \ imagick RUN docker-php-ext-configure zip --with-libzip RUN docker-php-ext-install \ curl \ iconv \ mbstring \ pdo \ pdo_mysql \ pdo_pgsql \ pdo_sqlite \ pcntl \ tokenizer \ xml \ gd \ zip \ bcmath # Install composer ENV COMPOSER_HOME /composer ENV PATH ./vendor/bin:/composer/vendor/bin:$PATH ENV COMPOSER_ALLOW_SUPERUSER 1 RUN curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer # Install PHP_CodeSniffer RUN composer global require "squizlabs/php_codesniffer=*" # Cleanup dev dependencies RUN apk del -f .build-deps # Setup working directory WORKDIR /var/www COPY composer.json composer.json #COPY composer.lock composer.lock RUN composer install --no-autoloader COPY . . RUN composer dump-autoload RUN php artisan key:generate RUN php artisan jwt:secret RUN chmod 777 -R storage CMD php artisan serve --host=0.0.0.0 --port=8000 EXPOSE 8000 Y este es mi archivo docker-composr.yml :
ersion: '3.1' services: main_system: build: ./main-system ports: - 8000:8000 env_file: ./main-system/.env volumes: - ./main-system:/var/wwwSu dockerfile ejecuta compose install --no-autoloader . Este puede ser el problema.
Resolví el problema por:
COPY . . comando y ponerlo antes de RUN composer install--no-autoloader