Skip to content

Service Types#

The below lists all service types that can be defined via lagoon.type within a docker-compose.yml file.

Warning

Once a lagoon.type is defined and the environment is deployed, changing it to a different type is not supported and could result in a broken environment.

Additional Volumes#

Some service types allow for additional volumes to be added, for more information on the lagoon.volumes.X.path label, please see Additional Volumes

If you're provisioning a new project, we recommend avoiding the usage of -persistent service types, and use additional volumes as required for any persistent data.

Additional Service Ports#

Most services provide a default port, in cases where you want to use the services already defined in your docker-compose.yml file, you can configure a service to use those ports instead.

To use this feature, you set the lagoon.service.usecomposeports: true label on the service in your docker-compose.yml file. For more information on how to use this feature, see Additional Service Ports

basic#

Basic container, good to use for most applications that don't have an existing template. No persistent storage. The port can be changed using a label. If an autogenerated route is not required (e.g. for an internal-facing service, set lagoon.autogeneratedroute: false in the docker-compose.yml)

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 3000 3000 Yes No lagoon.service.port, lagoon.autogeneratedroute, lagoon.volumes.X.path

basic-persistent#

Like basic. Will also generate persistent storage, defines mount location via lagoon.persistent.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 3000 3000 Yes Yes lagoon.service.port, lagoon.autogeneratedroute, lagoon.persistent, lagoon.persistent.name, lagoon.persistent.size, lagoon.volumes.X.path

basic-single#

Like basic-persistent. This will also generate persistent storage, defines mount location via lagoon.persistent.

Where this differs from basic-persistent is that the volume is a ReadWriteOnce volume type. The downsides to this service type are that it can't be scaled.

This service type does not support additional volumes.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 3000 3000 Yes Yes lagoon.service.port, lagoon.autogeneratedroute, lagoon.persistent, lagoon.persistent.name, lagoon.persistent.size

cli#

Use for any kind of CLI container (like PHP, Node.js, etc). Automatically gets the customer SSH private key that is mounted in /var/run/secrets/lagoon/sshkey/ssh-privatekey.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
- No No No lagoon.volumes.X.path

cli-persistent#

Like cli, expects lagoon.persistent.name to be given the name of a service that has persistent storage, which will be mounted under defined lagoon.persistent label. Does NOT generate its own persistent storage, only used to mount another service's persistent storage.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
- No No Yes lagoon.persistent.name, lagoon.persistent, lagoon.volumes.X.path

elasticsearch#

Elasticsearch container, will auto-generate persistent storage under /usr/share/elasticsearch/data.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
HTTP on localhost:9200/_cluster/health?local=true 9200 No Yes lagoon.persistent.size

mariadb#

A meta-service which will tell Lagoon to automatically decide between mariadb-single and mariadb-dbaas.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
- - - - -

mariadb-single#

MariaDB container. Creates cron job for backups running every 24h executing /lagoon/mysql-backup.sh 127.0.0.1.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 3306 3306 No Yes lagoon.persistent.size

mariadb-dbaas#

Uses a shared MariaDB server via the DBaaS Operator.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
Not Needed 3306 No - -

mongo#

A meta-service which will tell Lagoon to automatically decide between mongo-single and mongo-dbaas.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
- - - - -

mongo-single#

MongoDB container, will generate persistent storage of min 1GB mounted at /data/db.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 27017 27017 No Yes lagoon.persistent.size

mongo-dbaas#

Uses a shared MongoDB server via the DBaaS Operator.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
Not Needed 27017 No - -

nginx#

NGINX container. No persistent storage.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
localhost:50000/nginx_status 8080 Yes No lagoon.autogeneratedroute, lagoon.volumes.X.path

nginx-php#

Like nginx, but additionally a php container.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
NGINX: localhost:50000/nginx_status, PHP: /usr/sbin/check_fcgi 8080 Yes No lagoon.autogeneratedroute, lagoon.volumes.X.path

nginx-php-persistent#

Like nginx-php. Will generate persistent storage, defines mount location via lagoon.persistent.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
NGINX: localhost:50000/nginx_status, PHP: /usr/sbin/check_fcgi http on 8080 Yes Yes lagoon.autogeneratedroute, lagoon.persistent, lagoon.persistent.name, lagoon.persistent.size, lagoon.volumes.X.path

node#

Node.js container. No persistent storage.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 3000 3000 Yes No lagoon.autogeneratedroute, lagoon.volumes.X.path

node-persistent#

Like node. Will generate persistent storage, defines mount location via lagoon.persistent.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 3000 3000 Yes Yes lagoon.autogeneratedroute, lagoon.persistent, lagoon.persistent.name, lagoon.persistent.size, lagoon.volumes.X.path

none#

Instructs Lagoon to completely ignore this service.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
- - - - -

opensearch#

OpenSearch container, will auto-generate persistent storage under /usr/share/opensearch/data.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
HTTP on localhost:9200/_cluster/health?local=true 9200 No Yes lagoon.persistent.size

postgres#

A meta-service which will tell Lagoon to automatically decide between postgres-single and postgres-dbaas.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
- - - - -

postgres-single#

Postgres container. Creates cron job for backups running every 24h executing /lagoon/postgres-backup.sh localhost.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 5432 5432 No Yes lagoon.persistent.size

postgres-dbaas#

Uses a shared PostgreSQL server via the DBaaS Operator.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
Not Needed 5432 No - -

python#

Python container. No persistent storage.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
HTTP connection on 8800 8800 Yes No lagoon.autogeneratedroute, lagoon.volumes.X.path

python-persistent#

Python container. With persistent storage.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
HTTP connection on 8800 8800 Yes Yes lagoon.autogeneratedroute, lagoon.volumes.X.path

redis#

Redis container.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 6379 6379 No No -

redis-persistent#

Redis container with auto-generated persistent storage mounted under /data.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 6379 6379 No Yes lagoon.persistent.size

solr#

Solr container with auto-generated persistent storage mounted under /var/solr.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
TCP connection on 8983 8983 No Yes lagoon.persistent.size

varnish#

Varnish container.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
HTTP request localhost:8080/varnish_status 8080 Yes No lagoon.autogeneratedroute

varnish-persistent#

Varnish container with auto-generated persistent storage mounted under /var/cache/varnish.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
HTTP request localhost:8080/varnish_status 8080 Yes Yes lagoon.autogeneratedroute, lagoon.persistent.size

worker#

Use for any kind of worker container (like queue workers, etc.) where there is no exposed service port.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
- No No No lagoon.volumes.X.path

worker-persistent#

Like worker, expects lagoon.persistent.name to be given the name of a service that has persistent storage, which will be mounted under defined lagoon.persistent label. Does NOT generate its own persistent storage, only used to mount another service's persistent storage.

Healthcheck Exposed Ports Auto Generated Routes Storage Additional customization parameter
- No No Yes lagoon.persistent.name, lagoon.persistent, lagoon.volumes.X.path