pulumi-docker-build 0.0.1__py3-none-any.whl → 0.0.1a100__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pulumi-docker-build might be problematic. Click here for more details.
- pulumi_docker_build/_inputs.py +835 -22
- pulumi_docker_build/_utilities.py +41 -5
- pulumi_docker_build/config/__init__.pyi +5 -0
- pulumi_docker_build/config/vars.py +5 -0
- pulumi_docker_build/image.py +261 -231
- pulumi_docker_build/index.py +64 -59
- pulumi_docker_build/outputs.py +11 -6
- pulumi_docker_build/provider.py +7 -2
- pulumi_docker_build/pulumi-plugin.json +2 -1
- {pulumi_docker_build-0.0.1.dist-info → pulumi_docker_build-0.0.1a100.dist-info}/METADATA +7 -6
- pulumi_docker_build-0.0.1a100.dist-info/RECORD +17 -0
- {pulumi_docker_build-0.0.1.dist-info → pulumi_docker_build-0.0.1a100.dist-info}/WHEEL +1 -1
- pulumi_docker_build-0.0.1.dist-info/RECORD +0 -17
- {pulumi_docker_build-0.0.1.dist-info → pulumi_docker_build-0.0.1a100.dist-info}/top_level.txt +0 -0
pulumi_docker_build/image.py
CHANGED
|
@@ -4,9 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
import copy
|
|
6
6
|
import warnings
|
|
7
|
+
import sys
|
|
7
8
|
import pulumi
|
|
8
9
|
import pulumi.runtime
|
|
9
10
|
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
10
15
|
from . import _utilities
|
|
11
16
|
from . import outputs
|
|
12
17
|
from ._enums import *
|
|
@@ -17,6 +22,7 @@ __all__ = ['ImageArgs', 'Image']
|
|
|
17
22
|
@pulumi.input_type
|
|
18
23
|
class ImageArgs:
|
|
19
24
|
def __init__(__self__, *,
|
|
25
|
+
push: pulumi.Input[bool],
|
|
20
26
|
add_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
21
27
|
build_args: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
22
28
|
build_on_preview: Optional[pulumi.Input[bool]] = None,
|
|
@@ -33,7 +39,6 @@ class ImageArgs:
|
|
|
33
39
|
no_cache: Optional[pulumi.Input[bool]] = None,
|
|
34
40
|
platforms: Optional[pulumi.Input[Sequence[pulumi.Input['Platform']]]] = None,
|
|
35
41
|
pull: Optional[pulumi.Input[bool]] = None,
|
|
36
|
-
push: Optional[pulumi.Input[bool]] = None,
|
|
37
42
|
registries: Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]] = None,
|
|
38
43
|
secrets: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
39
44
|
ssh: Optional[pulumi.Input[Sequence[pulumi.Input['SSHArgs']]]] = None,
|
|
@@ -41,6 +46,11 @@ class ImageArgs:
|
|
|
41
46
|
target: Optional[pulumi.Input[str]] = None):
|
|
42
47
|
"""
|
|
43
48
|
The set of arguments for constructing a Image resource.
|
|
49
|
+
:param pulumi.Input[bool] push: When `true` the build will automatically include a `registry` export.
|
|
50
|
+
|
|
51
|
+
Defaults to `false`.
|
|
52
|
+
|
|
53
|
+
Equivalent to Docker's `--push` flag.
|
|
44
54
|
:param pulumi.Input[Sequence[pulumi.Input[str]]] add_hosts: Custom `host:ip` mappings to use during the build.
|
|
45
55
|
|
|
46
56
|
Equivalent to Docker's `--add-host` flag.
|
|
@@ -71,7 +81,7 @@ class ImageArgs:
|
|
|
71
81
|
:param pulumi.Input[Sequence[pulumi.Input['CacheToArgs']]] cache_to: Cache import configuration.
|
|
72
82
|
|
|
73
83
|
Equivalent to Docker's `--cache-to` flag.
|
|
74
|
-
:param pulumi.Input['BuildContextArgs'] context: Build context settings.
|
|
84
|
+
:param pulumi.Input['BuildContextArgs'] context: Build context settings. Defaults to the current directory.
|
|
75
85
|
|
|
76
86
|
Equivalent to Docker's `PATH | URL | -` positional argument.
|
|
77
87
|
:param pulumi.Input['DockerfileArgs'] dockerfile: Dockerfile settings.
|
|
@@ -128,11 +138,6 @@ class ImageArgs:
|
|
|
128
138
|
:param pulumi.Input[bool] pull: Always pull referenced images.
|
|
129
139
|
|
|
130
140
|
Equivalent to Docker's `--pull` flag.
|
|
131
|
-
:param pulumi.Input[bool] push: When `true` the build will automatically include a `registry` export.
|
|
132
|
-
|
|
133
|
-
Defaults to `false`.
|
|
134
|
-
|
|
135
|
-
Equivalent to Docker's `--push` flag.
|
|
136
141
|
:param pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]] registries: Registry credentials. Required if reading or exporting to private
|
|
137
142
|
repositories.
|
|
138
143
|
|
|
@@ -164,6 +169,7 @@ class ImageArgs:
|
|
|
164
169
|
|
|
165
170
|
Equivalent to Docker's `--target` flag.
|
|
166
171
|
"""
|
|
172
|
+
pulumi.set(__self__, "push", push)
|
|
167
173
|
if add_hosts is not None:
|
|
168
174
|
pulumi.set(__self__, "add_hosts", add_hosts)
|
|
169
175
|
if build_args is not None:
|
|
@@ -200,8 +206,6 @@ class ImageArgs:
|
|
|
200
206
|
pulumi.set(__self__, "platforms", platforms)
|
|
201
207
|
if pull is not None:
|
|
202
208
|
pulumi.set(__self__, "pull", pull)
|
|
203
|
-
if push is not None:
|
|
204
|
-
pulumi.set(__self__, "push", push)
|
|
205
209
|
if registries is not None:
|
|
206
210
|
pulumi.set(__self__, "registries", registries)
|
|
207
211
|
if secrets is not None:
|
|
@@ -213,6 +217,22 @@ class ImageArgs:
|
|
|
213
217
|
if target is not None:
|
|
214
218
|
pulumi.set(__self__, "target", target)
|
|
215
219
|
|
|
220
|
+
@property
|
|
221
|
+
@pulumi.getter
|
|
222
|
+
def push(self) -> pulumi.Input[bool]:
|
|
223
|
+
"""
|
|
224
|
+
When `true` the build will automatically include a `registry` export.
|
|
225
|
+
|
|
226
|
+
Defaults to `false`.
|
|
227
|
+
|
|
228
|
+
Equivalent to Docker's `--push` flag.
|
|
229
|
+
"""
|
|
230
|
+
return pulumi.get(self, "push")
|
|
231
|
+
|
|
232
|
+
@push.setter
|
|
233
|
+
def push(self, value: pulumi.Input[bool]):
|
|
234
|
+
pulumi.set(self, "push", value)
|
|
235
|
+
|
|
216
236
|
@property
|
|
217
237
|
@pulumi.getter(name="addHosts")
|
|
218
238
|
def add_hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
@@ -313,7 +333,7 @@ class ImageArgs:
|
|
|
313
333
|
@pulumi.getter
|
|
314
334
|
def context(self) -> Optional[pulumi.Input['BuildContextArgs']]:
|
|
315
335
|
"""
|
|
316
|
-
Build context settings.
|
|
336
|
+
Build context settings. Defaults to the current directory.
|
|
317
337
|
|
|
318
338
|
Equivalent to Docker's `PATH | URL | -` positional argument.
|
|
319
339
|
"""
|
|
@@ -476,22 +496,6 @@ class ImageArgs:
|
|
|
476
496
|
def pull(self, value: Optional[pulumi.Input[bool]]):
|
|
477
497
|
pulumi.set(self, "pull", value)
|
|
478
498
|
|
|
479
|
-
@property
|
|
480
|
-
@pulumi.getter
|
|
481
|
-
def push(self) -> Optional[pulumi.Input[bool]]:
|
|
482
|
-
"""
|
|
483
|
-
When `true` the build will automatically include a `registry` export.
|
|
484
|
-
|
|
485
|
-
Defaults to `false`.
|
|
486
|
-
|
|
487
|
-
Equivalent to Docker's `--push` flag.
|
|
488
|
-
"""
|
|
489
|
-
return pulumi.get(self, "push")
|
|
490
|
-
|
|
491
|
-
@push.setter
|
|
492
|
-
def push(self, value: Optional[pulumi.Input[bool]]):
|
|
493
|
-
pulumi.set(self, "push", value)
|
|
494
|
-
|
|
495
499
|
@property
|
|
496
500
|
@pulumi.getter
|
|
497
501
|
def registries(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegistryArgs']]]]:
|
|
@@ -586,13 +590,13 @@ class Image(pulumi.CustomResource):
|
|
|
586
590
|
add_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
587
591
|
build_args: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
588
592
|
build_on_preview: Optional[pulumi.Input[bool]] = None,
|
|
589
|
-
builder: Optional[pulumi.Input[
|
|
590
|
-
cache_from: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
591
|
-
cache_to: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
592
|
-
context: Optional[pulumi.Input[
|
|
593
|
-
dockerfile: Optional[pulumi.Input[
|
|
593
|
+
builder: Optional[pulumi.Input[Union['BuilderConfigArgs', 'BuilderConfigArgsDict']]] = None,
|
|
594
|
+
cache_from: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CacheFromArgs', 'CacheFromArgsDict']]]]] = None,
|
|
595
|
+
cache_to: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CacheToArgs', 'CacheToArgsDict']]]]] = None,
|
|
596
|
+
context: Optional[pulumi.Input[Union['BuildContextArgs', 'BuildContextArgsDict']]] = None,
|
|
597
|
+
dockerfile: Optional[pulumi.Input[Union['DockerfileArgs', 'DockerfileArgsDict']]] = None,
|
|
594
598
|
exec_: Optional[pulumi.Input[bool]] = None,
|
|
595
|
-
exports: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
599
|
+
exports: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExportArgs', 'ExportArgsDict']]]]] = None,
|
|
596
600
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
597
601
|
load: Optional[pulumi.Input[bool]] = None,
|
|
598
602
|
network: Optional[pulumi.Input['NetworkMode']] = None,
|
|
@@ -600,9 +604,9 @@ class Image(pulumi.CustomResource):
|
|
|
600
604
|
platforms: Optional[pulumi.Input[Sequence[pulumi.Input['Platform']]]] = None,
|
|
601
605
|
pull: Optional[pulumi.Input[bool]] = None,
|
|
602
606
|
push: Optional[pulumi.Input[bool]] = None,
|
|
603
|
-
registries: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
607
|
+
registries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
|
|
604
608
|
secrets: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
605
|
-
ssh: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
609
|
+
ssh: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SSHArgs', 'SSHArgsDict']]]]] = None,
|
|
606
610
|
tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
607
611
|
target: Optional[pulumi.Input[str]] = None,
|
|
608
612
|
__props__=None):
|
|
@@ -719,27 +723,27 @@ class Image(pulumi.CustomResource):
|
|
|
719
723
|
ecr_repository = aws.ecr.Repository("ecr-repository")
|
|
720
724
|
auth_token = aws.ecr.get_authorization_token_output(registry_id=ecr_repository.registry_id)
|
|
721
725
|
my_image = docker_build.Image("my-image",
|
|
722
|
-
cache_from=[
|
|
723
|
-
registry
|
|
724
|
-
ref
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
cache_to=[
|
|
728
|
-
registry
|
|
729
|
-
image_manifest
|
|
730
|
-
oci_media_types
|
|
731
|
-
ref
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
context=
|
|
735
|
-
location
|
|
736
|
-
|
|
726
|
+
cache_from=[{
|
|
727
|
+
"registry": {
|
|
728
|
+
"ref": ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
|
|
729
|
+
},
|
|
730
|
+
}],
|
|
731
|
+
cache_to=[{
|
|
732
|
+
"registry": {
|
|
733
|
+
"image_manifest": True,
|
|
734
|
+
"oci_media_types": True,
|
|
735
|
+
"ref": ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
|
|
736
|
+
},
|
|
737
|
+
}],
|
|
738
|
+
context={
|
|
739
|
+
"location": "./app",
|
|
740
|
+
},
|
|
737
741
|
push=True,
|
|
738
|
-
registries=[
|
|
739
|
-
address
|
|
740
|
-
password
|
|
741
|
-
username
|
|
742
|
-
|
|
742
|
+
registries=[{
|
|
743
|
+
"address": ecr_repository.repository_url,
|
|
744
|
+
"password": auth_token.password,
|
|
745
|
+
"username": auth_token.user_name,
|
|
746
|
+
}],
|
|
743
747
|
tags=[ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:latest")])
|
|
744
748
|
pulumi.export("ref", my_image.ref)
|
|
745
749
|
```
|
|
@@ -749,13 +753,14 @@ class Image(pulumi.CustomResource):
|
|
|
749
753
|
import pulumi_docker_build as docker_build
|
|
750
754
|
|
|
751
755
|
image = docker_build.Image("image",
|
|
752
|
-
context=
|
|
753
|
-
location
|
|
754
|
-
|
|
756
|
+
context={
|
|
757
|
+
"location": "app",
|
|
758
|
+
},
|
|
755
759
|
platforms=[
|
|
756
760
|
docker_build.Platform.PLAN9_AMD64,
|
|
757
761
|
docker_build.Platform.PLAN9_386,
|
|
758
|
-
]
|
|
762
|
+
],
|
|
763
|
+
push=False)
|
|
759
764
|
```
|
|
760
765
|
### Registry export
|
|
761
766
|
```python
|
|
@@ -763,15 +768,15 @@ class Image(pulumi.CustomResource):
|
|
|
763
768
|
import pulumi_docker_build as docker_build
|
|
764
769
|
|
|
765
770
|
image = docker_build.Image("image",
|
|
766
|
-
context=
|
|
767
|
-
location
|
|
768
|
-
|
|
771
|
+
context={
|
|
772
|
+
"location": "app",
|
|
773
|
+
},
|
|
769
774
|
push=True,
|
|
770
|
-
registries=[
|
|
771
|
-
address
|
|
772
|
-
password
|
|
773
|
-
username
|
|
774
|
-
|
|
775
|
+
registries=[{
|
|
776
|
+
"address": "docker.io",
|
|
777
|
+
"password": docker_hub_password,
|
|
778
|
+
"username": "pulumibot",
|
|
779
|
+
}],
|
|
775
780
|
tags=["docker.io/pulumi/pulumi:3.107.0"])
|
|
776
781
|
pulumi.export("ref", my_image["ref"])
|
|
777
782
|
```
|
|
@@ -781,20 +786,21 @@ class Image(pulumi.CustomResource):
|
|
|
781
786
|
import pulumi_docker_build as docker_build
|
|
782
787
|
|
|
783
788
|
image = docker_build.Image("image",
|
|
784
|
-
cache_from=[
|
|
785
|
-
local
|
|
786
|
-
src
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
cache_to=[
|
|
790
|
-
local
|
|
791
|
-
dest
|
|
792
|
-
mode
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
context=
|
|
796
|
-
location
|
|
797
|
-
|
|
789
|
+
cache_from=[{
|
|
790
|
+
"local": {
|
|
791
|
+
"src": "tmp/cache",
|
|
792
|
+
},
|
|
793
|
+
}],
|
|
794
|
+
cache_to=[{
|
|
795
|
+
"local": {
|
|
796
|
+
"dest": "tmp/cache",
|
|
797
|
+
"mode": docker_build.CacheMode.MAX,
|
|
798
|
+
},
|
|
799
|
+
}],
|
|
800
|
+
context={
|
|
801
|
+
"location": "app",
|
|
802
|
+
},
|
|
803
|
+
push=False)
|
|
798
804
|
```
|
|
799
805
|
### Docker Build Cloud
|
|
800
806
|
```python
|
|
@@ -802,13 +808,14 @@ class Image(pulumi.CustomResource):
|
|
|
802
808
|
import pulumi_docker_build as docker_build
|
|
803
809
|
|
|
804
810
|
image = docker_build.Image("image",
|
|
805
|
-
builder=
|
|
806
|
-
name
|
|
807
|
-
|
|
808
|
-
context=
|
|
809
|
-
location
|
|
810
|
-
|
|
811
|
-
exec_=True
|
|
811
|
+
builder={
|
|
812
|
+
"name": "cloud-builder-name",
|
|
813
|
+
},
|
|
814
|
+
context={
|
|
815
|
+
"location": "app",
|
|
816
|
+
},
|
|
817
|
+
exec_=True,
|
|
818
|
+
push=False)
|
|
812
819
|
```
|
|
813
820
|
### Build arguments
|
|
814
821
|
```python
|
|
@@ -819,9 +826,10 @@ class Image(pulumi.CustomResource):
|
|
|
819
826
|
build_args={
|
|
820
827
|
"SET_ME_TO_TRUE": "true",
|
|
821
828
|
},
|
|
822
|
-
context=
|
|
823
|
-
location
|
|
824
|
-
|
|
829
|
+
context={
|
|
830
|
+
"location": "app",
|
|
831
|
+
},
|
|
832
|
+
push=False)
|
|
825
833
|
```
|
|
826
834
|
### Build target
|
|
827
835
|
```python
|
|
@@ -829,9 +837,10 @@ class Image(pulumi.CustomResource):
|
|
|
829
837
|
import pulumi_docker_build as docker_build
|
|
830
838
|
|
|
831
839
|
image = docker_build.Image("image",
|
|
832
|
-
context=
|
|
833
|
-
location
|
|
834
|
-
|
|
840
|
+
context={
|
|
841
|
+
"location": "app",
|
|
842
|
+
},
|
|
843
|
+
push=False,
|
|
835
844
|
target="build-me")
|
|
836
845
|
```
|
|
837
846
|
### Named contexts
|
|
@@ -839,23 +848,27 @@ class Image(pulumi.CustomResource):
|
|
|
839
848
|
import pulumi
|
|
840
849
|
import pulumi_docker_build as docker_build
|
|
841
850
|
|
|
842
|
-
image = docker_build.Image("image",
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
"
|
|
846
|
-
|
|
847
|
-
|
|
851
|
+
image = docker_build.Image("image",
|
|
852
|
+
context={
|
|
853
|
+
"location": "app",
|
|
854
|
+
"named": {
|
|
855
|
+
"golang:latest": {
|
|
856
|
+
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
|
|
857
|
+
},
|
|
858
|
+
},
|
|
848
859
|
},
|
|
849
|
-
|
|
860
|
+
push=False)
|
|
850
861
|
```
|
|
851
862
|
### Remote context
|
|
852
863
|
```python
|
|
853
864
|
import pulumi
|
|
854
865
|
import pulumi_docker_build as docker_build
|
|
855
866
|
|
|
856
|
-
image = docker_build.Image("image",
|
|
857
|
-
|
|
858
|
-
|
|
867
|
+
image = docker_build.Image("image",
|
|
868
|
+
context={
|
|
869
|
+
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
|
870
|
+
},
|
|
871
|
+
push=False)
|
|
859
872
|
```
|
|
860
873
|
### Inline Dockerfile
|
|
861
874
|
```python
|
|
@@ -863,14 +876,15 @@ class Image(pulumi.CustomResource):
|
|
|
863
876
|
import pulumi_docker_build as docker_build
|
|
864
877
|
|
|
865
878
|
image = docker_build.Image("image",
|
|
866
|
-
context=
|
|
867
|
-
location
|
|
868
|
-
|
|
869
|
-
dockerfile=
|
|
870
|
-
inline
|
|
879
|
+
context={
|
|
880
|
+
"location": "app",
|
|
881
|
+
},
|
|
882
|
+
dockerfile={
|
|
883
|
+
"inline": \"\"\"FROM busybox
|
|
871
884
|
COPY hello.c ./
|
|
872
885
|
\"\"\",
|
|
873
|
-
|
|
886
|
+
},
|
|
887
|
+
push=False)
|
|
874
888
|
```
|
|
875
889
|
### Remote context
|
|
876
890
|
```python
|
|
@@ -878,12 +892,13 @@ class Image(pulumi.CustomResource):
|
|
|
878
892
|
import pulumi_docker_build as docker_build
|
|
879
893
|
|
|
880
894
|
image = docker_build.Image("image",
|
|
881
|
-
context=
|
|
882
|
-
location
|
|
883
|
-
|
|
884
|
-
dockerfile=
|
|
885
|
-
location
|
|
886
|
-
|
|
895
|
+
context={
|
|
896
|
+
"location": "https://github.com/docker-library/hello-world.git",
|
|
897
|
+
},
|
|
898
|
+
dockerfile={
|
|
899
|
+
"location": "app/Dockerfile",
|
|
900
|
+
},
|
|
901
|
+
push=False)
|
|
887
902
|
```
|
|
888
903
|
### Local export
|
|
889
904
|
```python
|
|
@@ -891,14 +906,15 @@ class Image(pulumi.CustomResource):
|
|
|
891
906
|
import pulumi_docker_build as docker_build
|
|
892
907
|
|
|
893
908
|
image = docker_build.Image("image",
|
|
894
|
-
context=
|
|
895
|
-
location
|
|
896
|
-
|
|
897
|
-
exports=[
|
|
898
|
-
docker
|
|
899
|
-
tar
|
|
900
|
-
|
|
901
|
-
|
|
909
|
+
context={
|
|
910
|
+
"location": "app",
|
|
911
|
+
},
|
|
912
|
+
exports=[{
|
|
913
|
+
"docker": {
|
|
914
|
+
"tar": True,
|
|
915
|
+
},
|
|
916
|
+
}],
|
|
917
|
+
push=False)
|
|
902
918
|
```
|
|
903
919
|
|
|
904
920
|
:param str resource_name: The name of the resource.
|
|
@@ -926,17 +942,17 @@ class Image(pulumi.CustomResource):
|
|
|
926
942
|
|
|
927
943
|
Defaults to `true` as a safeguard against broken images merging as part
|
|
928
944
|
of CI pipelines.
|
|
929
|
-
:param pulumi.Input[
|
|
930
|
-
:param pulumi.Input[Sequence[pulumi.Input[
|
|
945
|
+
:param pulumi.Input[Union['BuilderConfigArgs', 'BuilderConfigArgsDict']] builder: Builder configuration.
|
|
946
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['CacheFromArgs', 'CacheFromArgsDict']]]] cache_from: Cache export configuration.
|
|
931
947
|
|
|
932
948
|
Equivalent to Docker's `--cache-from` flag.
|
|
933
|
-
:param pulumi.Input[Sequence[pulumi.Input[
|
|
949
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['CacheToArgs', 'CacheToArgsDict']]]] cache_to: Cache import configuration.
|
|
934
950
|
|
|
935
951
|
Equivalent to Docker's `--cache-to` flag.
|
|
936
|
-
:param pulumi.Input[
|
|
952
|
+
:param pulumi.Input[Union['BuildContextArgs', 'BuildContextArgsDict']] context: Build context settings. Defaults to the current directory.
|
|
937
953
|
|
|
938
954
|
Equivalent to Docker's `PATH | URL | -` positional argument.
|
|
939
|
-
:param pulumi.Input[
|
|
955
|
+
:param pulumi.Input[Union['DockerfileArgs', 'DockerfileArgsDict']] dockerfile: Dockerfile settings.
|
|
940
956
|
|
|
941
957
|
Equivalent to Docker's `--file` flag.
|
|
942
958
|
:param pulumi.Input[bool] exec_: Use `exec` mode to build this image.
|
|
@@ -959,7 +975,7 @@ class Image(pulumi.CustomResource):
|
|
|
959
975
|
to surface fine-grained errors and warnings. Additionally credentials
|
|
960
976
|
are temporarily written to disk in order to provide them to the
|
|
961
977
|
`docker-buildx` binary.
|
|
962
|
-
:param pulumi.Input[Sequence[pulumi.Input[
|
|
978
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['ExportArgs', 'ExportArgsDict']]]] exports: Controls where images are persisted after building.
|
|
963
979
|
|
|
964
980
|
Images are only stored in the local cache unless `exports` are
|
|
965
981
|
explicitly configured.
|
|
@@ -995,7 +1011,7 @@ class Image(pulumi.CustomResource):
|
|
|
995
1011
|
Defaults to `false`.
|
|
996
1012
|
|
|
997
1013
|
Equivalent to Docker's `--push` flag.
|
|
998
|
-
:param pulumi.Input[Sequence[pulumi.Input[
|
|
1014
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]] registries: Registry credentials. Required if reading or exporting to private
|
|
999
1015
|
repositories.
|
|
1000
1016
|
|
|
1001
1017
|
Credentials are kept in-memory and do not pollute pre-existing
|
|
@@ -1011,7 +1027,7 @@ class Image(pulumi.CustomResource):
|
|
|
1011
1027
|
image, so you should use this for sensitive values.
|
|
1012
1028
|
|
|
1013
1029
|
Similar to Docker's `--secret` flag.
|
|
1014
|
-
:param pulumi.Input[Sequence[pulumi.Input[
|
|
1030
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['SSHArgs', 'SSHArgsDict']]]] ssh: SSH agent socket or keys to expose to the build.
|
|
1015
1031
|
|
|
1016
1032
|
Equivalent to Docker's `--ssh` flag.
|
|
1017
1033
|
:param pulumi.Input[Sequence[pulumi.Input[str]]] tags: Name and optionally a tag (format: `name:tag`).
|
|
@@ -1030,7 +1046,7 @@ class Image(pulumi.CustomResource):
|
|
|
1030
1046
|
@overload
|
|
1031
1047
|
def __init__(__self__,
|
|
1032
1048
|
resource_name: str,
|
|
1033
|
-
args:
|
|
1049
|
+
args: ImageArgs,
|
|
1034
1050
|
opts: Optional[pulumi.ResourceOptions] = None):
|
|
1035
1051
|
"""
|
|
1036
1052
|
A Docker image built using buildx -- Docker's interface to the improved
|
|
@@ -1145,27 +1161,27 @@ class Image(pulumi.CustomResource):
|
|
|
1145
1161
|
ecr_repository = aws.ecr.Repository("ecr-repository")
|
|
1146
1162
|
auth_token = aws.ecr.get_authorization_token_output(registry_id=ecr_repository.registry_id)
|
|
1147
1163
|
my_image = docker_build.Image("my-image",
|
|
1148
|
-
cache_from=[
|
|
1149
|
-
registry
|
|
1150
|
-
ref
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
cache_to=[
|
|
1154
|
-
registry
|
|
1155
|
-
image_manifest
|
|
1156
|
-
oci_media_types
|
|
1157
|
-
ref
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
context=
|
|
1161
|
-
location
|
|
1162
|
-
|
|
1164
|
+
cache_from=[{
|
|
1165
|
+
"registry": {
|
|
1166
|
+
"ref": ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
|
|
1167
|
+
},
|
|
1168
|
+
}],
|
|
1169
|
+
cache_to=[{
|
|
1170
|
+
"registry": {
|
|
1171
|
+
"image_manifest": True,
|
|
1172
|
+
"oci_media_types": True,
|
|
1173
|
+
"ref": ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
|
|
1174
|
+
},
|
|
1175
|
+
}],
|
|
1176
|
+
context={
|
|
1177
|
+
"location": "./app",
|
|
1178
|
+
},
|
|
1163
1179
|
push=True,
|
|
1164
|
-
registries=[
|
|
1165
|
-
address
|
|
1166
|
-
password
|
|
1167
|
-
username
|
|
1168
|
-
|
|
1180
|
+
registries=[{
|
|
1181
|
+
"address": ecr_repository.repository_url,
|
|
1182
|
+
"password": auth_token.password,
|
|
1183
|
+
"username": auth_token.user_name,
|
|
1184
|
+
}],
|
|
1169
1185
|
tags=[ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:latest")])
|
|
1170
1186
|
pulumi.export("ref", my_image.ref)
|
|
1171
1187
|
```
|
|
@@ -1175,13 +1191,14 @@ class Image(pulumi.CustomResource):
|
|
|
1175
1191
|
import pulumi_docker_build as docker_build
|
|
1176
1192
|
|
|
1177
1193
|
image = docker_build.Image("image",
|
|
1178
|
-
context=
|
|
1179
|
-
location
|
|
1180
|
-
|
|
1194
|
+
context={
|
|
1195
|
+
"location": "app",
|
|
1196
|
+
},
|
|
1181
1197
|
platforms=[
|
|
1182
1198
|
docker_build.Platform.PLAN9_AMD64,
|
|
1183
1199
|
docker_build.Platform.PLAN9_386,
|
|
1184
|
-
]
|
|
1200
|
+
],
|
|
1201
|
+
push=False)
|
|
1185
1202
|
```
|
|
1186
1203
|
### Registry export
|
|
1187
1204
|
```python
|
|
@@ -1189,15 +1206,15 @@ class Image(pulumi.CustomResource):
|
|
|
1189
1206
|
import pulumi_docker_build as docker_build
|
|
1190
1207
|
|
|
1191
1208
|
image = docker_build.Image("image",
|
|
1192
|
-
context=
|
|
1193
|
-
location
|
|
1194
|
-
|
|
1209
|
+
context={
|
|
1210
|
+
"location": "app",
|
|
1211
|
+
},
|
|
1195
1212
|
push=True,
|
|
1196
|
-
registries=[
|
|
1197
|
-
address
|
|
1198
|
-
password
|
|
1199
|
-
username
|
|
1200
|
-
|
|
1213
|
+
registries=[{
|
|
1214
|
+
"address": "docker.io",
|
|
1215
|
+
"password": docker_hub_password,
|
|
1216
|
+
"username": "pulumibot",
|
|
1217
|
+
}],
|
|
1201
1218
|
tags=["docker.io/pulumi/pulumi:3.107.0"])
|
|
1202
1219
|
pulumi.export("ref", my_image["ref"])
|
|
1203
1220
|
```
|
|
@@ -1207,20 +1224,21 @@ class Image(pulumi.CustomResource):
|
|
|
1207
1224
|
import pulumi_docker_build as docker_build
|
|
1208
1225
|
|
|
1209
1226
|
image = docker_build.Image("image",
|
|
1210
|
-
cache_from=[
|
|
1211
|
-
local
|
|
1212
|
-
src
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
cache_to=[
|
|
1216
|
-
local
|
|
1217
|
-
dest
|
|
1218
|
-
mode
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
context=
|
|
1222
|
-
location
|
|
1223
|
-
|
|
1227
|
+
cache_from=[{
|
|
1228
|
+
"local": {
|
|
1229
|
+
"src": "tmp/cache",
|
|
1230
|
+
},
|
|
1231
|
+
}],
|
|
1232
|
+
cache_to=[{
|
|
1233
|
+
"local": {
|
|
1234
|
+
"dest": "tmp/cache",
|
|
1235
|
+
"mode": docker_build.CacheMode.MAX,
|
|
1236
|
+
},
|
|
1237
|
+
}],
|
|
1238
|
+
context={
|
|
1239
|
+
"location": "app",
|
|
1240
|
+
},
|
|
1241
|
+
push=False)
|
|
1224
1242
|
```
|
|
1225
1243
|
### Docker Build Cloud
|
|
1226
1244
|
```python
|
|
@@ -1228,13 +1246,14 @@ class Image(pulumi.CustomResource):
|
|
|
1228
1246
|
import pulumi_docker_build as docker_build
|
|
1229
1247
|
|
|
1230
1248
|
image = docker_build.Image("image",
|
|
1231
|
-
builder=
|
|
1232
|
-
name
|
|
1233
|
-
|
|
1234
|
-
context=
|
|
1235
|
-
location
|
|
1236
|
-
|
|
1237
|
-
exec_=True
|
|
1249
|
+
builder={
|
|
1250
|
+
"name": "cloud-builder-name",
|
|
1251
|
+
},
|
|
1252
|
+
context={
|
|
1253
|
+
"location": "app",
|
|
1254
|
+
},
|
|
1255
|
+
exec_=True,
|
|
1256
|
+
push=False)
|
|
1238
1257
|
```
|
|
1239
1258
|
### Build arguments
|
|
1240
1259
|
```python
|
|
@@ -1245,9 +1264,10 @@ class Image(pulumi.CustomResource):
|
|
|
1245
1264
|
build_args={
|
|
1246
1265
|
"SET_ME_TO_TRUE": "true",
|
|
1247
1266
|
},
|
|
1248
|
-
context=
|
|
1249
|
-
location
|
|
1250
|
-
|
|
1267
|
+
context={
|
|
1268
|
+
"location": "app",
|
|
1269
|
+
},
|
|
1270
|
+
push=False)
|
|
1251
1271
|
```
|
|
1252
1272
|
### Build target
|
|
1253
1273
|
```python
|
|
@@ -1255,9 +1275,10 @@ class Image(pulumi.CustomResource):
|
|
|
1255
1275
|
import pulumi_docker_build as docker_build
|
|
1256
1276
|
|
|
1257
1277
|
image = docker_build.Image("image",
|
|
1258
|
-
context=
|
|
1259
|
-
location
|
|
1260
|
-
|
|
1278
|
+
context={
|
|
1279
|
+
"location": "app",
|
|
1280
|
+
},
|
|
1281
|
+
push=False,
|
|
1261
1282
|
target="build-me")
|
|
1262
1283
|
```
|
|
1263
1284
|
### Named contexts
|
|
@@ -1265,23 +1286,27 @@ class Image(pulumi.CustomResource):
|
|
|
1265
1286
|
import pulumi
|
|
1266
1287
|
import pulumi_docker_build as docker_build
|
|
1267
1288
|
|
|
1268
|
-
image = docker_build.Image("image",
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
"
|
|
1272
|
-
|
|
1273
|
-
|
|
1289
|
+
image = docker_build.Image("image",
|
|
1290
|
+
context={
|
|
1291
|
+
"location": "app",
|
|
1292
|
+
"named": {
|
|
1293
|
+
"golang:latest": {
|
|
1294
|
+
"location": "docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
|
|
1295
|
+
},
|
|
1296
|
+
},
|
|
1274
1297
|
},
|
|
1275
|
-
|
|
1298
|
+
push=False)
|
|
1276
1299
|
```
|
|
1277
1300
|
### Remote context
|
|
1278
1301
|
```python
|
|
1279
1302
|
import pulumi
|
|
1280
1303
|
import pulumi_docker_build as docker_build
|
|
1281
1304
|
|
|
1282
|
-
image = docker_build.Image("image",
|
|
1283
|
-
|
|
1284
|
-
|
|
1305
|
+
image = docker_build.Image("image",
|
|
1306
|
+
context={
|
|
1307
|
+
"location": "https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
|
|
1308
|
+
},
|
|
1309
|
+
push=False)
|
|
1285
1310
|
```
|
|
1286
1311
|
### Inline Dockerfile
|
|
1287
1312
|
```python
|
|
@@ -1289,14 +1314,15 @@ class Image(pulumi.CustomResource):
|
|
|
1289
1314
|
import pulumi_docker_build as docker_build
|
|
1290
1315
|
|
|
1291
1316
|
image = docker_build.Image("image",
|
|
1292
|
-
context=
|
|
1293
|
-
location
|
|
1294
|
-
|
|
1295
|
-
dockerfile=
|
|
1296
|
-
inline
|
|
1317
|
+
context={
|
|
1318
|
+
"location": "app",
|
|
1319
|
+
},
|
|
1320
|
+
dockerfile={
|
|
1321
|
+
"inline": \"\"\"FROM busybox
|
|
1297
1322
|
COPY hello.c ./
|
|
1298
1323
|
\"\"\",
|
|
1299
|
-
|
|
1324
|
+
},
|
|
1325
|
+
push=False)
|
|
1300
1326
|
```
|
|
1301
1327
|
### Remote context
|
|
1302
1328
|
```python
|
|
@@ -1304,12 +1330,13 @@ class Image(pulumi.CustomResource):
|
|
|
1304
1330
|
import pulumi_docker_build as docker_build
|
|
1305
1331
|
|
|
1306
1332
|
image = docker_build.Image("image",
|
|
1307
|
-
context=
|
|
1308
|
-
location
|
|
1309
|
-
|
|
1310
|
-
dockerfile=
|
|
1311
|
-
location
|
|
1312
|
-
|
|
1333
|
+
context={
|
|
1334
|
+
"location": "https://github.com/docker-library/hello-world.git",
|
|
1335
|
+
},
|
|
1336
|
+
dockerfile={
|
|
1337
|
+
"location": "app/Dockerfile",
|
|
1338
|
+
},
|
|
1339
|
+
push=False)
|
|
1313
1340
|
```
|
|
1314
1341
|
### Local export
|
|
1315
1342
|
```python
|
|
@@ -1317,14 +1344,15 @@ class Image(pulumi.CustomResource):
|
|
|
1317
1344
|
import pulumi_docker_build as docker_build
|
|
1318
1345
|
|
|
1319
1346
|
image = docker_build.Image("image",
|
|
1320
|
-
context=
|
|
1321
|
-
location
|
|
1322
|
-
|
|
1323
|
-
exports=[
|
|
1324
|
-
docker
|
|
1325
|
-
tar
|
|
1326
|
-
|
|
1327
|
-
|
|
1347
|
+
context={
|
|
1348
|
+
"location": "app",
|
|
1349
|
+
},
|
|
1350
|
+
exports=[{
|
|
1351
|
+
"docker": {
|
|
1352
|
+
"tar": True,
|
|
1353
|
+
},
|
|
1354
|
+
}],
|
|
1355
|
+
push=False)
|
|
1328
1356
|
```
|
|
1329
1357
|
|
|
1330
1358
|
:param str resource_name: The name of the resource.
|
|
@@ -1345,13 +1373,13 @@ class Image(pulumi.CustomResource):
|
|
|
1345
1373
|
add_hosts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
1346
1374
|
build_args: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
1347
1375
|
build_on_preview: Optional[pulumi.Input[bool]] = None,
|
|
1348
|
-
builder: Optional[pulumi.Input[
|
|
1349
|
-
cache_from: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
1350
|
-
cache_to: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
1351
|
-
context: Optional[pulumi.Input[
|
|
1352
|
-
dockerfile: Optional[pulumi.Input[
|
|
1376
|
+
builder: Optional[pulumi.Input[Union['BuilderConfigArgs', 'BuilderConfigArgsDict']]] = None,
|
|
1377
|
+
cache_from: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CacheFromArgs', 'CacheFromArgsDict']]]]] = None,
|
|
1378
|
+
cache_to: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CacheToArgs', 'CacheToArgsDict']]]]] = None,
|
|
1379
|
+
context: Optional[pulumi.Input[Union['BuildContextArgs', 'BuildContextArgsDict']]] = None,
|
|
1380
|
+
dockerfile: Optional[pulumi.Input[Union['DockerfileArgs', 'DockerfileArgsDict']]] = None,
|
|
1353
1381
|
exec_: Optional[pulumi.Input[bool]] = None,
|
|
1354
|
-
exports: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
1382
|
+
exports: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ExportArgs', 'ExportArgsDict']]]]] = None,
|
|
1355
1383
|
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
1356
1384
|
load: Optional[pulumi.Input[bool]] = None,
|
|
1357
1385
|
network: Optional[pulumi.Input['NetworkMode']] = None,
|
|
@@ -1359,9 +1387,9 @@ class Image(pulumi.CustomResource):
|
|
|
1359
1387
|
platforms: Optional[pulumi.Input[Sequence[pulumi.Input['Platform']]]] = None,
|
|
1360
1388
|
pull: Optional[pulumi.Input[bool]] = None,
|
|
1361
1389
|
push: Optional[pulumi.Input[bool]] = None,
|
|
1362
|
-
registries: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
1390
|
+
registries: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RegistryArgs', 'RegistryArgsDict']]]]] = None,
|
|
1363
1391
|
secrets: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
|
1364
|
-
ssh: Optional[pulumi.Input[Sequence[pulumi.Input[
|
|
1392
|
+
ssh: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SSHArgs', 'SSHArgsDict']]]]] = None,
|
|
1365
1393
|
tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
1366
1394
|
target: Optional[pulumi.Input[str]] = None,
|
|
1367
1395
|
__props__=None):
|
|
@@ -1393,6 +1421,8 @@ class Image(pulumi.CustomResource):
|
|
|
1393
1421
|
__props__.__dict__["no_cache"] = no_cache
|
|
1394
1422
|
__props__.__dict__["platforms"] = platforms
|
|
1395
1423
|
__props__.__dict__["pull"] = pull
|
|
1424
|
+
if push is None and not opts.urn:
|
|
1425
|
+
raise TypeError("Missing required property 'push'")
|
|
1396
1426
|
__props__.__dict__["push"] = push
|
|
1397
1427
|
__props__.__dict__["registries"] = registries
|
|
1398
1428
|
__props__.__dict__["secrets"] = secrets
|
|
@@ -1527,7 +1557,7 @@ class Image(pulumi.CustomResource):
|
|
|
1527
1557
|
@pulumi.getter
|
|
1528
1558
|
def context(self) -> pulumi.Output[Optional['outputs.BuildContext']]:
|
|
1529
1559
|
"""
|
|
1530
|
-
Build context settings.
|
|
1560
|
+
Build context settings. Defaults to the current directory.
|
|
1531
1561
|
|
|
1532
1562
|
Equivalent to Docker's `PATH | URL | -` positional argument.
|
|
1533
1563
|
"""
|
|
@@ -1676,7 +1706,7 @@ class Image(pulumi.CustomResource):
|
|
|
1676
1706
|
|
|
1677
1707
|
@property
|
|
1678
1708
|
@pulumi.getter
|
|
1679
|
-
def push(self) -> pulumi.Output[
|
|
1709
|
+
def push(self) -> pulumi.Output[bool]:
|
|
1680
1710
|
"""
|
|
1681
1711
|
When `true` the build will automatically include a `registry` export.
|
|
1682
1712
|
|