【发布时间】:2021-11-01 10:59:29
【问题描述】:
我有一个使用 docker 的 laravel 项目设置(我目前使用 docker-compose 运行它)。该项目昨天运行良好,但今天已部分停止运行。
最令人惊奇的是,虽然migrations 和seeders 工作得很好,但我无法从数据库中获取任何结果!我已经尝试清除缓存和我能找到的所有其他指南,但它们根本不起作用。
我的文件内容是:
.env
APP_NAME=bookshelf
APP_ENV=local
APP_KEY=base64:/PqZs+/8YfRYtCth0U5LATD5oOXCN/5pdAs5onk1z7U=
APP_DEBUG=true
APP_URL=http://0.0.0.0:8000
DB_CONNECTION=mysql
DB_HOST=0.0.0.0
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secret
docker-compose.yml
version: "3.7"
services:
web:
image: $COMPOSE_PROJECT_NAME
container_name: $COMPOSE_PROJECT_NAME-laravel
ports:
- 8000:8000
volumes:
- ./:/app
mysql:
image: mysql:8
container_name: $COMPOSE_PROJECT_NAME-mysql
ports:
- '3306:3306'
environment:
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
MYSQL_DATABASE: laravel
MYSQL_ROOT_PASSWORD: secret
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
environment:
PMA_HOST: 'mysql'
ports:
- '127.0.0.1:8080:80'
Dockerfile
FROM php:8.0
RUN apt-get update && apt-get install -y \
libzip-dev \
&& docker-php-ext-install \
pdo_mysql \
zip
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
WORKDIR /app
COPY . /app
RUN composer install
CMD php artisan serve --host=0.0.0.0 --port=8000
EXPOSE 8000
正如我所说,以下命令完全可以正常工作:
php artisan migrate
php artisan db:seed
但是当我想加载带有以下Controller@method的页面时:
public function index()
{
$records = Book::all();
...
从books 表中获取结果,我在相应的页面/url/路由中得到以下错误:
所以...感谢您的帮助!
【问题讨论】:
标签: php mysql docker laravel-8