gpt4 book ai didi

php - 为什么 php artisan migrate 不适用于 Docker?

转载 作者:行者123 更新时间:2023-12-02 18:26:45 27 4
gpt4 key购买 nike

我使用 docker 并做 laravel new blog , 之后我做 php artisan migrate并收到此错误:

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (SQL: select * from information_schema.tables where table_schema = books and table_name = migrations and table_type = 'BASE TABLE')

那么我做错了什么?

这是我的 docker-compose.yml,我使用 mariaDB 和 adminer 而不是 phpmyadmin
version: '3'

services:

web:
build: ./web
environment:
- APACHE_RUN_USER=#1000
volumes:
- ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
- ./web/php.ini:/usr/local/etc/php/php.ini
ports:
- 8080:80
working_dir: ${APP_PATH_CONTAINER}

db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: 12345
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql

adminer:
image: adminer
restart: always
ports:
- 6080:8080

composer:
image: composer:1.6
volumes:
- ${APP_PATH_HOST}:${APP_PATH_CONTAINER}
working_dir: ${APP_PATH_CONTAINER}
command: composer install

最佳答案

在您的数据库容器中添加:

ports:
- "3306:3306"
environment:
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: databaseName
MYSQL_USER: root
MYSQL_PASSWORD: secret
SERVICE_TAGS: dev
SERVICE_NAME: mysql

然后使用以下方法进入您的容器:
docker exec -it web bash

这将打开 Laravel 容器的控制台并在那里运行
php artisan optimize 

使用您的 env 文件变量。

在此之前您必须采取的一个步骤是使用 mysql workbench 或类似工具在 docker 中创建您的数据库。

您可以使用以下凭据进行连接:
Host: 0.0.0.0
username : root
password : secret
port : 3306

然后使用您在 env 文件和 docker_compose 中使用的数据库名称创建一个空数据库。

您的 Laravel env 文件应该稍微更改一下,以便加载 mysql 容器。
DB_CONNECTION=mysql
DB_HOST=db //This is the container name you use
DB_PORT=3306
DB_DATABASE=myDatabaseName
DB_USERNAME=root
DB_PASSWORD=secret

评论答案:

您评论中的错误意味着您缺少 gd 扩展名。在您的 docker 文件中,使用以下几行:
RUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/
RUN docker-php-ext-install gd

关于php - 为什么 php artisan migrate 不适用于 Docker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60563803/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com