【发布时间】:2018-10-19 15:00:21
【问题描述】:
我在 Docker 中运行 Laravel 5.4。这是我的docker-compose.yml 文件:
version: '2'
services:
app:
container_name: laravel_app
image: webdevops/php-apache-dev:ubuntu-16.04
links:
- mysql
depends_on:
- mysql
ports:
- 8888:80
volumes:
- .:/app
environment:
docker: 'true'
WEB_DOCUMENT_ROOT: '/app/public'
WEB_NO_CACHE_PATTERN: '\.(.*)$$'
working_dir: '/app'
mysql:
image: mariadb:latest
ports:
- 8889:80
environment:
MYSQL_ROOT_PASSWORD: 'dev'
MYSQL_DATABASE: 'dev'
MYSQL_USER: 'dev'
MYSQL_PASSWORD: 'dev'
这是我的.env 文件的相关部分:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=8889
DB_DATABASE=dev
DB_USERNAME=dev
DB_PASSWORD=dev
我能够看到 Laravel 欢迎页面——这方面的工作。但是当我运行php artisan migrate 时,我得到了这个错误:
SQLSTATE[HY000] [2002] 连接被拒绝(SQL: select * from information_schema.tables where table_schema = dev and table_name = migrations)
我尝试在.env 文件中摆弄host 和port 参数。
【问题讨论】:
-
谁调用了 docker compose 命令?你(手动)或者某种脚本,jenkins,travis,gitlab-ci...
-
我手动:
docker-compose up -d -
移除端口暴露,mariadb:latest 在其 Dockerfile 中设置它:此图像暴露标准 MySQL 端口 (3306)...
-
上帝保佑你@Kyslik
标签: php mysql laravel docker docker-compose