【发布时间】:2025-12-25 04:10:07
【问题描述】:
我使用这个 dockerfile 为我的 laravel 项目创建了一个容器:
FROM composer:1.8
RUN apk add --no-cache libpng libpng-dev libjpeg-turbo-dev libwebp-dev zlib-dev libxpm-dev
RUN docker-php-ext-install pdo mbstring gd
RUN docker-php-ext-enable gd
WORKDIR /app
COPY . /app
RUN composer install
CMD php artisan serve --host=0.0.0.0 --port=8181
EXPOSE 8181
然后我尝试将它用作docker-compose.yml 文件中的服务:
version: '3'
services:
webservice:
image: private.repo.com/my_user/webservice
ports:
- '80:8181'
depends_on:
- mariadb
mariadb:
image: mariadb
volumes:
- './db:/var/lib/mysql'
environment:
- MYSQL_ROOT_PASSWORD=some_password
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- mariadb
ports:
- '443:80'
environment:
- PMA_HOST=mariadb
- PMA_PORT=3306
现在我想调用我的 API 时收到错误 500。 (错误是 [QueryException] 找不到驱动程序)
我搜索了一下,发现它通常是因为.env文件有问题而发生的
这是我在 laravel 项目中的 .env 文件
DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=my_db_name
DB_USERNAME=my_db_user
DB_PASSWORD=my_db_pass
DB_HOST 与我的 docker-compose.yml 文件相同。
我也尝试在我的mariadb 服务中导出端口3306,但它也不起作用
我哪里出错了,请帮忙
-----------更新-----------
我还检查了 mariadb 服务的 ip 并将其放在我的服务容器中(当它们都工作时,没有关闭它们)但问题仍然存在。
【问题讨论】:
-
您是否尝试过在 docker-compose 中设置 MariaDB 的端口? “端口:-”3306:3306“”?查看laradock.io 以查看一些示例。如果缺少驱动程序,是否在服务中安装了 PHP MariaDB 驱动程序?
-
@Kiksy 是的,正如我在帖子中所说的那样,在我也尝试导出 mariadb 端口之前,它没有帮助
标签: laravel docker docker-compose mariadb dockerfile