Skip to content

Overview#

Requirements#

Docker#

To run a Lagoon Project, your system must meet the requirements to run Docker. We suggest installing the latest version of Docker for your workstation. You can download Docker here. We also suggest allowing Docker at least 4 CPUs and 4 GB RAM.

Local Development Environments#

TL;DR: install and start pygmy:

brew tap pygmystack/pygmy;
brew install pygmy;
pygmy up

Pygmy is a container stack for local development, developed collaboratively with the Lagoon team.

Learn more about Lagoon, pygmy, and Local Development Environments

Step by Step Guides#

Overview of Lagoon Configuration Files#

.lagoon.yml#

This is the main file that will be used by Lagoon to understand what should be deployed, as well as many other things. See documentation for .lagoon.yml.

docker-compose.yml#

This file is used by Docker Compose to start your local development environment. Lagoon also uses it to understand which of the services should be deployed, which type, and how to build them. This happens via labels. See documentation for docker-compose.yml.

Dockerfiles#

Some Docker images and containers need additional customizations from the provided images. This usually has two reasons:

  1. Application code: Containers like NGINX, PHP, Node.js, etc., need the actual programming code within their images. This is done during a Docker build step, which is configured in a Dockerfile. Lagoon has full support for Docker, and therefore also allows you full control over the resulting images via Dockerfile customizations.
  2. Customization of images: Lagoon also allows you to customize the base images according to your needs. This can be to inject an additional environment variable, change a service configuration, or even install additional tools. We advise caution with installing additional tools to the Docker images, as you will need to maintain any adaptions in the future!

Supported Services & Base Images by Lagoon#

Type Versions Dockerfile
MariaDB 10.4 mariadb/Dockerfile
MariaDB (Drupal) mariadb-drupal/Dockerfile
PostgreSQL 11, 12 postgres/Dockerfile
MongoDB 3.6 mongo/Dockerfile
NGINX openresty/1.19 nginx/Dockerfile
NGINX (Drupal) openresty/1.19 nginx-drupal/Dockerfile
Node.js 10, 12, 14 node/Dockerfile
PHP FPM 7.2, 7.3, 7.4 php/fpm/Dockerfile
PHP CLI 7.2, 7.3, 7.4 php/cli/Dockerfile
PHP CLI (Drupal) 7.3, 7.4, 8.0 php/cli-drupal/Dockerfile
Python 2.7, 3.7, 3.8 python/Dockerfile
Redis 5, 6 redis/Dockerfile
Redis-persistent 5, 6 redis-persistent/Dockerfile
Solr 5.5, 6.6, 7.7 solr/Dockerfile
Solr (Drupal) 5.5, 6.6, 7.7 solr-drupal/Dockerfile
Varnish 5 varnish/Dockerfile
Varnish (Drupal) 5 varnish-drupal/Dockerfile
Elasticsearch 6, 7 elasticsearch/Dockerfiles
Logstash 6, 7 logstash/Dockerfiles
Kibana 6, 7 kibana/Dockerfiles
RabbitMQ 3.8 rabbitmq/Dockerfile

All images are pushed to https://hub.docker.com/u/uselagoon. We suggest always using the latest tag (like uselagoon/nginx:latest) or unsuffixed images (like amazeeio/node:14), as they are kept up to date in terms of features and security.

If you choose to use a specific Lagoon version of an image like uselagoon/nginx:20.10.0 or uselagoon/node-10:20.10.0 it is your own responsibility to upgrade the version of the images as soon as a new Lagoon version is released!