> **Experimental**
>
> `@aws-cdk/aws-imagebuilder-alpha` is an [**experimental**](/stability) (alpha) package: its API may change in any release, without a major version bump.
# ContainerRecipeProps

Properties for creating a Container Recipe resource.

Extends: ContainerRecipeProps
Used as props by: ContainerRecipe

- Stability: [Experimental](/cdk/api/stability.html)
- Source: [`lib/container-recipe.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0-alpha.0/packages/@aws-cdk/aws-imagebuilder-alpha/lib/container-recipe.ts#L65)

## Example

```ts
const containerRecipe = new imagebuilder.ContainerRecipe(this, 'MyContainerRecipe', {
  baseImage: imagebuilder.BaseContainerImage.fromDockerHub('amazonlinux', 'latest'),
  targetRepository: imagebuilder.Repository.fromEcr(
    ecr.Repository.fromRepositoryName(this, 'Repository', 'my-container-repo')
  )
});

const containerPipeline = new imagebuilder.ImagePipeline(this, 'MyContainerPipeline', {
  recipe: exampleContainerRecipe
});
```

## Properties

- `baseImage`: [BaseContainerImage](/cdk/api/v2/docs/@aws-cdk_aws-imagebuilder-alpha.BaseContainerImage.html) (required) — The base image for customizations specified in the container recipe.

- `components`: [ComponentConfiguration](/cdk/api/v2/docs/@aws-cdk_aws-imagebuilder-alpha.ComponentConfiguration.html)[] = None — The list of component configurations to apply in the image build.

- `containerRecipeName`: string — The name of the container recipe.

  **Default:** a name is generated

- `containerRecipeVersion`: string = 1.0.x — The version of the container recipe.

- `description`: string = None — The description of the container recipe.

- `dockerfile`: [DockerfileData](/cdk/api/v2/docs/@aws-cdk_aws-imagebuilder-alpha.DockerfileData.html) — The dockerfile template used to build the container image.

  **Default:** a standard dockerfile template will be generated to pull the base image, perform environment setup, and run all components in the recipe

- `instanceBlockDevices`: [BlockDevice](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.BlockDevice.html)[] — The block devices to attach to the instance used for building, testing, and distributing the container image.

  **Default:** the block devices of the instance image will be used

- `instanceImage`: [ContainerInstanceImage](/cdk/api/v2/docs/@aws-cdk_aws-imagebuilder-alpha.ContainerInstanceImage.html) — The image to use to launch the instance used for building, testing, and distributing the container image.

  **Default:** Image Builder will use the appropriate ECS-optimized AMI

- `kmsKey`: [IKey](/cdk/api/v2/docs/aws-cdk-lib.aws_kms.IKey.html) = None — The KMS key used to encrypt the dockerfile template.

- `osVersion`: [OSVersion](/cdk/api/v2/docs/@aws-cdk_aws-imagebuilder-alpha.OSVersion.html) — The operating system (OS) version of the base image.

  **Default:** Image Builder will determine the OS version of the base image, if sourced from a third-party container registry. Otherwise, the OS version of the base image is required.

- `tags`: { [key: string]: string } = None — The tags to apply to the container recipe.

- `targetRepository`: [Repository](/cdk/api/v2/docs/@aws-cdk_aws-imagebuilder-alpha.Repository.html) (required) — The container repository where the output container image is stored.

- `workingDirectory`: string — The working directory for use during build and test workflows.

  **Default:** the Image Builder default working directory is used. For Linux and macOS builds, this would be /tmp. For Windows builds, this would be C:/
