2020-12-24 10:27:42 -05:00
|
|
|
# Terraform Provider
|
2017-06-05 16:59:08 -04:00
|
|
|
|
|
|
|
|
- Website: https://www.terraform.io
|
2020-12-25 04:20:14 -05:00
|
|
|
- Provider: [kreuzwerker/docker](https://registry.terraform.io/providers/kreuzwerker/docker/latest)
|
|
|
|
|
- Slack: [@gophers/terraform-provider-docker](https://gophers.slack.com/archives/C01G9TN5V36)
|
2017-06-05 16:59:08 -04:00
|
|
|
|
|
|
|
|
|
2020-12-24 10:27:42 -05:00
|
|
|
## Requirements
|
2020-10-13 05:23:18 -04:00
|
|
|
- [Terraform](https://www.terraform.io/downloads.html) 0.12.x
|
|
|
|
|
- [Go](https://golang.org/doc/install) 1.15.x (to build the provider plugin)
|
2017-06-05 16:59:08 -04:00
|
|
|
|
2020-12-24 10:27:42 -05:00
|
|
|
## Building The Provider
|
2017-06-05 16:59:08 -04:00
|
|
|
|
|
|
|
|
```sh
|
2018-05-02 13:33:52 -04:00
|
|
|
$ git clone git@github.com:terraform-providers/terraform-provider-docker
|
2017-11-21 04:14:07 -05:00
|
|
|
$ make build
|
2017-06-05 16:59:08 -04:00
|
|
|
```
|
2017-11-21 04:14:07 -05:00
|
|
|
|
2020-12-24 10:27:42 -05:00
|
|
|
## Example usage
|
2017-11-21 04:14:07 -05:00
|
|
|
```hcl
|
2020-12-24 10:27:42 -05:00
|
|
|
# Set the required provider and versions
|
|
|
|
|
terraform {
|
|
|
|
|
required_providers {
|
2020-12-26 08:44:09 -05:00
|
|
|
# We recommend pinning to the specific version of the Docker Provider you're using
|
2020-12-24 10:27:42 -05:00
|
|
|
# since new versions are released frequently
|
|
|
|
|
docker = {
|
|
|
|
|
source = "kreuzwerker/docker"
|
|
|
|
|
version = "2.8.0"
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-11-21 04:14:07 -05:00
|
|
|
}
|
|
|
|
|
|
2020-12-24 10:27:42 -05:00
|
|
|
# Configure the docker provider
|
|
|
|
|
provider "docker" {
|
|
|
|
|
}
|
2018-09-28 10:18:48 -04:00
|
|
|
|
2020-12-24 10:27:42 -05:00
|
|
|
# Create a docker image resource
|
|
|
|
|
# -> docker pull nginx:latest
|
|
|
|
|
resource "docker_image" "foo" {
|
|
|
|
|
name = "c"
|
|
|
|
|
keep_locally = true
|
|
|
|
|
}
|
2018-09-28 10:18:48 -04:00
|
|
|
|
2020-12-24 10:27:42 -05:00
|
|
|
# Create a docker container resource
|
|
|
|
|
# -> docker run --name foo -d nginx:latest
|
|
|
|
|
resource "docker_container" "foo" {
|
|
|
|
|
name = "foo"
|
|
|
|
|
image = docker_image.foo.latest
|
|
|
|
|
}
|
|
|
|
|
```
|