基于 LaraDock 在 Docker 中快速构建 Laravel 应用系列教程 —— 搭建开发环境

laradock

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/,即可看到如下页面:

laravel-preview

是不是很方便快捷?

下一节我们将继续探讨Docker的一些常用操作以及Laravel项目关联软件和命令的使用。

LaraDock系列教程:

学院君

学院君 has written 553 articles

资深PHP工程师,Laravel学院院长