使用 Docker 搭建 Laravel 本地环境

(原文地址:https://blog.tanteng.me/2017/10/docker-lar...

Laravel 官方提供 Homestead 和 Valet 作为本地开发环境,Homestead 是一个官方预封装的 Vagrant Box,也就是一个虚拟机,但是跟 docker 比,它占用体积太大,启动速度慢,同时响应速度很慢,现在有了 docker 这种更好的方式,可以轻松方便的搭建整套 PHP 开发环境。

本文就介绍如何使用 docker 搭建 Laravel 本地环境。

安装 docker

首先安装 docker。

克隆 laradock

laradock 官方文档:http://laradock.io/

laradock github:https://github.com/laradock/laradock

laradock 是一个包含全功能用于 docker 的 PHP 运行环境,使用 docker-compose 方式部署。(特别说明:它不仅用于 Laravel 环境搭建,而且支持所有其他 PHP 框架,它就是一整套 PHP 的环境。)

部署 PHP 环境

1.克隆 laradock

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

2.创建环境变量文件

cp env-example .env

3.直接用 docker-compose 运行需要启用的服务,如:

docker-compose up -d nginx mysql redis beanstalkd

这样就启动了所需的 PHP 运行环境,php-fpm 默认会运行,所以不需要指定。

file

Laravel 配置文件

Laravel 配置文件需要注意的问题是,在 .env 文件中,mysql 和 redis 的地址需填写成这样,而不是 ip 地址形式:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=tanteng.me
DB_USERNAME=root
DB_PASSWORD=root

REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379

Nginx 配置

在本地通过域名方式访问站点,要将 host 中域名绑定到本地,同时还需要增加 nginx 配置。
file

如图,在 laradock 项目的 nginx 文件夹下的 sites 目录下添加配置文件即可。

执行 composer

执行 composer 等操作,需要进入到 workspace 容器中进行,使用命令:

docker-compose exec workspace bash

进入到 workspace 容器,就可以进行 compose 命令等操作了。

具体使用上的问题请参加 laradock 官方文档,上面都有说明。

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer 于 6年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 21
孙鼎

我用sequel Pro连接数据库时,Host应该填什么?

6年前 评论

@Chrisdowson 当然可以,docker 支持 windows 系统

6年前 评论

@纸牌屋弗兰克 32位window 7可以么?

6年前 评论

个人觉得本地学习的话不建议用laradock,因为他相比docker-compose封装层次更高,隐藏了很多细节。但是这些细节才是我们 学习docker应该要去了解的。

6年前 评论

@翁航 laradock 本身就是 docker-compose

6年前 评论

docker 和vmware冲突怎么解决

6年前 评论
Jourdon

@rufo MAC下。只能使用一个,也就是说使用vm时就必须停掉docker的服务。win下就别想了。基本上装两个就是蓝屏的命。。

6年前 评论

@纸牌屋弗兰克 没错,但是laradock把很多细节都帮我们封装起来了,这样仅仅是为了 用docker而docker,还不如用集成环境。举个例子:Nginx 整合 PHP的时候,不仅需要把宿主机的项目路径映射到Nginx,而且还要映射到phpfpm容器。很多时候只知道要映射到nginx,根本就想不到也要映射到phpfpm,而laradock把这些细节都隐藏了,其实对我们的学习是没什么益处的。PS:当然了如果对docker很熟悉的话,那就没的说了

6年前 评论

@翁航 laradock从来没有所谓的封装,没有额外的脚本和程序,只是用的太舒服的错觉而已。相反学习分主次,学php框架技术可以先不深究。学docker应用,laradock也是一个很好的容器环境配置模板。还可以至上而下了解每个配置文件的内容以及功能。

6年前 评论

不知道你是怎么本地build mongo 的扩展的 。
我用这个Laradock,是没有脾气了,只能放在服务器上 build 然后添加到阿里云。
已经弃坑了。
使用Docker的话 ,本地开发环境,node 还是装在本地吧,太慢了。

6年前 评论

@翁航 我想学习docker,大神是否有空创建一些文章来引路,外面的博客看的眼花缭乱。

6年前 评论

想学习如何自行定制 lnmp的docker镜像

6年前 评论

@翁航 这几天一直在看,收获颇多,非常感谢

6年前 评论
Toiu

最近用laradock在我的云服务器上搭了一个环境, 反正是能用了, 想知道在生产环境中用laradock会不会有什么不妥 或者有什么需要注意的

6年前 评论

对于一个按不按装上都要看运气的工具推荐有啥意义, window端用laragon不香吗?

3年前 评论

启动laradock 是报错
ERROR: .UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x87 in position 0: invalid start byte
有没有遇到过的大神?
本地环境windows10

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!