All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awscdk.assets.docker.package-info Maven / Gradle / Ivy

/**
 * 

AWS CDK Docker Image Assets

* *
*

Stability: Experimental

*
*

This API is still under active development and subject to non-backward * compatible changes or removal in any future version. Use of the API is not recommended in production * environments. Experimental APIs are not subject to the Semantic Versioning model.

*
*
* *

This module allows bundling Docker images as assets.

*

Images are built from a local Docker context directory (with a Dockerfile), * uploaded to ECR by the CDK toolkit and/or your app's CI-CD pipeline, and can be * naturally referenced in your CDK app.

*
import { DockerImageAsset } from '@aws-cdk/assets-docker';
 * 
 * const asset = new DockerImageAsset(this, 'MyBuildImage', {
 *   directory: path.join(__dirname, 'my-image')
 * });
 * 
*

The directory my-image must include a Dockerfile.

*

This will instruct the toolkit to build a Docker image from my-image, push it * to an AWS ECR repository and wire the name of the repository as CloudFormation * parameters to your stack.

*

Use asset.imageUri to reference the image (it includes both the ECR image URL * and tag.

*

You can optionally pass build args to the docker build command by specifying * the buildArgs property:

*
const asset = new DockerImageAsset(this, 'MyBuildImage', {
 *   directory: path.join(__dirname, 'my-image'),
 *   buildArgs: {
 *     HTTP_PROXY: 'http://10.20.30.2:1234'
 *   }
 * });
 * 
*

Pull Permissions

*

Depending on the consumer of your image asset, you will need to make sure * the principal has permissions to pull the image.

*

In most cases, you should use the asset.repository.grantPull(principal) * method. This will modify the IAM policy of the principal to allow it to * pull images from this repository.

*

If the pulling principal is not in the same account or is an AWS service that * doesn't assume a role in your account (e.g. AWS CodeBuild), pull permissions * must be granted on the resource policy (and not on the principal's policy). * To do that, you can use asset.repository.addToResourcePolicy(statement) to * grant the desired principal the following permissions: "ecr:GetDownloadUrlForLayer", * "ecr:BatchGetImage" and "ecr:BatchCheckLayerAvailability".

* */ @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental) package software.amazon.awscdk.assets.docker;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy