Service
Handle
interface Service { capAdd: List<string>; capDrop: List<string>; cgroupParent: string; command: List<string>; configs: List<Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ServiceNodes.ConfigReference>; containerName: string; dependsOn: Dict<string,Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ComposeNodes.ServiceDependency>; devices: List<string>; dns: List<string>; dnsSearch: List<string>; domainName: string; entrypoint: List<string>; envFile: List<string>; environment: Dict<string,string>; expose: List<string>; externalLinks: List<string>; extraHosts: Dict<string,string>; groupAdd: List<string>; hostname: string; image: string; init: boolean; ipc: string; isolation: string; labels: Dict<string,string>; links: List<string>; macAddress: string; name: string; networkMode: string; networks: List<string>; pid: string; ports: List<string>; privileged: boolean; profiles: List<string>; pullPolicy: string; readOnly: boolean; restart: string; secrets: List<Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ServiceNodes.SecretReference>; securityOpt: List<string>; stdinOpen: boolean; stopGracePeriod: string; stopSignal: string; sysctls: Dict<string,string>; tmpfs: List<string>; tty: boolean; ulimits: Dict<string,Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ServiceNodes.Ulimit>; user: string; volumes: List<Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ServiceNodes.Volume>; workingDir: string; addVolume(source: string, target: string, type?: string, isReadOnly?: boolean, configure?: (obj: Volume) => Promise<void>): Service;} 97 members
Properties
property
capAdd List<string> get · set Specifies a list of Linux capabilities to add to the container.
property
capDrop List<string> get · set Represents a list of Linux capabilities to be dropped from the service's container. This property can be used to restrict specific capabilities that the container should not have access to, enhancing security by implementing the principle of least privilege.
property
cgroupParent string get · set Gets or sets the parent Cgroup for the container. This property defines the name of the Cgroup under which the container's resource constraints are managed.
property
command List<string> get · set Represents the command to override the default command specified in the image's Dockerfile. This property allows specifying how the container should run by defining an executable and its arguments.
property
configs List<Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ServiceNodes.ConfigReference> get · set Represents a collection of configuration references associated with the service. Each configuration is defined as a reference to an external configuration resource, which can be used to manage application configurations.
property
containerName string get · set Specifies the name of the container to be used. This property maps to the "container_name" field in a Docker Compose file. If set, the container will have the specified name; otherwise, a name will be automatically generated.
property
dependsOn Dict<string,Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ComposeNodes.ServiceDependency> get · set Specifies a list of services that this service depends on. The dependencies are expressed as service names with optional conditions. Supported conditions are: "service_started", "service_healthy", "service_completed_successfully" This property defines the order in which services should be started, ensuring that the specified services are initialized before the current service.
property
devices List<string> get · set Represents a collection of device mappings for the service container. This property defines the host-to-container device paths in Docker.
property
dns List<string> get · set Gets or sets a list of custom DNS server IP addresses to be used by the service container.
property
dnsSearch List<string> get · set Specifies the domain search options for the service's container. This property allows you to define one or more domain search suffixes that will be appended to unqualified DNS queries performed by the container. Typically used to configure how DNS resolution should behave in specific network setups.
property
domainName string get · set Represents the domain name of a service container.
property
entrypoint List<string> get · set Specifies the entrypoint to be used for the container. This property allows overriding the default entrypoint of the image and defines the executable or command that is run when the container starts.
property
envFile List<string> get · set Represents a collection of paths to environment variable files used by the service. These files contain key-value pairs of environment variables that will be loaded and applied to the service configuration at runtime.
property
environment Dict<string,string> get · set Represents a collection of environment variables for the service container.
property
expose List<string> get · set Gets or sets a list of ports to expose from the container without publishing them to the host machine. This property defines internal ports that the container makes available to linked services or other containers within the same network, but these ports are not accessible from outside the container’s network.
property
externalLinks List<string> get · set Gets or sets the external links for the service. External links are references to services defined outside the current Docker Compose file, enabling communication with containers in other projects or environments.
property
extraHosts Dict<string,string> get · set Represents additional hostname-to-IP mappings for the service. These mappings allow you to manually define hostnames and corresponding IP addresses, effectively augmenting the DNS resolution for the service's containers.
property
groupAdd List<string> get · set Gets or sets a list of additional group IDs to add to the container's process. This allows the container to have access to resources or permissions associated with the specified groups.
property
hostname string get · set Gets or sets the hostname for the service container. This defines the hostname that will be assigned to the container and can be used for network identification within the container's network.
property
image string get · set Specifies the Docker image to be used for the service.
property
init boolean get · set Indicates whether the init binary should be used as the container's init process. When set to true, the init process is used to ensure proper reaping of zombie processes and signal forwarding inside the container.
property
ipc string get · set Gets or sets the IPC (Inter-Process Communication) mode for the service. This property determines how IPC namespaces are shared between containers and the host. It can be set to values such as "none", "host", or a specific container ID to share IPC resources with.
property
isolation string get · set Specifies the isolation mode for the container. This property determines the level of isolation between the container and the host system. Common values include "default", "process", or "hyperv", and the supported options may depend on the container runtime or the platform being used.
property
labels Dict<string,string> get · set Represents a set of metadata labels for the service. These key-value pairs can be used to organize and identify objects within the service configuration.
property
links List<string> get · set Represents a service definition in a Docker Compose configuration file.
property
macAddress string get · set Specifies a custom MAC (Media Access Control) address for the container's network interface.
property
name string get · set Gets or sets the name of the Docker Compose member.
property
networkMode string get · set Specifies the network mode to be used for the container. This property determines the networking configuration, such as whether the container shares the network stack with the host, uses a predefined network, or operates in isolation. The value is typically a string that matches a network mode supported by the environment, such as 'bridge', 'host', 'none', or a custom network name.
property
networks List<string> get · set Defines the collection of networks that the service is connected to. This property specifies the names of the networks the service should be attached to. Each entry in this list represents a network defined in the Docker Compose file or an externally defined network. Connecting a service to one or more networks allows inter-service communication across those networks, as well as communication with external systems configured on those same networks. If no network is specified, the service is connected to the default network that is automatically created by Docker Compose for the project unless `network_mode` is set to another value.
property
pid string get · set Gets or sets the PID (Process Identifier) namespace configuration for the container. This property determines whether the container shares the PID namespace with the host or other containers, allowing process visibility and signal sending between them.
property
ports List<string> get · set Represents a collection of port mappings for the service. Each mapping specifies how a container port is bound to a host port.
property
privileged boolean get · set Indicates whether the container should run in privileged mode. When set to true, the container is granted extended Linux capabilities and device access.
property
profiles List<string> get · set Defines a list of profiles associated with the service. Profiles allow grouping of services and provide the ability to selectively enable services based on specified runtime profiles. If no profiles are specified, the service will be active in all configurations.
property
pullPolicy string get · set Specifies the policy for pulling the Docker image.
property
readOnly boolean get · set Defines whether the service containers should be run in read-only mode. If set to true, the containers will have a read-only file system, limiting write operations to specific directories defined by writable mounts or tempfs.
property
restart string get · set Specifies the restart policy for the container. This property determines how the container should behave in case of a crash or termination. Common values include "no", "always", "on-failure", and "unless-stopped".
property
secrets List<Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ServiceNodes.SecretReference> get · set Represents a collection of secret references used by the service.
property
securityOpt List<string> get · set Represents a list of security options that can be applied to the container. This is used to configure security-related settings specific to the container such as SELinux labels or AppArmor profiles, providing fine-grained control over the container's security behavior.
property
stdinOpen boolean get · set Indicates whether standard input (stdin) should remain open and be attached to the service container, even if no terminal is connected.
property
stopGracePeriod string get · set Gets or sets the stop grace period for the container. This specifies the amount of time to wait before forcing a container to stop after the stop or shutdown signal is sent. The value can be defined in a time duration format, such as "10s" for 10 seconds or "1m" for 1 minute.
property
stopSignal string get · set Specifies the signal that will be used to stop the container. This property allows you to define a custom stop signal other than the default SIGTERM.
property
sysctls Dict<string,string> get · set Represents a set of kernel parameters, specified as key-value pairs, that can be applied to the container at runtime. This property allows customization of specific Linux kernel settings (sysctl parameters) for the container, enabling fine-tuned control over its behavior. Common use cases include tuning network parameters or configuring shared memory limits. Note: Supported kernel parameters will vary based on the Docker daemon and the host system. Unsupported parameters will result in an error. Example: Use this property to set parameters like `net.ipv4.tcp_syncookies` or `net.core.somaxconn`.
property
tmpfs List<string> get · set Specifies a list of temporary file systems (tmpfs) to be mounted inside the container. Each entry represents a directory on the container's filesystem, mounted as a tmpfs, which resides in-memory and is typically used for ephemeral storage or caching purposes.
property
tty boolean get · set Specifies whether a pseudo-TTY (teletypewriter) should be allocated for the container. When set to true, it enables the container to run with an interactive terminal session.
property
ulimits Dict<string,Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ServiceNodes.Ulimit> get · set Represents a collection of ulimit constraints for the service. Ulimits specify system resource limitations to be applied to the container, such as maximum number of open files or maximum stack size.
property
user string get · set Specifies the user that the container will run as. The value can be set to a numeric UID, a string for the username, or a combination of both (e.g., "UID:GID").
property
volumes List<Aspire.Hosting.Docker/Aspire.Hosting.Docker.Resources.ServiceNodes.Volume> get · set Defines the list of volumes to be mounted into the service's container.
property
workingDir string get · set Gets or sets the working directory of the container. Specifies the directory in which commands are run inside the container. Corresponds to the "working_dir" property in a Docker Compose file.
Methods
method
addVolume Adds a volume mount to a generated Docker Compose service.
addVolume(source: string, target: string, type?: string, isReadOnly?: boolean, configure?: (obj: Volume) => Promise<void>): ServiceParameters
source string target string type string optional = volume isReadOnly boolean optional configure (obj: Volume) => Promise<void> optional Returns
Service