Documentation

Configuration via LCP.json

Each service in your DXP Cloud environments has an LCP.json file that you can use to configure the service. You can configure properties like the service ID, memory, number of CPUs, environment variables, volumes, and much more.

This table lists and describes the properties you can add in LCP.json:

Field

Type

Default Value

Description

id

String

random

The service ID

image

String

""

The service image from Docker Hub

env

Object

undefined

Environment variables

loadBalancer

Object

{}

Declaration of exposed ports and domains

cpu

Number

1

Number of CPUs

scale

Number

1

Starting number of instances

memory

Number

512

Amount of memory (MB)

volumes

Object

undefined

Paths to persist data

readinessProbe

Object

{ "timeoutSeconds": 5 }

Service readiness check

livenessProbe

Object

{ "timeoutSeconds": 5 }

Service liveness check

dependencies

Array

[]

Dependency deployment order

kind

String

Deployment

Deployment type (e.g, Deployment or StatefulSet)

strategy

Object

{ "type": "RollingUpdate" }

Deployment strategy (e.g, RollingUpdate or Recreate)

ports

Array

[]

Declaration of ports and protocols

environments

Object

{}

Environment-specific configurations

deploy

Boolean

true

Whether the service will be deployed for the specified environment. Only use this property inside the environments property; not at the root level. See the sample LCP.json file.

autoscale

Object

{ "cpu": 80, "memory": 80 }

The target average utilization for CPU and memory in auto-scaling. For more information about how this works with auto-scaling, see Auto-scaling.

Usage

Here’s an example LCP.json file that uses all the properties:

{
  "id": "myservice",
  "image": "liferaycloud/example",
  "env": {
    "DB_USER": "root",
    "DB_PASSWORD": "pass123"
  },
  "loadBalancer": {
    "cdn": true,
    "targetPort": 3000,
    "customDomains": ["example.com"],
    "ssl": {
      "key": "...",
      "crt": "..."
    }
  },
  "cpu": 2,
  "scale": 2,
  "memory": 2048,
  "volumes": {
    "storage": "/opt/storage"
  },
  "livenessProbe": {
    "timeoutSeconds": 5,
    "httpGet": {
      "path": "/status",
      "port": 3000
    },
    "initialDelaySeconds": 40,
    "periodSeconds": 5,
    "successThreshold": 5
  },
  "readinessProbe": {
    "timeoutSeconds": 5,
    "exec": {
      "command": ["cat", "/tmp/healthy"]
    },
    "initialDelaySeconds": 40,
    "periodSeconds": 5
  },
  "dependencies": ["service1", "service2"],
  "kind": "StatefulSet",
  "strategy": {
    "type": "RollingUpdate"
  },
  "ports": [
    {
      "port": 3400,
      "targetPort": 7000,
      "protocol": "TCP"
    },
    {
      "port": 9000,
      "targetPort": 8000,
      "protocol": "TCP",
      "external": true
    }
  ],
  "environments": {
    "prd": {
      "memory": 4096,
      "cpu": 6
    },
    "dev": {
      "deploy": false
    }
  },
  "autoscale": {
    "cpu": 90,
    "memory": 90
  }
}