Laradock是一个基于Docker的完整PHP开发环境。
它支持各种公共服务,这些服务都是预先配置的,以提供一个现成的PHP开发环境。
特点
- 轻松切换PHP版本:7.4,7.3,7.2,7.1,5.6…
- 选择你最喜欢的数据库引擎:MySQL, Postgres, MariaDB…
- 运行你自己的栈:Memcached, HHVM, RabbitMQ…
- 每个软件运行在自己的容器上:PHP-FPM, NGINX, PHP-CLI…
- 易于自定义任何容器,对
Dockerfile
进行简单的编辑。 - 所有的映像从一个官方的基础映像扩展。(可信的基础映像)。
- 预配置NGINX,以便在根目录存放任何代码。
- 可以在每个项目中使用Laradock,也可以在所有项目中使用单个Laradock。
- 使用环境变量易于在容器中安装/删除软件。
- 干净和结构良好的Dockerfiles (
Dockerfile
)。 docker-compose
文件的最新版本(docker-compose
)。- 所有内容都是可见和可编辑的。
- 快速映像构建。
快速概览
我们来看看如何简单地设置我们的演示技术栈 PHP
, NGINX
, MySQL
, Redis
和 Composer
1 - 在你的PHP项目中克隆Laradock:
git clone https://github.com/Laradock/laradock.git
2 - 进入 laradock 文件夹,将 env-example
重命名为 .env
。
cp env-example .env
3 - 运行你的容器
docker-compose up -d nginx mysql phpmyadmin redis workspace
4 -打开你项目的 .env
文件,设置以下内容:
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
5 - 打开浏览器,访问 localhost: http://localhost
。
就是这样!享受吧:)
已支持的服务
Laradock,坚持“关注点分离”原则,因此它在自己的Docker容器上运行每个软件。您可以打开/关闭任意多个实例,而不必担心配置问题。
要运行下面列表中选择的容器,运行
docker-compose up -d {container-name}
。容器名{container-name}
与文件夹名相同。例如运行” PHP FPM “容器,使用”php-fpm”。
- 网站服务器:
- NGINX
- Apache2
- Caddy
- 负载均衡器:
- HAProxy
- Traefik
- PHP 编译器:
- PHP FPM
- HHVM
- 数据库管理系统:
- MySQL
- PostgreSQL
- PostGIS
- MariaDB
- Percona
- MSSQL
- MongoDB
- MongoDB Web UI
- Neo4j
- CouchDB
- RethinkDB
- Cassandra
- 数据库管理应用:
- PhpMyAdmin
- Adminer
- PgAdmin
- 缓存引擎:
- Redis
- Redis Web UI
- Redis Cluster
- Memcached
- Aerospike
- Varnish
- Redis
- 消息代理:
- RabbitMQ
- RabbitMQ Admin Console
- Beanstalkd
- Beanstalkd Admin Console
- Eclipse Mosquitto
- PHP Worker
- Laravel Horizon
- Gearman
- Amazon Simple Queue Service
- RabbitMQ
- 邮件服务器:
- Mailu
- MailCatcher
- Mailhog
- MailDev
- 日志管理:
- GrayLog
- 测试:
- Selenium
- 监控:
- Grafana
- NetData
- 搜索引擎:
- ElasticSearch
- Apache Solr
- Manticore Search
- IDE工具:
- ICE Coder
- Theia
- Web IDE
- 杂项:
- Workspace (包含一组丰富的预先配置的有用工具的Laradock容器)
PHP CLI
Composer
Git
Vim
xDebug
Linuxbrew
Node
V8JS
Gulp
SQLite
Laravel Envoy
Deployer
Yarn
SOAP
Drush
Wordpress CLI
- Workspace (包含一组丰富的预先配置的有用工具的Laradock容器)
- Apache ZooKeeper (分布式系统到分层键值存储的集中式服务)
- Kibana (可视化你的 Elasticsearch 数据和导航Elastic Stack)
- Dejavu (编辑 Elasticsearch数据)
- LogStash (服务器端数据处理管道,同时从多个数据源获取数据 )
- Jenkins (自动化服务器,提供支持构建、部署和自动化任何项目的插件)
- Certbot (自动在你的网站上启用HTTPS)
- Swoole (面向PHP的生产级异步编程框架)
- SonarQube (对代码质量的持续检查,通过对代码的静态分析来自动检查,以发现bug等)
- Gitlab (整个软件开发生命周期的单一应用程序)
- PostGIS (PostgreSQL的数据库扩展.它增加了对地理对象的支持,允许在SQL中查询位置)
- Blackfire (授权所有PHP开发人员和IT/Ops持续验证和改进他们的应用程序的性能)
- Laravel Echo (将WebSockets的强大功能带入你的Laravel应用中)
- Mercure (服务器发送事件)
- Phalcon (一个基于MVC模式的PHP web框架)
- Minio (在Apache License v2下发布的,兼容Amazon S3)
- AWS EB CLI (帮助你部署和管理AWS弹性Beanstalk应用和环境的CLI)
- Thumbor (照片缩略图服务)
- IPython (为交互式计算提供了丰富的体系结构)
- Jupyter Hub (适用于多个用户的Jupter notebook)
- Portainer (轻松构建和管理Docker环境)
- Docker Registry (用于存储和分发Docker镜像的Docker注册表实现)
- Docker Web UI (一个基于浏览器的浏览和修改私有Docker注册表的解决方案)
你可以从 .env
文件中选择要在工作区容器和其他容器中安装哪些工具。
如果你修改了
docker-compose.yml
,.env
或任何dockerfile
文件, 你必须重新构建容器, 以便在运行的实例中查看这些效果.
如果你在列表中找不到你的软件,你可以自己构建它并提交它。欢迎投稿:)