2021-03-18 03:30:54 -04:00
package provider
2015-02-17 11:28:33 -05:00
import (
2021-03-18 03:30:54 -04:00
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
2015-02-17 11:28:33 -05:00
)
func resourceDockerImage ( ) * schema . Resource {
return & schema . Resource {
2021-05-21 08:30:56 -04:00
Description : "Pulls a Docker image to a given Docker host from a Docker Registry.\n This resource will *not* pull new layers of the image automatically unless used in conjunction with [docker_registry_image](registry_image.md) data source to update the `pull_triggers` field." ,
2021-03-18 03:30:54 -04:00
CreateContext : resourceDockerImageCreate ,
ReadContext : resourceDockerImageRead ,
UpdateContext : resourceDockerImageUpdate ,
DeleteContext : resourceDockerImageDelete ,
2015-02-17 11:28:33 -05:00
Schema : map [ string ] * schema . Schema {
2019-03-01 16:02:17 -05:00
"name" : {
2021-05-21 08:30:56 -04:00
Type : schema . TypeString ,
Description : "The name of the Docker image, including any tags or SHA256 repo digests." ,
Required : true ,
2015-02-17 11:28:33 -05:00
} ,
2019-03-01 16:02:17 -05:00
"latest" : {
2021-05-21 08:30:56 -04:00
Type : schema . TypeString ,
Description : "The ID of the image." ,
Computed : true ,
2015-02-17 11:28:33 -05:00
} ,
2016-04-27 12:18:02 -04:00
2019-03-01 16:02:17 -05:00
"keep_locally" : {
2021-05-21 08:30:56 -04:00
Type : schema . TypeBool ,
Description : "If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker local storage on destroy operation." ,
Optional : true ,
2016-04-27 12:18:02 -04:00
} ,
2016-07-26 11:18:38 -04:00
2019-03-01 16:02:17 -05:00
"pull_trigger" : {
2017-01-03 11:10:39 -05:00
Type : schema . TypeString ,
2021-05-21 08:30:56 -04:00
Description : "A value which cause an image pull when changed" ,
2017-01-03 11:10:39 -05:00
Optional : true ,
ForceNew : true ,
ConflictsWith : [ ] string { "pull_triggers" } ,
Deprecated : "Use field pull_triggers instead" ,
} ,
2019-03-01 16:02:17 -05:00
"pull_triggers" : {
2021-05-21 08:30:56 -04:00
Type : schema . TypeSet ,
Description : "List of values which cause an image pull when changed. This is used to store the image digest from the registry when using the [docker_registry_image](../data-sources/registry_image.md)." ,
Optional : true ,
ForceNew : true ,
Elem : & schema . Schema { Type : schema . TypeString } ,
Set : schema . HashString ,
2016-07-26 11:18:38 -04:00
} ,
2020-10-07 14:06:13 -04:00
"output" : {
2021-05-21 08:30:56 -04:00
Type : schema . TypeString ,
Deprecated : "Is unused and will be removed." ,
Computed : true ,
2020-10-07 14:06:13 -04:00
Elem : & schema . Schema {
2021-05-21 08:30:56 -04:00
Type : schema . TypeString ,
Deprecated : "Is unused and will be removed." ,
2020-10-07 14:06:13 -04:00
} ,
} ,
2020-12-29 02:03:40 -05:00
"force_remove" : {
Type : schema . TypeBool ,
2021-05-21 08:30:56 -04:00
Description : "If true, then the image is removed forcibly when the resource is destroyed." ,
2020-12-29 02:03:40 -05:00
Optional : true ,
} ,
2020-10-07 14:06:13 -04:00
"build" : {
Type : schema . TypeSet ,
2021-05-21 08:30:56 -04:00
Description : "Configuration to build an image. Please see [docker build command reference](https://docs.docker.com/engine/reference/commandline/build/#options) too." ,
2020-10-07 14:06:13 -04:00
Optional : true ,
MaxItems : 1 ,
ConflictsWith : [ ] string { "pull_triggers" , "pull_trigger" } ,
Elem : & schema . Resource {
Schema : map [ string ] * schema . Schema {
"path" : {
Type : schema . TypeString ,
Description : "Context path" ,
Required : true ,
ForceNew : true ,
} ,
"dockerfile" : {
Type : schema . TypeString ,
2021-05-21 08:30:56 -04:00
Description : "Name of the Dockerfile. Defaults to `Dockerfile`." ,
2020-10-07 14:06:13 -04:00
Optional : true ,
Default : "Dockerfile" ,
ForceNew : true ,
} ,
"tag" : {
Type : schema . TypeList ,
Description : "Name and optionally a tag in the 'name:tag' format" ,
Optional : true ,
Elem : & schema . Schema {
Type : schema . TypeString ,
} ,
} ,
"force_remove" : {
Type : schema . TypeBool ,
Description : "Always remove intermediate containers" ,
Optional : true ,
} ,
"remove" : {
Type : schema . TypeBool ,
2021-05-21 08:30:56 -04:00
Description : "Remove intermediate containers after a successful build. Defaults to `true`." ,
2020-10-07 14:06:13 -04:00
Default : true ,
Optional : true ,
} ,
"no_cache" : {
Type : schema . TypeBool ,
Description : "Do not use cache when building the image" ,
Optional : true ,
} ,
"target" : {
Type : schema . TypeString ,
Description : "Set the target build stage to build" ,
Optional : true ,
} ,
"build_arg" : {
Type : schema . TypeMap ,
Description : "Set build-time variables" ,
Optional : true ,
Elem : & schema . Schema {
Type : schema . TypeString ,
} ,
ForceNew : true ,
} ,
"label" : {
Type : schema . TypeMap ,
Description : "Set metadata for an image" ,
Optional : true ,
Elem : & schema . Schema {
Type : schema . TypeString ,
} ,
} ,
} ,
} ,
} ,
2015-02-17 11:28:33 -05:00
} ,
}
}