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 |