MacBuildImage Class
A CodeBuild image running ARM MacOS.
This class has a bunch of public constants that represent the most popular images.
You can also specify a custom image using one of the static methods:
- MacBuildImage.fromDockerRegistry(image[, { secretsManagerCredentials }])
- MacBuildImage.fromEcrRepository(repo[, tag])
- MacBuildImage.fromAsset(parent, id, props)
Example
ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
import { aws_codebuild as codebuild } from 'aws-cdk-lib';
import { aws_ecr_assets as ecr_assets } from 'aws-cdk-lib';
declare const networkMode: ecr_assets.NetworkMode;
declare const platform: ecr_assets.Platform;
const macBuildImage = codebuild.MacBuildImage.fromAsset(this, 'MyMacBuildImage', {
directory: 'directory',
// the properties below are optional
assetName: 'assetName',
buildArgs: {
buildArgsKey: 'buildArgs',
},
buildContexts: {
buildContextsKey: 'buildContexts',
},
buildSecrets: {
buildSecretsKey: 'buildSecrets',
},
buildSsh: 'buildSsh',
cacheDisabled: false,
cacheFrom: [{
type: 'type',
// the properties below are optional
params: {
paramsKey: 'params',
},
}],
cacheTo: {
type: 'type',
// the properties below are optional
params: {
paramsKey: 'params',
},
},
displayName: 'displayName',
exclude: ['exclude'],
extraHash: 'extraHash',
file: 'file',
followSymlinks: cdk.SymlinkFollowMode.NEVER,
ignoreMode: cdk.IgnoreMode.GLOB,
invalidation: {
buildArgs: false,
buildContexts: false,
buildSecrets: false,
buildSsh: false,
extraHash: false,
file: false,
networkMode: false,
outputs: false,
platform: false,
repositoryName: false,
target: false,
},
networkMode: networkMode,
outputs: ['outputs'],
platform: platform,
target: 'target',
});
python
# The code below shows an example of how to instantiate this type.
# The values are placeholders you should change.
import aws_cdk as cdk
from aws_cdk import aws_codebuild as codebuild
from aws_cdk import aws_ecr_assets as ecr_assets
# network_mode: ecr_assets.NetworkMode
# platform: ecr_assets.Platform
mac_build_image = codebuild.MacBuildImage.from_asset(self, "MyMacBuildImage",
directory="directory",
# the properties below are optional
asset_name="assetName",
build_args={
"build_args_key": "buildArgs"
},
build_contexts={
"build_contexts_key": "buildContexts"
},
build_secrets={
"build_secrets_key": "buildSecrets"
},
build_ssh="buildSsh",
cache_disabled=False,
cache_from=[ecr_assets.DockerCacheOption(
type="type",
# the properties below are optional
params={
"params_key": "params"
}
)],
cache_to=ecr_assets.DockerCacheOption(
type="type",
# the properties below are optional
params={
"params_key": "params"
}
),
display_name="displayName",
exclude=["exclude"],
extra_hash="extraHash",
file="file",
follow_symlinks=cdk.SymlinkFollowMode.NEVER,
ignore_mode=cdk.IgnoreMode.GLOB,
invalidation=ecr_assets.DockerImageAssetInvalidationOptions(
build_args=False,
build_contexts=False,
build_secrets=False,
build_ssh=False,
extra_hash=False,
file=False,
network_mode=False,
outputs=False,
platform=False,
repository_name=False,
target=False
),
network_mode=network_mode,
outputs=["outputs"],
platform=platform,
target="target"
)
java
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.*;
import software.amazon.awscdk.services.codebuild.*;
import software.amazon.awscdk.services.ecr.assets.*;
NetworkMode networkMode;
Platform platform;
IBuildImage macBuildImage = MacBuildImage.fromAsset(this, "MyMacBuildImage", DockerImageAssetProps.builder()
.directory("directory")
// the properties below are optional
.assetName("assetName")
.buildArgs(Map.of(
"buildArgsKey", "buildArgs"))
.buildContexts(Map.of(
"buildContextsKey", "buildContexts"))
.buildSecrets(Map.of(
"buildSecretsKey", "buildSecrets"))
.buildSsh("buildSsh")
.cacheDisabled(false)
.cacheFrom(List.of(DockerCacheOption.builder()
.type("type")
// the properties below are optional
.params(Map.of(
"paramsKey", "params"))
.build()))
.cacheTo(DockerCacheOption.builder()
.type("type")
// the properties below are optional
.params(Map.of(
"paramsKey", "params"))
.build())
.displayName("displayName")
.exclude(List.of("exclude"))
.extraHash("extraHash")
.file("file")
.followSymlinks(SymlinkFollowMode.NEVER)
.ignoreMode(IgnoreMode.GLOB)
.invalidation(DockerImageAssetInvalidationOptions.builder()
.buildArgs(false)
.buildContexts(false)
.buildSecrets(false)
.buildSsh(false)
.extraHash(false)
.file(false)
.networkMode(false)
.outputs(false)
.platform(false)
.repositoryName(false)
.target(false)
.build())
.networkMode(networkMode)
.outputs(List.of("outputs"))
.platform(platform)
.target("target")
.build());
csharp
// Install: dotnet add package Amazon.CDK.Lib
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK;
using Amazon.CDK.AWS.CodeBuild;
using Amazon.CDK.AWS.Ecr.Assets;
NetworkMode networkMode;
Platform platform;
var macBuildImage = MacBuildImage.FromAsset(this, "MyMacBuildImage", new DockerImageAssetProps {
Directory = "directory",
// the properties below are optional
AssetName = "assetName",
BuildArgs = new Dictionary<string, string> {
{ "buildArgsKey", "buildArgs" }
},
BuildContexts = new Dictionary<string, string> {
{ "buildContextsKey", "buildContexts" }
},
BuildSecrets = new Dictionary<string, string> {
{ "buildSecretsKey", "buildSecrets" }
},
BuildSsh = "buildSsh",
CacheDisabled = false,
CacheFrom = new [] { new DockerCacheOption {
Type = "type",
// the properties below are optional
Params = new Dictionary<string, string> {
{ "paramsKey", "params" }
}
} },
CacheTo = new DockerCacheOption {
Type = "type",
// the properties below are optional
Params = new Dictionary<string, string> {
{ "paramsKey", "params" }
}
},
DisplayName = "displayName",
Exclude = new [] { "exclude" },
ExtraHash = "extraHash",
File = "file",
FollowSymlinks = SymlinkFollowMode.NEVER,
IgnoreMode = IgnoreMode.GLOB,
Invalidation = new DockerImageAssetInvalidationOptions {
BuildArgs = false,
BuildContexts = false,
BuildSecrets = false,
BuildSsh = false,
ExtraHash = false,
File = false,
NetworkMode = false,
Outputs = false,
Platform = false,
RepositoryName = false,
Target = false
},
NetworkMode = networkMode,
Outputs = new [] { "outputs" },
Platform = platform,
Target = "target"
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
var networkMode NetworkMode
var platform Platform
macBuildImage := awscdk.Aws_codebuild.MacBuildImage_FromAsset(this, jsii.String("MyMacBuildImage"), &DockerImageAssetProps{
Directory: jsii.String("directory"),
// the properties below are optional
AssetName: jsii.String("assetName"),
BuildArgs: map[string]*string{
"buildArgsKey": jsii.String("buildArgs"),
},
BuildContexts: map[string]*string{
"buildContextsKey": jsii.String("buildContexts"),
},
BuildSecrets: map[string]*string{
"buildSecretsKey": jsii.String("buildSecrets"),
},
BuildSsh: jsii.String("buildSsh"),
CacheDisabled: jsii.Boolean(false),
CacheFrom: []DockerCacheOption{
&DockerCacheOption{
Type: jsii.String("type"),
// the properties below are optional
Params: map[string]*string{
"paramsKey": jsii.String("params"),
},
},
},
CacheTo: &DockerCacheOption{
Type: jsii.String("type"),
// the properties below are optional
Params: map[string]*string{
"paramsKey": jsii.String("params"),
},
},
DisplayName: jsii.String("displayName"),
Exclude: []*string{
jsii.String("exclude"),
},
ExtraHash: jsii.String("extraHash"),
File: jsii.String("file"),
FollowSymlinks: cdk.SymlinkFollowMode_NEVER,
IgnoreMode: cdk.IgnoreMode_GLOB,
Invalidation: &DockerImageAssetInvalidationOptions{
BuildArgs: jsii.Boolean(false),
BuildContexts: jsii.Boolean(false),
BuildSecrets: jsii.Boolean(false),
BuildSsh: jsii.Boolean(false),
ExtraHash: jsii.Boolean(false),
File: jsii.Boolean(false),
NetworkMode: jsii.Boolean(false),
Outputs: jsii.Boolean(false),
Platform: jsii.Boolean(false),
RepositoryName: jsii.Boolean(false),
Target: jsii.Boolean(false),
},
NetworkMode: networkMode,
Outputs: []*string{
jsii.String("outputs"),
},
Platform: platform,
Target: jsii.String("target"),
})
Properties
Corresponds to the standard CodeBuild image `aws/codebuild/macos-arm-base:14`.
Corresponds to the CodeBuild image `aws/codebuild/macos-arm-base:15`.
Corresponds to the CodeBuild image `aws/codebuild/macos-arm-base:26`.
defaultComputeTypeComputeTypedefault_compute_typeComputeTypedefaultComputeTypeComputeTypeDefaultComputeTypeComputeTypeDefaultComputeTypeComputeType#The default `ComputeType` to use with this image, if one was not specified in `BuildEnvironment#computeType` explicitly.
The Docker image identifier that the build environment uses.
imagePullPrincipalTypemay be undefinedImagePullPrincipalTypeimage_pull_principal_typemay be undefinedImagePullPrincipalTypeimagePullPrincipalTypemay be undefinedImagePullPrincipalTypeImagePullPrincipalTypemay be undefinedImagePullPrincipalTypeImagePullPrincipalTypemay be undefinedImagePullPrincipalType#The type of principal that CodeBuild will use to pull this build Docker image.
repositorymay be undefinedIRepositoryrepositorymay be undefinedIRepositoryrepositorymay be undefinedIRepositoryRepositorymay be undefinedIRepositoryRepositorymay be undefinedIRepository#An optional ECR repository that the image is hosted in.
secretsManagerCredentialsmay be undefinedISecretsecrets_manager_credentialsmay be undefinedISecretsecretsManagerCredentialsmay be undefinedISecretSecretsManagerCredentialsmay be undefinedISecretSecretsManagerCredentialsmay be undefinedISecret#The secretsManagerCredentials for access to a private registry.
The type of build environment.
Methods
fromAsset(scope: Construct, id: string, props: DockerImageAssetProps): IBuildImage@staticmethod def from_asset(scope: Construct, id: str, props: DockerImageAssetProps) -> IBuildImagepublic static IBuildImage fromAsset(Construct scope, String id, DockerImageAssetProps props)public static IBuildImage FromAsset(Construct scope, string id, DockerImageAssetProps props)func FromAsset(Scope Construct, Id *string, Props DockerImageAssetProps) IBuildImagestatic#Uses an Docker image asset as a ARM MacOS build image.
fromDockerRegistry(name: string, options?: DockerImageOptions): IBuildImage@staticmethod def from_docker_registry(name: str, options: typing.Optional[DockerImageOptions] = None) -> IBuildImagepublic static IBuildImage fromDockerRegistry(String name, DockerImageOptions options)public static IBuildImage FromDockerRegistry(string name, DockerImageOptions? options = null)func FromDockerRegistry(Name *string, Options DockerImageOptions) IBuildImagestatic#Makes an ARM MacOS build image from a Docker Hub image.
fromEcrRepository(repository: IRepository, tagOrDigest?: string): IBuildImage@staticmethod def from_ecr_repository(repository: IRepository, tag_or_digest: typing.Optional[str] = None) -> IBuildImagepublic static IBuildImage fromEcrRepository(IRepository repository, String tagOrDigest)public static IBuildImage FromEcrRepository(IRepository repository, string? tagOrDigest = null)func FromEcrRepository(Repository IRepository, TagOrDigest *string) IBuildImagestatic#Makes an ARM MacOS build image from an ECR repository.
runScriptBuildspec(entrypoint: string): BuildSpecdef run_script_buildspec(self, entrypoint: str) -> BuildSpecpublic BuildSpec runScriptBuildspec(String entrypoint)public BuildSpec RunScriptBuildspec(string entrypoint)func RunScriptBuildspec(Entrypoint *string) BuildSpec#Make a buildspec to run the indicated script.
validate(buildEnvironment: BuildEnvironment): string[]def validate(self, build_environment: BuildEnvironment) -> typing.List[str]public List<String> validate(BuildEnvironment buildEnvironment)public string[] Validate(BuildEnvironment buildEnvironment)func Validate(BuildEnvironment BuildEnvironment) *[]*string#Allows the image a chance to validate whether the passed configuration is correct.