A container definition is used in a task definition to describe the containers that are launched as part of a task.
import { ContainerDefinition } from 'aws-cdk-lib/aws-ecs';Or use the module namespace:
import * as ecs from 'aws-cdk-lib/aws-ecs';
// ecs.ContainerDefinitionConfiguration passed to the constructor as ContainerDefinitionProps.
taskDefinitionRequiredTaskDefinitionThe name of the task definition that includes this container definition. [disable-awslint:ref-via-interface]
ContainerDefinitionOptionsimageRequiredinherited from ContainerDefinitionOptionsContainerImageThe image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest. TODO: Update these to specify using classes of IContainerImage
commandOptionalinherited from ContainerDefinitionOptionsstring[]The command that is passed to the container. If you provide a shell command as a single string, you have to quote command-line arguments.
Default: - CMD value built into container image.
containerNameOptionalinherited from ContainerDefinitionOptionsstringThe name of the container.
Default: - id of node associated with ContainerDefinition.
cpuOptionalinherited from ContainerDefinitionOptionsnumberThe minimum number of CPU units to reserve for the container.
Default: - No minimum CPU units reserved.
credentialSpecsOptionalinherited from ContainerDefinitionOptionsCredentialSpec[]A list of ARNs in SSM or Amazon S3 to a credential spec (`CredSpec`) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the `dockerSecurityOptions`. Currently, only one credential spec is allowed per container definition.
Default: - No credential specs.
disableNetworkingOptionalinherited from ContainerDefinitionOptionsbooleanSpecifies whether networking is disabled within the container. When this parameter is true, networking is disabled within the container.
Default: false
dnsSearchDomainsOptionalinherited from ContainerDefinitionOptionsstring[]A list of DNS search domains that are presented to the container.
Default: - No search domains.
dnsServersOptionalinherited from ContainerDefinitionOptionsstring[]A list of DNS servers that are presented to the container.
Default: - Default DNS servers.
dockerLabelsOptionalinherited from ContainerDefinitionOptions{ [key: string]: string }A key/value map of labels to add to the container.
Default: - No labels.
dockerSecurityOptionsOptionalinherited from ContainerDefinitionOptionsstring[]A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems.
Default: - No security labels.
enableRestartPolicyOptionalinherited from ContainerDefinitionOptionsbooleanEnable a restart policy for a container. When you set up a restart policy, Amazon ECS can restart the container without needing to replace the task.
Default: - false unless `restartIgnoredExitCodes` or `restartAttemptPeriod` is set.
entryPointOptionalinherited from ContainerDefinitionOptionsstring[]The ENTRYPOINT value to pass to the container.
Default: - Entry point configured in container.
environmentOptionalinherited from ContainerDefinitionOptions{ [key: string]: string }The environment variables to pass to the container.
Default: - No environment variables.
environmentFilesOptionalinherited from ContainerDefinitionOptionsEnvironmentFile[]The environment files to pass to the container.
Default: - No environment files.
essentialOptionalinherited from ContainerDefinitionOptionsbooleanSpecifies whether the container is marked essential. If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, then its failure does not affect the rest of the containers in a task. All tasks must have at least one essential container. If this parameter is omitted, a container is assumed to be essential.
Default: true
extraHostsOptionalinherited from ContainerDefinitionOptions{ [key: string]: string }A list of hostnames and IP address mappings to append to the /etc/hosts file on the container.
Default: - No extra hosts.
gpuCountOptionalinherited from ContainerDefinitionOptionsnumberThe number of GPUs assigned to the container.
Default: - No GPUs assigned.
healthCheckOptionalinherited from ContainerDefinitionOptionsHealthCheckThe health check command and associated configuration parameters for the container.
Default: - Health check configuration from container.
hostnameOptionalinherited from ContainerDefinitionOptionsstringThe hostname to use for your container.
Default: - Automatic hostname.
inferenceAcceleratorResourcesOptionalinherited from ContainerDefinitionOptionsstring[]The inference accelerators referenced by the container.
Default: - No inference accelerators assigned.
interactiveOptionalinherited from ContainerDefinitionOptionsbooleanWhen this parameter is true, you can deploy containerized applications that require stdin or a tty to be allocated.
Default: - false
linuxParametersOptionalinherited from ContainerDefinitionOptionsLinuxParametersLinux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html).
Default: - No Linux parameters.
loggingOptionalinherited from ContainerDefinitionOptionsLogDriverThe log configuration specification for the container.
Default: - Containers use the same logging driver that the Docker daemon uses.
memoryLimitMiBOptionalinherited from ContainerDefinitionOptionsnumberThe amount (in MiB) of memory to present to the container. If your container attempts to exceed the allocated memory, the container is terminated. At least one of memoryLimitMiB and memoryReservationMiB is required for non-Fargate services.
Default: - No memory limit.
memoryReservationMiBOptionalinherited from ContainerDefinitionOptionsnumberThe soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first. At least one of memoryLimitMiB and memoryReservationMiB is required for non-Fargate services.
Default: - No memory reserved.
portMappingsOptionalinherited from ContainerDefinitionOptionsPortMapping[]The port mappings to add to the container definition.
Default: - No ports are mapped.
privilegedOptionalinherited from ContainerDefinitionOptionsbooleanSpecifies whether the container is marked as privileged. When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user).
Default: false
pseudoTerminalOptionalinherited from ContainerDefinitionOptionsbooleanWhen this parameter is true, a TTY is allocated. This parameter maps to Tty in the "Create a container section" of the Docker Remote API and the --tty option to `docker run`.
Default: - false
readonlyRootFilesystemOptionalinherited from ContainerDefinitionOptionsbooleanWhen this parameter is true, the container is given read-only access to its root file system.
Default: false
restartAttemptPeriodOptionalinherited from ContainerDefinitionOptionsDurationA period of time that the container must run for before a restart can be attempted. A container can be restarted only once every `restartAttemptPeriod` seconds. If a container isn't able to run for this time period and exits early, it will not be restarted. This property can't be used if `enableRestartPolicy` is set to false. You can set a minimum `restartAttemptPeriod` of 60 seconds and a maximum `restartAttemptPeriod` of 1800 seconds.
Default: - Duration.seconds(300) if `enableRestartPolicy` is true, otherwise no period.
restartIgnoredExitCodesOptionalinherited from ContainerDefinitionOptionsnumber[]A list of exit codes that Amazon ECS will ignore and not attempt a restart on. This property can't be used if `enableRestartPolicy` is set to false. You can specify a maximum of 50 container exit codes.
Default: - No exit codes are ignored.
secretsOptionalinherited from ContainerDefinitionOptions{ [key: string]: Secret }The secret environment variables to pass to the container.
Default: - No secret environment variables.
startTimeoutOptionalinherited from ContainerDefinitionOptionsDurationTime duration (in seconds) to wait before giving up on resolving dependencies for a container.
Default: - none
stopTimeoutOptionalinherited from ContainerDefinitionOptionsDurationTime duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own.
Default: - none
systemControlsOptionalinherited from ContainerDefinitionOptionsSystemControl[]A list of namespaced kernel parameters to set in the container.
Default: - No system controls are set.
ulimitsOptionalinherited from ContainerDefinitionOptionsUlimit[]An array of ulimits to set in the container.
userOptionalinherited from ContainerDefinitionOptionsstringThe user to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run.
Default: root
versionConsistencyOptionalinherited from ContainerDefinitionOptionsVersionConsistencySpecifies whether Amazon ECS will resolve the container image tag provided in the container definition to an image digest. If you set the value for a container as disabled, Amazon ECS will not resolve the provided container image tag to a digest and will use the original image URI specified in the container definition for deployment.
Default: VersionConsistency.DISABLED if `image` is a CDK asset, VersionConsistency.ENABLED otherwise
workingDirectoryOptionalinherited from ContainerDefinitionOptionsstringThe working directory in which to run commands inside the container.
Default: /
Everything you need to know about Amazon ECS on one page. HD quality, print-friendly.
Download Free Infographicaws-ecs