Beim Versuch, „php artisan migrate“ in Docker auszuführen, wurde der folgende Fehler zurückgegeben
Illuminate\Database\QueryException
could not find driver (SQL: select * from information_schema.tables where table_schema = admin and table_name = migrations and table_type = 'BASE TABLE')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:678
674▕ // If an exception occurs when attempting to run a query, we'll format the error
675▕ // message to include the bindings with SQL, which will make this exception a
676▕ // lot more helpful to the developer instead of just the database's errors.
677▕ catch (Exception $e) {
➜ 678▕ throw new QueryException(
679▕ $query, $this->prepareBindings($bindings), $e
680▕ );
681▕ }
682▕
+33 vendor frames php-i`
34 artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
Habe eine Lösung gefunden, bei der ich pdo_mysql aktivieren muss, was ich (glaube ich) in meinem Dockerfile getan habe
FROM php:7.3
RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo mbstring pdo_mysql
WORKDIR /app
COPY . .
RUN composer install
CMD php artisan serve --host=0.0.0.0
EXPOSE 8000
Auch wenn ich versuche, die Datei php.ini zu finden, um einfach die pdo_mysql-Erweiterung zu kommentieren, php-i
wird angezeigt, dass es keine php.ini-Datei gibt
Loaded Configuration File => (none)
Antwort1
Scheint, als ob Sie die PHP-MySQL-Erweiterung nicht in Ihrer Docker-Umgebung installiert haben
RUN apt-get update \
&& apt-get -y --no-install-recommends install php7.3-mysql php7.3-intl mysql-client php-common openssl zip unzip git \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo mbstring pdo_mysql
WORKDIR /app
COPY . .
RUN composer install
CMD php artisan serve --host=0.0.0.0
EXPOSE 8000