Get a Service belonging to a Stack
GET/stacks/ {stackId}/ services/ {serviceId}/
Request
- stackIdstring (uuid)required
ID of the Stack the Service belongs to. ID of the default Stack equals the ID of the Project.
- serviceIdstring (uuid)required
ID of the Service to be retrieved.
Responses
OK
- Schema documentation
- Example
- JSON Schema
- deployedStateobjectrequired
The actual state of the container that is currently deployed.
- commandarray of string
The container command (equivalent to the Docker cmd). When omitted, this defaults to the command defined in the image.
- Array[
- *string
]
- entrypointarray of string
The container entrypoint (equivalent to the Docker entrypoint). When omitted, this defaults to the entrypoint defined in the image.
- Array[
- *string
]
Key-value map of environment variables that should be passed into the container.
- *string
The image to run, in the usual format also used by docker run
and docker compose
. When the image is pulled from a private registry, make sure to create it first, using the container-create-registry
endpoint. The appropriate registry is matched by hostname.
Exposed ports. Follows the format <public-port>:<container-port>/<protocol>
. Exposed ports can be accessed from other containers (or managed apps) within the same project. To expose a port publicly, connect it with an ingress resource.
- Array[
- *string
Volume mounts for this container. These items always follow the format <volume>:<mountpoint>
. The <volume>
may either be a named volume, or a file path in the (always present) project file system (which is shared among containers and managed apps within a project).
- Array[
- *string
Message explaining the current state of the container. This may contain information about the current state of the container, or errors that occurred during deployment.
The desired state that is waiting to be reconciled.
- commandarray of string
The container command (equivalent to the Docker cmd). When omitted, this defaults to the command defined in the image.
- Array[
- *string
]
The container entrypoint (equivalent to the Docker entrypoint). When omitted, this defaults to the entrypoint defined in the image.
- Array[
- *string
Key-value map of environment variables that should be passed into the container.
- *string
The image to run, in the usual format also used by docker run
and docker compose
. When the image is pulled from a private registry, make sure to create it first, using the container-create-registry
endpoint. The appropriate registry is matched by hostname.
Exposed ports. Follows the format <public-port>:<container-port>/<protocol>
. Exposed ports can be accessed from other containers (or managed apps) within the same project. To expose a port publicly, connect it with an ingress resource.
- Array[
- *string
Volume mounts for this container. These items always follow the format <volume>:<mountpoint>
. The <volume>
may either be a named volume, or a file path in the (always present) project file system (which is shared among containers and managed apps within a project).
- Array[
- *string
A short ID of the container. This is a unique identifier for the container within the project, and can be used to reference it in other API calls, or for SSH connections.
{
"deployedState": {
"command": [
"mysqld"
],
"entrypoint": [
"docker-entrypoint.sh"
],
"envs": {
"MYSQL_DATABASE": "my_db",
"MYSQL_PASSWORD": "my_password",
"MYSQL_ROOT_PASSWORD": "my_root_password",
"MYSQL_USER": "my_user"
},
"image": "mysql:8.0",
"imageDigest": "string",
"ports": [
"3306:3306/tcp"
],
"volumes": [
"data:/var/lib/mysql",
"/home/p-XXXXX/html:/var/www"
]
},
"description": "MySQL DB",
"id": "f0f86186-0a5a-45b2-aa33-502777496347",
"message": "Container ready",
"pendingState": {
"command": [
"mysqld"
],
"entrypoint": [
"docker-entrypoint.sh"
],
"envs": {
"MYSQL_DATABASE": "my_db",
"MYSQL_PASSWORD": "my_password",
"MYSQL_ROOT_PASSWORD": "my_root_password",
"MYSQL_USER": "my_user"
},
"image": "mysql:8.0",
"imageDigest": "string",
"ports": [
"3306:3306/tcp"
],
"volumes": [
"data:/var/lib/mysql",
"/home/p-XXXXX/html:/var/www"
]
},
"serviceName": "mysql-db",
"shortId": "c-12e4u6",
"status": "running"
}
{
"properties": {
"deployedState": {
"description": "The actual state of the container that is currently deployed.\n",
"properties": {
"command": {
"items": {
"type": "string"
},
"type": "array",
"description": "The container command (equivalent to the [Docker cmd](https://docs.docker.com/reference/dockerfile/#cmd)). When omitted, this defaults to the command defined in the image.\n",
"example": [
"mysqld"
]
},
"entrypoint": {
"items": {
"type": "string"
},
"type": "array",
"description": "The container entrypoint (equivalent to the [Docker entrypoint](https://docs.docker.com/reference/dockerfile/#entrypoint)). When omitted, this defaults to the entrypoint defined in the image.\n",
"example": [
"docker-entrypoint.sh"
]
},
"envs": {
"additionalProperties": {
"type": "string"
},
"type": "object",
"description": "Key-value map of environment variables that should be passed into the container.\n",
"example": {
"MYSQL_DATABASE": "my_db",
"MYSQL_PASSWORD": "my_password",
"MYSQL_ROOT_PASSWORD": "my_root_password",
"MYSQL_USER": "my_user"
}
},
"image": {
"type": "string",
"description": "The image to run, in the usual format also used by `docker run` and `docker compose`. When the image is pulled from a private registry, make sure to create it first, using the `container-create-registry` endpoint. The appropriate registry is matched by hostname.\n",
"example": "mysql:8.0"
},
"imageDigest": {
"type": "string"
},
"ports": {
"items": {
"type": "string"
},
"type": "array",
"description": "Exposed ports. Follows the format `<public-port>:<container-port>/<protocol>`. Exposed ports can be accessed from other containers (or managed apps) within the same project. To expose a port publicly, connect it with an ingress resource.\n",
"example": [
"3306:3306/tcp"
]
},
"volumes": {
"items": {
"type": "string"
},
"type": "array",
"description": "Volume mounts for this container. These items always follow the format `<volume>:<mountpoint>`. The `<volume>` may either be a named volume, or a file path in the (always present) project file system (which is shared among containers and managed apps within a project).\n",
"example": [
"data:/var/lib/mysql",
"/home/p-XXXXX/html:/var/www"
]
}
},
"required": [
"image"
],
"type": "object"
},
"description": {
"example": "MySQL DB",
"type": "string"
},
"id": {
"format": "uuid",
"type": "string"
},
"message": {
"example": "Container ready",
"type": "string",
"description": "Message explaining the current state of the container. This may contain information about the current state of the container, or errors that occurred during deployment.\n"
},
"pendingState": {
"description": "The desired state that is waiting to be reconciled.\n",
"properties": {
"command": {
"items": {
"type": "string"
},
"type": "array",
"description": "The container command (equivalent to the [Docker cmd](https://docs.docker.com/reference/dockerfile/#cmd)). When omitted, this defaults to the command defined in the image.\n",
"example": [
"mysqld"
]
},
"entrypoint": {
"items": {
"type": "string"
},
"type": "array",
"description": "The container entrypoint (equivalent to the [Docker entrypoint](https://docs.docker.com/reference/dockerfile/#entrypoint)). When omitted, this defaults to the entrypoint defined in the image.\n",
"example": [
"docker-entrypoint.sh"
]
},
"envs": {
"additionalProperties": {
"type": "string"
},
"type": "object",
"description": "Key-value map of environment variables that should be passed into the container.\n",
"example": {
"MYSQL_DATABASE": "my_db",
"MYSQL_PASSWORD": "my_password",
"MYSQL_ROOT_PASSWORD": "my_root_password",
"MYSQL_USER": "my_user"
}
},
"image": {
"type": "string",
"description": "The image to run, in the usual format also used by `docker run` and `docker compose`. When the image is pulled from a private registry, make sure to create it first, using the `container-create-registry` endpoint. The appropriate registry is matched by hostname.\n",
"example": "mysql:8.0"
},
"imageDigest": {
"type": "string"
},
"ports": {
"items": {
"type": "string"
},
"type": "array",
"description": "Exposed ports. Follows the format `<public-port>:<container-port>/<protocol>`. Exposed ports can be accessed from other containers (or managed apps) within the same project. To expose a port publicly, connect it with an ingress resource.\n",
"example": [
"3306:3306/tcp"
]
},
"volumes": {
"items": {
"type": "string"
},
"type": "array",
"description": "Volume mounts for this container. These items always follow the format `<volume>:<mountpoint>`. The `<volume>` may either be a named volume, or a file path in the (always present) project file system (which is shared among containers and managed apps within a project).\n",
"example": [
"data:/var/lib/mysql",
"/home/p-XXXXX/html:/var/www"
]
}
},
"required": [
"image"
],
"type": "object"
},
"serviceName": {
"example": "mysql-db",
"type": "string"
},
"shortId": {
"example": "c-12e4u6",
"type": "string",
"description": "A short ID of the container. This is a unique identifier for the container within the project, and can be used to reference it in other API calls, or for SSH connections.\n"
},
"status": {
"enum": [
"running",
"stopped",
"restarting",
"error",
"creating",
"starting"
],
"type": "string"
}
},
"required": [
"id",
"stackId",
"projectId",
"description",
"serviceName",
"pendingState",
"deployedState",
"status",
"shortId"
],
"type": "object"
}
Usage examples
- cURL
- JavaScript SDK
- PHP SDK
$ curl \
--fail \
--location \
-H "Authorization: Bearer $MITTWALD_API_TOKEN" \
https://api.mittwald.de/v2/stacks/f0f86186-0a5a-45b2-aa33-502777496347/services/f0f86186-0a5a-45b2-aa33-502777496347
import { MittwaldAPIV2Client } from "@mittwald/api-client";
import { assertStatus } from "@mittwald/api-client-commons";
const client = MittwaldAPIClient.newWithToken(process.env.MITTWALD_API_TOKEN);
const response = await client.container.getService({
"stackId": "f0f86186-0a5a-45b2-aa33-502777496347",
"serviceId": "f0f86186-0a5a-45b2-aa33-502777496347"
});
assertStatus(response, 200);
use \Mittwald\ApiClient\Generated\V2\Clients\Container\GetService\GetServiceRequest;
$client = MittwaldAPIClient::newWithToken(getenv('MITTWALD_API_TOKEN'));
$request = (new GetServiceRequest(
stackId: "f0f86186-0a5a-45b2-aa33-502777496347",
serviceId: "f0f86186-0a5a-45b2-aa33-502777496347"
));
$response = $client->container()->getService($request);
var_dump($response->getBody();