laradock-的踩坑之旅

一直想尝试使用 docker,今天终于有时间来折腾,所以来踩坑啦!
本人是 Windows 系统,怎么安装就不详细描述了,直接去官网下载安装就好。相应的镜像加速也不会过多描述,纸片文章主要用于 laradock 的踩坑体验。

一。安装 laradock#

主要步骤都是按照官网文档进行
1. 将 laradock 克隆到你项目的根目录:

git clone https://github.com/Laradock/laradock.git

2. 进入 laradock 文件夹并复制 env-example 为 .env

cp env-example .env

3. 运行 docker-compose 来构建环境

docker-compose up -d nginx mysql

到这一步我就开始遇到问题了,执行 docker-compose up -d nginx mysql 命令的时候会出现如下图中的错误信息

这个问题的根本原因是 raw.githubusercontent.com 这个地址访问不了
解决方案:
1. 百度查询 raw.githubusercontent.com 地址的真实 IP
2. 修改本地 host 文件

151.101.76.133 raw.githubusercontent.com

再次执行 docker-compose up -d nginx mysql 指令,问题得到解决。

二。安装项目后执行文件迁移#

安装好 laradock 后本地做了一个 blog 项目。
但是在执行 php artisan migrate 进行数据迁移时发现一直报 could not find driver 这个错误,如图:
又是一通百度,以及查看 laradock 中的 php 没有发现问题。
最后打开本地 PHP.ini 文件发现是本地的 extension=pdo_mysql 扩展没有打开。
其实这里我没有搞太懂,我的项目不是应该基于 laradock 在运行吗?这里怎么还会用到我本地的 PHP 环境?也可能是我基础太不牢靠,基础性的尝试都没有理清楚的管理。
本地 php.ini 打开 extension=pdo_mysql 注释后问题得到解决。

但是紧接着又遇到新的问题,如图:

这里又引出了一个新的问题,官方文档已在要求将 .env 配置改成

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306

但是最终我改成了

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306

才迁移成功

我不知道这里的问题具体是处在哪里。:joy:
就是这么点东西我都折腾了这么久,我的道路还任重道远啊。今天踩坑之路久到此结束。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

file 名字错了

2.mysql 连接使用 DB_HOST=mysql 是用的容器名,在 laradock 中配置连接建议使用容器名

3. 迁移及命令不要在本地执行,否则各种问题,比如数据库连不了,进入 workspace 找到本地项目在容器中的映射目录,执行所有命令都 ok :grin:

4年前 评论

楼上的大佬说的对,你可以通过 docker exec -it workspace bash 命令进入 workspace 容器中执行数据迁移命令,如果在本机中执行命令走的当然是本机的 PHP 环境,127.0.0.1 能生效是因为 mysql 容器监听了主机的 3306 端口,使用 laradock 的话 最好各种命令都在容器中运行

4年前 评论

感谢大佬指出的错误,已修改。才明白需要进入到容器中执行命令。谢谢 @GamersGu @mution

4年前 评论

未填写
文章
1
粉丝
1
喜欢
1
收藏
1
排名:2216
访问:768
私信
所有博文
社区赞助商