|
1 | 1 | # laradock-lite |
2 | 2 | 基于Docker的laravel本地开发环境 |
3 | 3 |
|
4 | | -#前言 |
| 4 | +# 前言 |
5 | 5 | 我对一个完美的本地开发环境的要求: |
6 | 6 |
|
7 | | -1.一键启动所有的组件,不需要mock任何service,没有任何dummy client。新人入职后一小时内即可上手开发新功能。 |
| 7 | +1. 一键启动所有的组件,不需要mock任何service,没有任何dummy client。新人入职后一小时内即可上手开发新功能。 |
| 8 | +2. 系统资源占用少,即cpu和内存占用少,在MacBook Pro上开发不卡 |
| 9 | +3. 隔离本机环境,在本机上安装尽可能少的依赖的软件,例如不在本机上安装mysql |
| 10 | +4. 和集成开发、集成测试以及生产环境近似,容易排查环境引起的问题。团队使用统一的开发与测试环境配置,能提高协作效率。 |
| 11 | +5. 方便调试,能和IDE集成就更好了 |
| 12 | +6. REPL功能(当然受限于语言) |
| 13 | +7. 便于执行unit test |
| 14 | +8. 便于尝试各种service, server的使用方法,比如快速启动elastic search server后,可基于一本书、一部视频去学习如何使用es |
8 | 15 |
|
9 | | -2.系统资源占用少,即cpu和内存占用少,在MacBook Pro上开发不卡 |
10 | | - |
11 | | -3.隔离本机环境,在本机上安装尽可能少的依赖的软件,例如不在本机上安装mysql |
12 | | - |
13 | | -4.和集成开发、集成测试以及生产环境近似,容易排查环境引起的问题。团队使用统一的开发与测试环境配置,能提高协作效率。 |
14 | | - |
15 | | -5.方便调试,能和IDE集成就更好了 |
16 | | - |
17 | | -6.REPL功能(当然受限于语言) |
18 | | - |
19 | | -7.便于执行unit test |
20 | | - |
21 | | -8.便于尝试各种service, server的使用方法,比如快速启动elastic search server后,可基于一本书、一部视频去学习如何使用es |
22 | | - |
23 | | -#由来 |
| 16 | +# 由来 |
24 | 17 | 最早用Laravel开发web应用的时候,使用的是Homestead作为本地开发环境。Homestead基于Vagrant和VirtualBox,无论是自己把开发环境配置好,还是帮助别人配置都需要一定的时间,每次有新人入职都要折腾一番。后来laravel官方文档中推荐的Valet我并没有去尝试,看文档是基于Homebrew来安装到本机上,我个人不喜欢污染本机环境,所以还是转向了docker的解决方案。 |
25 | 18 |
|
26 | 19 | 当发现了[laradock](https://github.com/laradock/laradock) 后,眼前一亮,心想这正是我想要的。遂试之,大喜。docker的优势我就不在这里重复了,使用docker来build开发、测试及生产环境是大势所趋。目前在我的项目里仅把docker用于开发环境,用于生产环境需要额外的运维能力,有兴趣的高手可以尝试。 |
27 | 20 |
|
28 | 21 | laradock里集成了很多组件,在定制化的过程中,我只把自己需要的组件剥离出来,同时基于alpine的镜像减少docker image的大小。同时安装了xdebug方便调试和学习laravel框架。 |
29 | 22 |
|
30 | 23 |
|
31 | | -#谁适合 |
32 | | -1.laravel开发新手,快速学习laravel |
33 | | - |
34 | | -2.打算以此来作为本地开发环境的开发者 |
35 | | - |
36 | | -3.debug laravel框架,并深入学习的开发者 |
| 24 | +# 谁适合 |
| 25 | +1. laravel开发新手,快速学习laravel |
| 26 | +2. 打算以此来作为本地开发环境的开发者 |
| 27 | +3. debug laravel框架,并深入学习的开发者 |
37 | 28 |
|
38 | | -#快速入门 |
| 29 | +# 快速入门 |
39 | 30 | [install docker](https://docs.docker.com/docker-for-mac/install/) |
40 | 31 | 确保docker-compose也安装正确 |
41 | 32 | ``` |
@@ -72,16 +63,16 @@ docker-compose exec workspace /bin/ash |
72 | 63 | php artisan migrate:refresh |
73 | 64 | ``` |
74 | 65 |
|
75 | | -#组件 |
| 66 | +# 组件 |
76 | 67 | 通过查看docker-compose.yml中的各个镜像,可看到所有组件,其中每个组件运行在各自的容器中,即一个组件一个容器 |
77 | 68 | 1. nginx 1.12 |
78 | 69 | 2. php-fpm 基于php7.1 |
79 | 70 | 3. mysql 5.7 |
80 | 71 | 4. redis 3.2 |
81 | 72 | 5. elastic search 5.3.2 (XPack 默认用户名密码 elastic/changeme) |
82 | 73 |
|
83 | | -#没有涉及的点 |
| 74 | +# 没有涉及的点 |
84 | 75 | 对于前端项目,比如React.js + webpack,暂时推荐使用npm或者yarn在本地安装开发依赖,可参考[create-react-app](https://github.com/facebookincubator/create-react-app) 快速上手。 |
85 | 76 |
|
86 | | -#写在最后 |
| 77 | +# 写在最后 |
87 | 78 | 适合自己的才是最好的,祝大家玩的愉快。 |
0 commit comments