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.

@@ -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[pulumi.InputType['BuilderConfigArgs']]] = None,
590
- cache_from: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CacheFromArgs']]]]] = None,
591
- cache_to: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CacheToArgs']]]]] = None,
592
- context: Optional[pulumi.Input[pulumi.InputType['BuildContextArgs']]] = None,
593
- dockerfile: Optional[pulumi.Input[pulumi.InputType['DockerfileArgs']]] = None,
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[pulumi.InputType['ExportArgs']]]]] = None,
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[pulumi.InputType['RegistryArgs']]]]] = None,
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[pulumi.InputType['SSHArgs']]]]] = None,
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=[docker_build.CacheFromArgs(
723
- registry=docker_build.CacheFromRegistryArgs(
724
- ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
725
- ),
726
- )],
727
- cache_to=[docker_build.CacheToArgs(
728
- registry=docker_build.CacheToRegistryArgs(
729
- image_manifest=True,
730
- oci_media_types=True,
731
- ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
732
- ),
733
- )],
734
- context=docker_build.BuildContextArgs(
735
- location="./app",
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=[docker_build.RegistryArgs(
739
- address=ecr_repository.repository_url,
740
- password=auth_token.password,
741
- username=auth_token.user_name,
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=docker_build.BuildContextArgs(
753
- location="app",
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=docker_build.BuildContextArgs(
767
- location="app",
768
- ),
771
+ context={
772
+ "location": "app",
773
+ },
769
774
  push=True,
770
- registries=[docker_build.RegistryArgs(
771
- address="docker.io",
772
- password=docker_hub_password,
773
- username="pulumibot",
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=[docker_build.CacheFromArgs(
785
- local=docker_build.CacheFromLocalArgs(
786
- src="tmp/cache",
787
- ),
788
- )],
789
- cache_to=[docker_build.CacheToArgs(
790
- local=docker_build.CacheToLocalArgs(
791
- dest="tmp/cache",
792
- mode=docker_build.CacheMode.MAX,
793
- ),
794
- )],
795
- context=docker_build.BuildContextArgs(
796
- location="app",
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=docker_build.BuilderConfigArgs(
806
- name="cloud-builder-name",
807
- ),
808
- context=docker_build.BuildContextArgs(
809
- location="app",
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=docker_build.BuildContextArgs(
823
- location="app",
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=docker_build.BuildContextArgs(
833
- location="app",
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", context=docker_build.BuildContextArgs(
843
- location="app",
844
- named={
845
- "golang:latest": docker_build.ContextArgs(
846
- location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
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", context=docker_build.BuildContextArgs(
857
- location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
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=docker_build.BuildContextArgs(
867
- location="app",
868
- ),
869
- dockerfile=docker_build.DockerfileArgs(
870
- inline=\"\"\"FROM busybox
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=docker_build.BuildContextArgs(
882
- location="https://github.com/docker-library/hello-world.git",
883
- ),
884
- dockerfile=docker_build.DockerfileArgs(
885
- location="app/Dockerfile",
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=docker_build.BuildContextArgs(
895
- location="app",
896
- ),
897
- exports=[docker_build.ExportArgs(
898
- docker=docker_build.ExportDockerArgs(
899
- tar=True,
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[pulumi.InputType['BuilderConfigArgs']] builder: Builder configuration.
930
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CacheFromArgs']]]] cache_from: Cache export configuration.
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[pulumi.InputType['CacheToArgs']]]] cache_to: Cache import configuration.
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[pulumi.InputType['BuildContextArgs']] context: Build context settings.
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[pulumi.InputType['DockerfileArgs']] dockerfile: Dockerfile settings.
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[pulumi.InputType['ExportArgs']]]] exports: Controls where images are persisted after building.
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[pulumi.InputType['RegistryArgs']]]] registries: Registry credentials. Required if reading or exporting to private
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[pulumi.InputType['SSHArgs']]]] ssh: SSH agent socket or keys to expose to the build.
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: Optional[ImageArgs] = None,
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=[docker_build.CacheFromArgs(
1149
- registry=docker_build.CacheFromRegistryArgs(
1150
- ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
1151
- ),
1152
- )],
1153
- cache_to=[docker_build.CacheToArgs(
1154
- registry=docker_build.CacheToRegistryArgs(
1155
- image_manifest=True,
1156
- oci_media_types=True,
1157
- ref=ecr_repository.repository_url.apply(lambda repository_url: f"{repository_url}:cache"),
1158
- ),
1159
- )],
1160
- context=docker_build.BuildContextArgs(
1161
- location="./app",
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=[docker_build.RegistryArgs(
1165
- address=ecr_repository.repository_url,
1166
- password=auth_token.password,
1167
- username=auth_token.user_name,
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=docker_build.BuildContextArgs(
1179
- location="app",
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=docker_build.BuildContextArgs(
1193
- location="app",
1194
- ),
1209
+ context={
1210
+ "location": "app",
1211
+ },
1195
1212
  push=True,
1196
- registries=[docker_build.RegistryArgs(
1197
- address="docker.io",
1198
- password=docker_hub_password,
1199
- username="pulumibot",
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=[docker_build.CacheFromArgs(
1211
- local=docker_build.CacheFromLocalArgs(
1212
- src="tmp/cache",
1213
- ),
1214
- )],
1215
- cache_to=[docker_build.CacheToArgs(
1216
- local=docker_build.CacheToLocalArgs(
1217
- dest="tmp/cache",
1218
- mode=docker_build.CacheMode.MAX,
1219
- ),
1220
- )],
1221
- context=docker_build.BuildContextArgs(
1222
- location="app",
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=docker_build.BuilderConfigArgs(
1232
- name="cloud-builder-name",
1233
- ),
1234
- context=docker_build.BuildContextArgs(
1235
- location="app",
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=docker_build.BuildContextArgs(
1249
- location="app",
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=docker_build.BuildContextArgs(
1259
- location="app",
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", context=docker_build.BuildContextArgs(
1269
- location="app",
1270
- named={
1271
- "golang:latest": docker_build.ContextArgs(
1272
- location="docker-image://golang@sha256:b8e62cf593cdaff36efd90aa3a37de268e6781a2e68c6610940c48f7cdf36984",
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", context=docker_build.BuildContextArgs(
1283
- location="https://raw.githubusercontent.com/pulumi/pulumi-docker/api-types/provider/testdata/Dockerfile",
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=docker_build.BuildContextArgs(
1293
- location="app",
1294
- ),
1295
- dockerfile=docker_build.DockerfileArgs(
1296
- inline=\"\"\"FROM busybox
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=docker_build.BuildContextArgs(
1308
- location="https://github.com/docker-library/hello-world.git",
1309
- ),
1310
- dockerfile=docker_build.DockerfileArgs(
1311
- location="app/Dockerfile",
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=docker_build.BuildContextArgs(
1321
- location="app",
1322
- ),
1323
- exports=[docker_build.ExportArgs(
1324
- docker=docker_build.ExportDockerArgs(
1325
- tar=True,
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[pulumi.InputType['BuilderConfigArgs']]] = None,
1349
- cache_from: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CacheFromArgs']]]]] = None,
1350
- cache_to: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CacheToArgs']]]]] = None,
1351
- context: Optional[pulumi.Input[pulumi.InputType['BuildContextArgs']]] = None,
1352
- dockerfile: Optional[pulumi.Input[pulumi.InputType['DockerfileArgs']]] = None,
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[pulumi.InputType['ExportArgs']]]]] = None,
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[pulumi.InputType['RegistryArgs']]]]] = None,
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[pulumi.InputType['SSHArgs']]]]] = None,
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[Optional[bool]]:
1709
+ def push(self) -> pulumi.Output[bool]:
1680
1710
  """
1681
1711
  When `true` the build will automatically include a `registry` export.
1682
1712