All Projects → kreuzwerker → terraform-provider-docker

kreuzwerker / terraform-provider-docker

Licence: MPL-2.0 License
Terraform Docker provider

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to terraform-provider-docker

terraform-provider-databricks
Terraform Databricks provider
Stars: ✭ 16 (-88.49%)
Mutual labels:  terraform-provider
terraform-provider-mongodbatlas
Terraform MongoDB Atlas Provider: Deploy, update, and manage MongoDB Atlas configurations as code through HashiCorp Terraform
Stars: ✭ 125 (-10.07%)
Mutual labels:  terraform-provider
terraform-provider-ionoscloud
The IonosCloud Terraform provider gives the ability to deploy and configure resources using the IonosCloud APIs.
Stars: ✭ 14 (-89.93%)
Mutual labels:  terraform-provider
go-namecheap-sdk
Go library for Namecheap API
Stars: ✭ 25 (-82.01%)
Mutual labels:  terraform-provider
terraform-provider-kudo
Terraform provider for KUDO
Stars: ✭ 11 (-92.09%)
Mutual labels:  terraform-provider
terraform-provider-lastpass
Terraform Lastpass provider
Stars: ✭ 55 (-60.43%)
Mutual labels:  terraform-provider
terraform-provider-spinnaker
Terraform Provider to manage spinnaker pipelines
Stars: ✭ 36 (-74.1%)
Mutual labels:  terraform-provider
terraform-provider-bigip
Terraform resources that can configure F5 BIG-IP products
Stars: ✭ 74 (-46.76%)
Mutual labels:  terraform-provider
terraform-provider-archive
Terraform archive provider
Stars: ✭ 54 (-61.15%)
Mutual labels:  terraform-provider
terraform-provider-random
Supports the use of randomness within Terraform configurations. This is a logical provider, which means that it works entirely within Terraform logic, and does not interact with any other services. This provider is maintained by the HashiCorp Terraform team.
Stars: ✭ 109 (-21.58%)
Mutual labels:  terraform-provider
terraform-provider-sakuracloud
Terraform provider for SakuraCloud
Stars: ✭ 46 (-66.91%)
Mutual labels:  terraform-provider
terrajet
Generate Crossplane Providers from any Terraform Provider
Stars: ✭ 159 (+14.39%)
Mutual labels:  terraform-provider
terraform-provider-aviatrix
Terraform Aviatrix provider
Stars: ✭ 25 (-82.01%)
Mutual labels:  terraform-provider
terraform-provider-selectel
Terraform Selectel provider
Stars: ✭ 15 (-89.21%)
Mutual labels:  terraform-provider
terraform-provider-nutanix
Terraform Nutanix Provider
Stars: ✭ 53 (-61.87%)
Mutual labels:  terraform-provider
terraform-provider-octopus
Octopus provider for Terraform
Stars: ✭ 22 (-84.17%)
Mutual labels:  terraform-provider
terraform-provider-nsxt
Terraform VMware NSX-T provider
Stars: ✭ 76 (-45.32%)
Mutual labels:  terraform-provider
terraform-provider-terraform
Terraform terraform provider
Stars: ✭ 24 (-82.73%)
Mutual labels:  terraform-provider
terraform-provider-vercel
Terraform Provider for Vercel (former ZEIT)
Stars: ✭ 36 (-74.1%)
Mutual labels:  terraform-provider
terraform-provider-kubeadm
A Terraform provider/provisioner for deploying Kubernetes with kubeadm
Stars: ✭ 60 (-56.83%)
Mutual labels:  terraform-provider
Docker logo Terraform logo Kreuzwerker logo

Terraform Provider for Docker

Release Installs Registry License
Go Status Lint Status Go Report Card

Requirements

  • Terraform >=0.12.x
  • Go 1.17.x (to build the provider plugin)

Building The Provider

$ git clone [email protected]:kreuzwerker/terraform-provider-docker
$ make build

Example usage

Take a look at the examples in the documentation of the registry or use the following example:

# Set the required provider and versions
terraform {
  required_providers {
    # We recommend pinning to the specific version of the Docker Provider you're using
    # since new versions are released frequently
    docker = {
      source  = "kreuzwerker/docker"
      version = "2.16.0"
    }
  }
}

# Configure the docker provider
provider "docker" {
}

# Create a docker image resource
# -> docker pull nginx:latest
resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = true
}

# Create a docker container resource
# -> same as 'docker run --name nginx -p8080:80 -d nginx:latest'
resource "docker_container" "nginx" {
  name    = "nginx"
  image   = docker_image.nginx.latest

  ports {
    external = 8080
    internal = 80
  }
}

# Or create a service resource
# -> same as 'docker service create -d -p 8081:80 --name nginx-service --replicas 2 nginx:latest'
resource "docker_service" "nginx_service" {
  name = "nginx-service"
  task_spec {
    container_spec {
      image = docker_image.nginx.repo_digest
    }
  }

  mode {
    replicated {
      replicas = 2
    }
  }

  endpoint_spec {
    ports {
      published_port = 8081
      target_port    = 80
    }
  }
}

Contributing

The Terraform Docker Provider is the work of many of contributors. We appreciate your help!

To contribute, please read the contribution guidelines: Contributing to Terraform - Docker Provider

License

The Terraform Provider Docker is available to everyone under the terms of the Mozilla Public License Version 2.0. Take a look the LICENSE file.

Stargazers over time

Stargazers over time

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].