private void CreateContainerDefinition(EcsTaskDefinitionOptions definitionOptions, TaskDefinition taskDefinition)
        {
            foreach (var containerDef in definitionOptions.Containers)
            {
                var ecr = StackResources.EcrRepositories.FirstOrDefault(ecr => ecr.Key == containerDef.RepositoryId);

                if (ecr.Key == null || ecr.Value == null)
                {
                    throw new ArgumentException("Please add a ECR definition option properly set up on your json configuration. No task definition could not be added.");
                }

                var portMapping = new List <PortMapping>();
                if (containerDef.TCPPortMapping?.Any() == true)
                {
                    foreach (var ports in containerDef.TCPPortMapping)
                    {
                        portMapping.Add(new PortMapping
                        {
                            ContainerPort = ports.ContainerPort,
                            HostPort      = ports.HostPort,
                            Protocol      = Amazon.CDK.AWS.ECS.Protocol.TCP
                        });
                    }
                }

                var containerDefinitionProps = new ContainerDefinitionProps
                {
                    TaskDefinition = taskDefinition,
                    Image          = ContainerImage.FromEcrRepository(ecr.Value, containerDef.ImageTag),
                    MemoryLimitMiB = containerDef.MemoryLimitMiB,
                    Cpu            = containerDef.CpuUnits,
                    StartTimeout   = Duration.Minutes(containerDef.StartTimeOutMinutes),
                    PortMappings   = portMapping.ToArray(),
                    Environment    = containerDef.EnvironmentVariables,
                    DnsServers     = containerDef.DnsServers?.ToArray()
                };

                var container = AwsCdkHandler.CreateContainerDefinitionByProps(containerDef.Id, containerDefinitionProps);

                if (definitionOptions.MountPoints?.Any() == true)
                {
                    var mountPoints = new List <MountPoint>();
                    foreach (var mountPointOption in definitionOptions.MountPoints)
                    {
                        mountPoints.Add(new MountPoint
                        {
                            SourceVolume  = mountPointOption.SourceVolume,
                            ContainerPath = mountPointOption.ContainerPath
                        });
                    }
                    container.AddMountPoints(mountPoints.ToArray());
                }
            }
        }