From 275aa79cf9174391e0f95a0a91a464d740551559 Mon Sep 17 00:00:00 2001 From: "sharareh.seyedsadri" Date: Fri, 1 Jul 2022 22:28:08 +0430 Subject: [PATCH] multiple-container-in-one-resource --- .../README.md | 0 .../main.tf | 10 ++++++ .../providers.tf | 3 ++ .../terraform.gitignore | 35 +++++++++++++++++++ .../terraform.tf | 9 +++++ .../variable.tf | 28 +++++++++++++++ 6 files changed, 85 insertions(+) create mode 100644 examples/docker/multiple-container-in-one-resource/README.md create mode 100644 examples/docker/multiple-container-in-one-resource/main.tf create mode 100644 examples/docker/multiple-container-in-one-resource/providers.tf create mode 100644 examples/docker/multiple-container-in-one-resource/terraform.gitignore create mode 100644 examples/docker/multiple-container-in-one-resource/terraform.tf create mode 100644 examples/docker/multiple-container-in-one-resource/variable.tf diff --git a/examples/docker/multiple-container-in-one-resource/README.md b/examples/docker/multiple-container-in-one-resource/README.md new file mode 100644 index 0000000..e69de29 diff --git a/examples/docker/multiple-container-in-one-resource/main.tf b/examples/docker/multiple-container-in-one-resource/main.tf new file mode 100644 index 0000000..572d94e --- /dev/null +++ b/examples/docker/multiple-container-in-one-resource/main.tf @@ -0,0 +1,10 @@ +resource "docker_container" "containers" { + for_each = var.containers + name = each.key + memory = each.value.memory + image = each.value.image + restart = each.value.restart + env = each.value.env +} + +#### this is generic template \ No newline at end of file diff --git a/examples/docker/multiple-container-in-one-resource/providers.tf b/examples/docker/multiple-container-in-one-resource/providers.tf new file mode 100644 index 0000000..6de33b5 --- /dev/null +++ b/examples/docker/multiple-container-in-one-resource/providers.tf @@ -0,0 +1,3 @@ +provider "docker" { + host = "unix:///var/run/docker.sock" +} \ No newline at end of file diff --git a/examples/docker/multiple-container-in-one-resource/terraform.gitignore b/examples/docker/multiple-container-in-one-resource/terraform.gitignore new file mode 100644 index 0000000..7d4488d --- /dev/null +++ b/examples/docker/multiple-container-in-one-resource/terraform.gitignore @@ -0,0 +1,35 @@ +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars +*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc + diff --git a/examples/docker/multiple-container-in-one-resource/terraform.tf b/examples/docker/multiple-container-in-one-resource/terraform.tf new file mode 100644 index 0000000..ca21dc1 --- /dev/null +++ b/examples/docker/multiple-container-in-one-resource/terraform.tf @@ -0,0 +1,9 @@ +terraform { + required_providers { + docker = { + source = "kreuzwerker/docker" + version = ">= 2.16" + } + } +} + diff --git a/examples/docker/multiple-container-in-one-resource/variable.tf b/examples/docker/multiple-container-in-one-resource/variable.tf new file mode 100644 index 0000000..1939f04 --- /dev/null +++ b/examples/docker/multiple-container-in-one-resource/variable.tf @@ -0,0 +1,28 @@ +variable "containers" { + type = map + default = { + "nginx" = { + "image" : "nginx:alpine" + "memory" : "1024" + "env" : [] + "restart" : "always" + }, + "redis" = { + "image" : "redis:latest" + "memory" : "512" + "env" : [] + "restart" : "unless-stopped" + } + "mysql" = { + "image" : "mysql:8" + "memory" : "1024" + "env" : [ + "MYSQL_ROOT_PASSWORD = root", + "MYSQL_DATABASE = test" + ] + "restart" : "no" + } + } +} + +### this varriable trigger the generic template for docker containers \ No newline at end of file