mirror of
https://github.com/kreuzwerker/terraform-provider-docker.git
synced 2026-02-18 10:07:57 -05:00
feat: support to import an image with image name
This commit is contained in:
parent
c50524b321
commit
a975668ff4
3 changed files with 19 additions and 4 deletions
|
|
@ -1,6 +1,8 @@
|
|||
package provider
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
|
||||
)
|
||||
|
||||
|
|
@ -10,6 +12,12 @@ func resourceDockerImage() *schema.Resource {
|
|||
ReadContext: resourceDockerImageRead,
|
||||
UpdateContext: resourceDockerImageUpdate,
|
||||
DeleteContext: resourceDockerImageDelete,
|
||||
Importer: &schema.ResourceImporter{
|
||||
StateContext: func(_ context.Context, d *schema.ResourceData, m interface{}) ([]*schema.ResourceData, error) {
|
||||
d.Set("name", d.Id())
|
||||
return []*schema.ResourceData{d}, nil
|
||||
},
|
||||
},
|
||||
|
||||
Schema: map[string]*schema.Schema{
|
||||
"name": {
|
||||
|
|
|
|||
|
|
@ -67,12 +67,11 @@ func resourceDockerImageCreate(ctx context.Context, d *schema.ResourceData, meta
|
|||
}
|
||||
}
|
||||
}
|
||||
apiImage, err := findImage(ctx, imageName, client, meta.(*ProviderConfig).AuthConfigs)
|
||||
if err != nil {
|
||||
if _, err := findImage(ctx, imageName, client, meta.(*ProviderConfig).AuthConfigs); err != nil {
|
||||
return diag.Errorf("Unable to read Docker image into resource: %s", err)
|
||||
}
|
||||
|
||||
d.SetId(apiImage.ID + d.Get("name").(string))
|
||||
d.SetId(imageName)
|
||||
return resourceDockerImageRead(ctx, d, meta)
|
||||
}
|
||||
|
||||
|
|
@ -94,7 +93,7 @@ func resourceDockerImageRead(ctx context.Context, d *schema.ResourceData, meta i
|
|||
return nil
|
||||
}
|
||||
|
||||
d.SetId(foundImage.ID + d.Get("name").(string))
|
||||
d.SetId(imageName)
|
||||
d.Set("latest", foundImage.ID)
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,3 +98,11 @@ The `build` block supports:
|
|||
The following attributes are exported in addition to the above configuration:
|
||||
|
||||
* `latest` (string) - The ID of the image.
|
||||
|
||||
## Import
|
||||
|
||||
Docker images can be imported using image name, e.g. for an image named `alpine:3.13.0`:
|
||||
|
||||
```sh
|
||||
$ terraform import docker_image.alpine alpine:3.13.0
|
||||
```
|
||||
|
|
|
|||
Loading…
Reference in a new issue