基于 LaraDock 在 Docker 中快速构建 Laravel 应用系列教程 —— 搭建开发环境
1、开始之前
LaraDock简介
LaraDock致力于简化创建开发环境过程,能够帮你在Docker上快速搭建Laravel应用。 就像Laravel Homestead一样,只不过用Docker替换了Vagrant。它预包装了Docker镜像,为我们提供了一站式的开发环境,而不需要再去在本地机器安装PHP、Nginx、MySQL以及其他任何开发过程中需要的软件。
支持的软件
- 数据库引擎:
- MySQL
- PostgreSQL
- MariaDB
- MongoDB
- Neo4j
- 缓存引擎:
- Redis
- Memcached
- PHP 服务器:
- NGINX
- Apache2
- Caddy
- PHP 编译工具:
- PHP-FPM
- HHVM
- 消息队列系统:
- Beanstalkd (+ Beanstalkd Console)
- 工具:
- Workspace (PHP7-CLI, Composer, Git, Node, Gulp, SQLite, Vim, Nano, cURL...) >如果你找不到你需要的软件,构建它然后把它添加到这个列表。
什么是Docker
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
Docker vs Vagrant
从时间上来看,Vagrant启动虚拟机需要数分钟,而Docker只需数秒;从体量上来看,Vagrant提供的是完整的虚拟机,而Docker提供的是轻量级的虚拟容器,这些虚拟容器共享同一个内核并且允许在独立进程中运行;此外,从应用范围来说,Vagrant只能用于开发环境,而Docker即可用于开发环境也可用于生产环境。
LaraDock vs Homestead
类比Docker和Vagrant,LaraDock和Homestead都能够为我们提供完整的虚拟开发环境,LaraDock是用于管理控制Docker的工具,而Homestead是用于管理控制完整虚拟机(如VirtualBox+Ubuntu)的工具,LaraDock运行速度比Homestead更快。
2、环境搭建
讲完了上面的概念和术语,下面我们进入实战,开始基于LaraDock在本地安装开发环境。
依赖
安装之前,需要确保系统已经安装这两个软件:
安装LaraDock
如果系统尚未安装Laravel应用,需要从头开始搭建全新的环境,可以在系统任意位置克隆Github仓库到本地:
git clone https://github.com/LaraDock/laradock.git
如果之前已经安装了Laravel,也可以在Laravel应用根目录下克隆上述Github仓库代码。
安装Laravel应用
进入laradock
目录,运行如下命令启动Nginx和MySQL(容器不存在的话会从远程下载到本地):
docker-compose up -d nginx mysql
你可以从以下列表选择你自己的容器组合:
nginx, hhvm, php-fpm, mysql, redis, postgres, mariadb, neo4j, mongo, apache2, caddy, memcached, beanstalkd, beanstalkd-console, workspace
注:workspace
和php-fpm
将运行在大部分实例中, 所以不需要在up
命令中加上它们。
启动之后,进入workspace
容器,执行Laravel安装及Artisan命令等操作:
docker-compose exec —user=laradock workspace bash
我们以laradock
用户的身份进入容器。
进入容器后,执行以下命令安装Laravel:
composer create-project laravel/laravel coolapp
安装完成后,编辑laradock
目录下的docker-compose.yml
文件修改目录映射(系统默认假定Laravel应用在LaraDock的父级目录中),我们需要用 ../my-cool-app/:/var/www
替换 ../:/var/www
:
application: build: ./application volumes: - ../coolapp/:/var/www
接下来进入coolapp
目录编辑.env
的数据库配置:
DB_HOST=mysql
至此,基本安装及配置已经完成,我们在浏览器中访问http://localhost/
,即可看到如下页面:
是不是很方便快捷?
下一节我们将继续探讨Docker的一些常用操作以及Laravel项目关联软件和命令的使用。
LaraDock系列教程:
- 基于 LaraDock 在 Docker 中快速构建 Laravel 应用系列教程 —— 搭建开发环境
- 基于 LaraDock 在 Docker 中快速构建 Laravel 应用系列教程 —— 常用Docker命令
- 基于 LaraDock 在 Docker 中快速构建 Laravel 应用系列教程 —— 工具软件使用
注:如遇任何问题,请访问 https://laravel.geekai.co/post/7691.html,以这篇教程为准。
93 Comments
127.0.0.1 域名,docker虚拟机的IP(192.168.99.100) telnet ***上面的任一个 端口(80,8080都试过)
我与你的应该一样,其实压根telnet不通 单独使用dockers run -d -p nginx是可以的。
进入workspace容器 ls: cannot open directory '.': Permission denied