20 KiB
title | type | weight |
---|---|---|
Introduction | index | 1 |
Laradock is a full PHP development environment for Docker.
It supports a variety of common services, all pre-configured to provide a ready PHP development environment.
Use Docker First - Learn About It Later!
Features
- Easy switch between PHP versions: 7.4, 7.3, 7.2, 7.1, 5.6...
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
- Run your own stack: Memcached, HHVM, RabbitMQ...
- Each software runs on its own container: PHP-FPM, NGINX, PHP-CLI...
- Easy to customize any container, with simple edits to the
Dockerfile
. - All Images extend from an official base Image. (Trusted base Images).
- Pre-configured NGINX to host any code at your root directory.
- Can use Laradock per project, or single Laradock for all projects.
- Easy to install/remove software's in Containers using environment variables.
- Clean and well-structured Dockerfiles (
Dockerfile
). - The Latest version of the Docker Compose file (
docker-compose
). - Everything is visible and editable.
- Fast Images Builds.
Quick Overview
Let's see how easy it is to setup our demo stack PHP
, NGINX
, MySQL
, Redis
and Composer
:
1 - Clone Laradock inside your PHP project:
git clone https://github.com/Laradock/laradock.git
2 - Enter the laradock folder and rename .env.example
to .env
.
cp .env.example .env
3 - Run your containers:
docker-compose up -d nginx mysql phpmyadmin redis workspace
4 - Open your project's .env
file and set the following:
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
5 - Open your browser and visit localhost: http://localhost
.
That's it! enjoy :)
Supported Services
Laradock, adheres to the 'separation of concerns' principle, thus it runs each software on its own Docker Container. You can turn On/Off as many instances as you want without worrying about the configurations.
To run a chosen container from the list below, run
docker-compose up -d {container-name}
. The container name{container-name}
is the same as its folder name. Example to run the "PHP FPM" container, use the name "php-fpm".
-
Web Servers:
- NGINX
- Apache2
- Caddy
-
Load Balancers:
- HAProxy
- Traefik
-
PHP Compilers:
- PHP FPM
- HHVM
-
Database Management Systems:
- MySQL
- PostgreSQL
- PostGIS
- MariaDB
- Percona
- MSSQL
- MongoDB
- MongoDB Web UI
- Neo4j
- CouchDB
- RethinkDB
- Cassandra
-
Database Management Apps:
- PhpMyAdmin
- Adminer
- PgAdmin
-
Cache Engines:
- Redis
- Redis Web UI
- Redis Cluster
- Memcached
- Aerospike
- Varnish
- Redis
-
Message Brokers:
- RabbitMQ
- RabbitMQ Admin Console
- Beanstalkd
- Beanstalkd Admin Console
- Eclipse Mosquitto
- PHP Worker
- Laravel Horizon
- Gearman
- Amazon Simple Queue Service
- RabbitMQ
-
Mail Servers:
- Mailu
- MailCatcher
- Mailhog
- MailDev
-
Log Management:
- GrayLog
-
Testing:
- Selenium
-
Monitoring:
- Grafana
- NetData
-
Search Engines:
- ElasticSearch
- Apache Solr
- Manticore Search
-
IDE's
- ICE Coder
- Theia
- Web IDE
-
Miscellaneous:
- Workspace (Laradock container that includes a rich set of pre-configured useful tools)
PHP CLI
Composer
Git
Vim
xDebug
Linuxbrew
Node
V8JS
Gulp
SQLite
Laravel Envoy
Deployer
Yarn
SOAP
Drush
Wordpress CLI
- Apache ZooKeeper (Centralized service for distributed systems to a hierarchical key-value store)
- Kibana (Visualize your Elasticsearch data and navigate the Elastic Stack)
- Dejavu (Edit your Elasticsearch data)
- LogStash (Server-side data processing pipeline that ingests data from a multitude of sources simultaneously)
- Jenkins (automation server, that provides plugins to support building, deploying and automating any project)
- Certbot (Automatically enable HTTPS on your website)
- Swoole (Production-Grade Async programming Framework for PHP)
- SonarQube (continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs and more)
- Gitlab (A single application for the entire software development lifecycle)
- PostGIS (Database extender for PostgreSQL. It adds support for geographic objects allowing location queries to be run in SQL)
- Blackfire (Empowers all PHP developers and IT/Ops to continuously verify and improve their app's performance)
- Laravel Echo (Bring the power of WebSockets to your Laravel applications)
- Mercure (Server-sent events)
- Phalcon (A PHP web framework based on the model–view–controller pattern)
- Minio (Cloud storage server released under Apache License v2, compatible with Amazon S3)
- AWS EB CLI (CLI that helps you deploy and manage your AWS Elastic Beanstalk applications and environments)
- Thumbor (Photo thumbnail service)
- IPython (Provides a rich architecture for interactive computing)
- Jupyter Hub (Jupyter notebook for multiple users)
- Portainer (Build and manage your Docker environments with ease)
- Docker Registry (The Docker Registry implementation for storing and distributing Docker images)
- Docker Web UI (A browser-based solution for browsing and modifying a private Docker registry)
- Workspace (Laradock container that includes a rich set of pre-configured useful tools)
You can choose, which tools to install in your workspace container and other containers, from the .env
file.
If you modify
docker-compose.yml
,.env
or anydockerfile
file, you must re-build your containers, to see those effects in the running instance.
If you can't find your Software in the list, build it yourself and submit it. Contributions are welcomed :)
Join Us
Awesome People
Laradock is an MIT-licensed open source project with its ongoing development made possible entirely by the support of all these smart and generous people, from code contributors to financial contributors. 💜
Project Maintainers
Mahmoud Zalt @mahmoudz |
Bo-Yi Wu @appleboy |
Philippe Trépanier @philtrep |
Mike Erickson @mikeerickson |
Dwi Fahni Denni @zeroc0d3 |
Thor Erik @thorerik |
Winfried van Loon @winfried-van-loon |
TJ Miller @sixlive |
Yu-Lung Shao (Allen) @bestlong |
Milan Urukalo @urukalo |
Vince Chu @vwchu |
Huadong Zuo @zuohuadong |
Lan Phan @lanphan |
Ahkui @ahkui |
< Join Us > @laradock |
Code Contributors
Financial Contributors
You can support us using any of the methods below:
1: Open Collective
2: Paypal
3: Github Sponsors
4: Patreon
Sponsors
Sponsoring is an act of giving in a different fashion. 🌱
Gold Sponsors
Silver Sponsors
Bronze Sponsors
You can sponsor us using any of the methods below:
1: Sponsor via Open Collective.
2: Email us at support@laradock.io.
Sponsors logos are displayed on the github repository page and the documentation website home page.
License
MIT © Mahmoud Zalt