通过Docker在个人本地电脑上构建一个快速、轻量级、不依赖本地电脑所安装的任何开发套件的可复制的Laravel和Vue项目的开发环境(开发环境的所有依赖都安装在Docker构建容器里),加入Vue只是因为有的项目里会在Laravel项目中使用Vue做前后端分离开发,开发环境中需要安装前端开发需要的工具集,当然前后端也可以分成两个项目开发,
所以我们的目标是:
- 不在本地安装Mamp/Wamp这样的软件
- 不使用类似Vagrant这样的虚拟机
- 不在本地电脑全局安装PHP开发所需要的工具集
- 不在本地电脑全局安装前端开发所需要的工具集
- 不在本地电脑全局安装Mysql和Nginx
注意:开始前你需要先去安装一个Docker客户端,Docker的官网中有详细的安装方法。
第一步:获取laravel的源码包
因为我们电脑上不安装composer,所以就不能使用composer来创建laravel项目了, 这里我使用curl直接从github上下载了最新的laravel源码包,你也可以使用wget或者git clone 来获取源码包。
curl -l -o https://github.com/laravel/laravel/archive/v5.5.0.tar.gz /
&& tar -zxvf v5.5.0.tar.gz /
&& rm v5.5.0.tar.gz
上面的命令在curl下载完源码包后会解压源码压缩包,解压完成后在把源码压缩包v5.5.0.tar.gz删掉,执行完后你会看到一个laravel-5.5.0的项目目录。
第二步:添加docker-compose.yml
在项目中创建docker-compose.yml文件。
[root@~]$cd laravel-5.5.0
[root@~]$touch docker-compose.yml
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器。在这里我们会用到四个容器分别将PHP、Mysql、Nginx放在四个不同的容器中,通过compose将四个应用容器关联到一起组成项目。
编排文件的开头如下:
version: '2'
services:
# our services will go here
在编排文件中,把每个容器叫做一个服务,services下定义整个应用中用到的所有服务(即容器)。
App服务
APP服务的容器将执行我们项目中的代码。
app:
build:
context: ./
dockerfile: app.dockerfile
working_dir: /var/www
volumes:
- ./:/var/www