-
Notifications
You must be signed in to change notification settings - Fork 17
/
DockerImageAssetProps.go
90 lines (87 loc) · 3.7 KB
/
DockerImageAssetProps.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package awsecrassets
import (
"github.com/aws/aws-cdk-go/awscdk/v2"
)
// Props for DockerImageAssets.
//
// Example:
// import "github.com/aws/aws-cdk-go/awscdk"
//
//
// asset := awscdk.NewDockerImageAsset(this, jsii.String("MyBuildImage"), &DockerImageAssetProps{
// Directory: path.join(__dirname, jsii.String("my-image")),
// BuildArgs: map[string]*string{
// "HTTP_PROXY": jsii.String("http://10.20.30.2:1234"),
// },
// Invalidation: &DockerImageAssetInvalidationOptions{
// BuildArgs: jsii.Boolean(false),
// },
// })
//
type DockerImageAssetProps struct {
// File paths matching the patterns will be excluded.
//
// See `ignoreMode` to set the matching behavior.
// Has no effect on Assets bundled using the `bundling` property.
Exclude *[]*string `field:"optional" json:"exclude" yaml:"exclude"`
// A strategy for how to handle symlinks.
FollowSymlinks awscdk.SymlinkFollowMode `field:"optional" json:"followSymlinks" yaml:"followSymlinks"`
// The ignore behavior to use for `exclude` patterns.
IgnoreMode awscdk.IgnoreMode `field:"optional" json:"ignoreMode" yaml:"ignoreMode"`
// Extra information to encode into the fingerprint (e.g. build instructions and other inputs).
ExtraHash *string `field:"optional" json:"extraHash" yaml:"extraHash"`
// Unique identifier of the docker image asset and its potential revisions.
//
// Required if using AppScopedStagingSynthesizer.
AssetName *string `field:"optional" json:"assetName" yaml:"assetName"`
// Build args to pass to the `docker build` command.
//
// Since Docker build arguments are resolved before deployment, keys and
// values cannot refer to unresolved tokens (such as `lambda.functionArn` or
// `queue.queueUrl`).
BuildArgs *map[string]*string `field:"optional" json:"buildArgs" yaml:"buildArgs"`
// Build secrets.
//
// Docker BuildKit must be enabled to use build secrets.
//
// Example:
// import { DockerBuildSecret } from 'aws-cdk-lib';
//
// const buildSecrets = {
// 'MY_SECRET': DockerBuildSecret.fromSrc('file.txt')
// };
//
// See: https://docs.docker.com/build/buildkit/
//
BuildSecrets *map[string]*string `field:"optional" json:"buildSecrets" yaml:"buildSecrets"`
// Cache from options to pass to the `docker build` command.
// See: https://docs.docker.com/build/cache/backends/
//
CacheFrom *[]*DockerCacheOption `field:"optional" json:"cacheFrom" yaml:"cacheFrom"`
// Cache to options to pass to the `docker build` command.
// See: https://docs.docker.com/build/cache/backends/
//
CacheTo *DockerCacheOption `field:"optional" json:"cacheTo" yaml:"cacheTo"`
// Path to the Dockerfile (relative to the directory).
File *string `field:"optional" json:"file" yaml:"file"`
// Options to control which parameters are used to invalidate the asset hash.
Invalidation *DockerImageAssetInvalidationOptions `field:"optional" json:"invalidation" yaml:"invalidation"`
// Networking mode for the RUN commands during build.
//
// Support docker API 1.25+.
NetworkMode NetworkMode `field:"optional" json:"networkMode" yaml:"networkMode"`
// Outputs to pass to the `docker build` command.
// See: https://docs.docker.com/engine/reference/commandline/build/#custom-build-outputs
//
Outputs *[]*string `field:"optional" json:"outputs" yaml:"outputs"`
// Platform to build for.
//
// _Requires Docker Buildx_.
Platform Platform `field:"optional" json:"platform" yaml:"platform"`
// Docker target to build to.
Target *string `field:"optional" json:"target" yaml:"target"`
// The directory where the Dockerfile is stored.
//
// Any directory inside with a name that matches the CDK output folder (cdk.out by default) will be excluded from the asset
Directory *string `field:"required" json:"directory" yaml:"directory"`
}