Laradock 搭建基于Docker 的PHP开发环境
Laradock 是为 Docker 提供的完整 PHP 本地开发环境,和 Homestead 一样提供了一系列打包好(包括配置)的
Docker Image。Laradock 早期专注为 Laravel 打造 Docker 开发环境,因而最早在 Laravel
社区中出名,后来随着影响力的扩大,逐渐被 PHP 社区接纳和采用,目前支持的 PHP 项目除了 Laravel 之外,还有
Symfony、CodeIgniter、WordPress、Drupal 等等。
-
搭建开始
-
1、搭建条件
-
2、搭建步骤
-
创建目录[/var下]
[root@localhost /]# mkdir -p /var/docker [root@localhost /]# mkdir -p /var/docker/wwwroot [root@localhost /]# cd /var/docker/
-
克隆Laradock 项目[/var/docker下]
[root@localhost docker]# git clone https://github.com/Laradock/laradock.git
-
将 env-example 复制并重命名为 .env
[root@localhost docker]# cd laradock/ [root@localhost laradock]# cp env-example .env
-
修改.env配置
相当于为 wwwroot 与 Docker 的 /var/www 目录建立了软链接
[root@localhost laradock]# vi .env 修改如下: APP_CODE_PATH_HOST=../wwwroot
-
创建一个新的 Laravel 应用
[root@localhost wwwroot]# git clone https://github.com/laravel/laravel ityangs
-
新增 laradock/nginx/sites/ityangs.conf 中的映射关系
[root@localhost wwwroot]# cp /var/docker/laradock/nginx/sites/default.conf /var/docker/laradock/nginx/sites/ityangs.conf [root@localhost sites]# vi /var/docker/laradock/nginx/sites/ityangs.conf
修改如图:
-
运行容器【laradock目录下启动:nginx mysql redis】
[root@localhost laradock]# docker-compose up -d nginx mysql redis beanstalkd
注意:
这样,我们就可以在浏览器中通过 http://ityangs.com访问这个应用了,
如果是虚该域名不是公网可以访问的话,需要在本地hosts下映射IP与域名的映射关系:
[root@localhost ~]# vi /etc/hosts
127.0.0.1 ityangs.com
如图:
Laradock功能特性
- 可轻松在不同版本 PHP 之间切换: 7.1、7.0、5.6 等
- 自由选择数据库: MySQL、Postgres、MariaDB 等
- 运行自己的软件: Memcached、HHVM、Beanstalkd 等
- 每个软件都运行在隔离的容器中: PHP-FPM、NGINX、PHP-CLI 等
- 轻松自定义容器,只需编辑 Dockerfile 文件即可
- 所有的镜像都扩展自官方的镜像
- 预配置的 NGINX
- 可以在每个项目中使用 Laradock, 也可以让所有项目共享一个 Laradock
- 使用环境变量在容器中轻松安装/卸载软件
- 干净、结构良好的 Dockerfile
- 最新版本的 docker-compose 文件
- 一切均可见、可编辑
- 快速构建镜像
除此之外,Laradock 支持的软件包括:
- 数据库引擎: MySQL - MariaDB - Percona - MongoDB - Neo4j - RethinkDB - MSSQL - PostgreSQL - Postgres-PostGIS.
- 数据库管理工具: PhpMyAdmin - Adminer - PgAdmin
- 缓存工具: Redis - Memcached - Aerospike
- Web 服务器: NGINX - Apache2 - Caddy
- PHP 编译器: PHP FPM - HHVM
- 消息队列: Beanstalkd - RabbitMQ - PHP Worker
- 队列管理器: Beanstalkd Console - RabbitMQ Console
- 大国重器: HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Mailhog - Minio - Varnish - 1. Swoole -
Laravel Echo 等- Laradock 还引入了 Workspace 镜像作为开发环境,里面包含了丰富且实用的工具集:PHP CLI - Composer - Git - Linuxbrew - Node - V8JS - Gulp - SQLite - xDebug -
Envoy - Deployer - Vim - Yarn - SOAP - Drush 等
-
相应的层级目录关系
[root@localhost var]# tree /var/docker/ --charset=gbk -L 2 /var/docker/ |-- laradock | |-- adminer | |-- aerospike | |-- apache2 | |-- aws-eb-cli | |-- beanstalkd | |-- beanstalkd-console | |-- caddy | |-- cassandra | |-- certbot | |-- couchdb | |-- docker-compose.sync.yml | |-- docker-compose.yml | |-- docker-registry | |-- docker-sync.yml | |-- docker-web-ui | |-- DOCUMENTATION | |-- elasticsearch | |-- env-example | |-- gitlab | |-- grafana | |-- graylog | |-- haproxy | |-- hhvm | |-- ide-codiad | |-- ide-icecoder | |-- ide-theia | |-- ide-webide | |-- ipython | |-- jenkins | |-- jupyterhub | |-- kibana | |-- laravel-echo-server | |-- laravel-horizon | |-- LICENSE | |-- logs | |-- logstash | |-- maildev | |-- mailhog | |-- manticore | |-- mariadb | |-- memcached | |-- minio | |-- mongo | |-- mongo-webui | |-- mosquitto | |-- mssql | |-- mysql | |-- neo4j | |-- nginx | |-- percona | |-- php-fpm | |-- phpmyadmin | |-- php-worker | |-- portainer | |-- postgres | |-- postgres-postgis | |-- rabbitmq | |-- redis | |-- redis-cluster | |-- redis-webui | |-- rethinkdb | |-- selenium | |-- solr | |-- sonarqube | |-- sync.sh | |-- thumbor | |-- traefik | |-- travis-build.sh | |-- varnish | |-- workspace | `-- zookeeper `-- wwwroot `-- ityangs【应用】