blackbirdchess-docker-dev/DOCUMENTATION/content/introduction/index.md
2019-07-15 18:59:43 +02:00

8.6 KiB
Raw Blame History

title type weight
1. Introduction index 1

A full PHP development environment for Docker.

Supports a variety of useful Docker Images, pre-configured to provide a wonderful PHP development environment.

Sponsors

For basic sponsorships go to Open Collective, for golden sponsorships contact support@laradock.io.
Your logo will show up on the github repository index page and the documentation main page, with a link to your website.

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 :)

Features

  • Easy switch between PHP versions: 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 edit to the Dockerfile.
  • All Images extends 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).
  • Latest version of the Docker Compose file (docker-compose).
  • Everything is visible and editable.
  • Fast Images Builds.

Supported Software (Images)

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 of as any container 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
  • HAProxy
  • PHP Compilers:
  • PHP FPM
  • HHVM
  • Database Management Systems:
  • MySQL
  • MariaDB
  • Percona
  • MongoDB
  • Neo4j
  • RethinkDB
  • MSSQL
  • PostgreSQL
  • Postgres-PostGIS
  • Database Management Apps:
  • PhpMyAdmin
  • Adminer
  • PgAdmin
  • Cache Engines:
  • Redis
  • Memcached
  • Aerospike
  • Varnish
  • Message Brokers:
  • RabbitMQ (+ Admin Console)
  • Beanstalkd (+ Admin Console)
  • PHP Worker
  • Mail Servers:
  • Mailu
  • Mailhog
  • MailDev
  • Testing:
  • Selenium
  • Monitoring:
  • Grafana
  • NetData
  • More Tools:
  • Certbot (Automatically enable HTTPS on your website)
  • Swoole (Production-Grade Async programming Framework for PHP)
  • ElasticSearch (Search engine based on the Lucene library)
  • Kibana (Visualize your Elasticsearch data and navigate the Elastic Stack)
  • Portainer (Build and manage your Docker environments with ease)
  • Jenkins (automation server)
  • Gitlab (A single application for the entire software development lifecycle)
  • 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)
  • Phalcon (A PHP web framework based on the modelviewcontroller pattern)
  • Minio (Cloud storage server released under Apache License v2, compatible with Amazon S3)
  • Workspace Image Tools

Laradock introduces the Workspace Image, as a development environment. It contains a rich set of helpful tools, all pre-configured to work and integrate with almost any combination of tools you choose.

  • PHP CLI
  • Composer
  • Git
  • Vim
  • xDebug
  • Linuxbrew
  • Node
  • V8JS
  • Gulp
  • SQLite
  • Envoy
  • Deployer
  • Yarn
  • SOAP
  • Drush
  • Wordpress CLI

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 :)

What is Docker?

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Dockers methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.

Why Docker not Vagrant!?

Vagrant creates Virtual Machines in minutes while Docker creates Virtual Containers in seconds.

Instead of providing a full Virtual Machines, like you get with Vagrant, Docker provides you lightweight Virtual Containers, that share the same kernel and allow to safely execute independent processes.

In addition to the speed, Docker gives tons of features that cannot be achieved with Vagrant.

Most importantly Docker can run on Development and on Production (same environment everywhere). While Vagrant is designed for Development only, (so you have to re-provision your server on Production every time).

Demo Video

What's better than a Demo Video:

Chat with us

You are welcome to join our chat room on Gitter.

Gitter

Donations

Help keeping the project development going, by contributing or donating a little. Thanks in advance.

Donate directly via Paypal

Donate

or show your support via Beerpay

Beerpay

or become a backer on Open Collective