code: func (t *EmpireTemplate) ContainerDefinition(app *twelvefactor.Manifest, p *twelvefactor.Process) *ecs.ContainerDefinition {
  	command := []*string{}
  	for _, s := range p.Command {
  		ss := s
  		command = append(command, &ss)
  	}
  
  	labels := make(map[string]*string)
  	for k, v := range twelvefactor.Labels(app, p) {
  		labels[k] = aws.String(v)
  	}
  
  	ulimits := []*ecs.Ulimit{}
  	if p.Nproc != 0 {
  		ulimits = []*ecs.Ulimit{
  			&ecs.Ulimit{
  				Name:      aws.String("nproc"),
  				SoftLimit: aws.Int64(int64(p.Nproc)),
  				HardLimit: aws.Int64(int64(p.Nproc)),
  			},
  		}
  	}
  
  	return &ecs.ContainerDefinition{
  		Name:             aws.String(p.Type),
  		Cpu:              aws.Int64(int64(p.CPUShares)),
  		Command:          command,
  		Image:            aws.String(p.Image.String()),
  		Essential:        aws.Bool(true),
  		Memory:           aws.Int64(int64(p.Memory / bytesize.MB)),
  		Environment:      sortedEnvironment(twelvefactor.Env(app, p)),
  		LogConfiguration: t.LogConfiguration,
  		DockerLabels:     labels,
  		Ulimits:          ulimits,
  	}
  }
docs: // ContainerDefinition generates an ECS ContainerDefinition for a process.