Introduction
Laradock is a full PHP development environment for Docker.
We offer a range of popular, pre-configured services that provide a ready-to-use PHP development environment in seconds.
Use Docker First - Learn About It Later!
Features
- Seamless PHP Version Switching: Effortlessly switch between PHP versions (8.1, 8.0, 7.4, 7.3, 7.2, 7.1, 5.6...).
- Flexible Database Choices: Pick your preferred database engine, whether it's MySQL, Postgres, MariaDB, and more.
- Customizable Stacks: Run your own stack with services like Memcached, HHVM, RabbitMQ, and more.
- Isolated Containers: Each software runs in its own container, ensuring clean separation and easy management.
- Simple Customization: Easily tweak any container by editing its
Dockerfile
. - Trusted Base Images: All images extend from official base images, ensuring reliability and security.
- Pre-configured Web Servers: Ready-to-use NGINX setup to host your code right from the root directory.
- Project Flexibility: Use Laradock per project or a single Laradock setup for all your projects.
- Environment Variable Management: Easily install or remove software in containers using environment variables.
- Clean Dockerfiles: Well-structured and easy-to-understand Dockerfiles (
Dockerfile
). - Latest Docker Compose: Always up-to-date with the latest version of the Docker Compose file (
docker-compose
). - Full Transparency: Everything is visible and editable, giving you full control over your environment.
- Fast Builds: Enjoy quick image builds to get your environment up and running in no time.
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".
Category | Services (Containers) |
---|---|
Web Servers | NGINX, Apache2, Caddy |
Load Balancers | HAProxy, Traefik |
PHP Compilers | PHP FPM, HHVM |
Database Management Systems | MySQL, PostgreSQL (PostGIS), MariaDB, Percona, MSSQL, MongoDB, Neo4j, CouchDB, RethinkDB, Cassandra |
Database Management Tools | PhpMyAdmin, Adminer, PgAdmin, MongoDB Web UI |
Cache Engines | Redis, Redis Web UI, Redis Cluster, Memcached, Aerospike, Varnish |
Message Brokers | RabbitMQ, RabbitMQ Admin Console, Beanstalkd, Beanstalkd Admin Console, Eclipse Mosquitto, Gearman |
Log Management | GrayLog, Kibana, LogStash |
Search Engines | ElasticSearch, Apache Solr, Manticore Search, Dejavu |
PHP Extensions | Swoole, Blackfire, Phalcon, PHP Worker, Laravel Horizon |
Mail Servers | Mailu, MailCatcher, Mailhog, MailDev |
Real-time Communication | Laravel Echo, Mercure |
Monitoring | Grafana, NetData |
Coordination Services | Apache ZooKeeper |
Container Management | Portainer, Docker Registry, Docker Web UI |
CI/CD Tools | Jenkins, SonarQube, Gitlab |
Cloud Tools | AWS EB CLI, Amazon Simple Queue Service |
Image Processing | Thumbor |
Interactive Computing | IPython, Jupyter Hub |
Security Tools | Certbot |
Object Storage | Minio |
Testing | Selenium |
IDEs | ICE Coder, Theia, Web IDE |
(Laradock Workspace) | PHP CLI, Composer, Git, Vim, xDebug, Linuxbrew, Node, V8JS, Gulp, SQLite, Laravel Envoy, Deployer, Yarn, SOAP, Drush, Wordpress CLI, dnsutils |
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 any dockerfile
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 :)
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 :)
Awesome People
Laradock is an MIT-licensed open source project with its ongoing development made possible entirely by the support of you and all these awesome people. 💜
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 (Backers)
Sponsors
Diamond Sponsors
Gold Sponsors
Silver Sponsors
Bronze Sponsors
Sponsorship Support
Sponsoring is an act of giving in a unique way. 🌱
You can support us using any of the methods below:
1: Open Collective
Available for all tiers: Gold, Silver, Bronze, and Backers (Financial Contributors). Preferred method.
2: Email
Available for Diamond sponsors only.
3: GitHub Sponsors
Supports the creator of the project directly: Ideal for personal support of the project creator.