{"id":15065569,"url":"https://github.com/geekcell/terraform-aws-ecs-container-definition","last_synced_at":"2026-01-02T08:35:44.154Z","repository":{"id":150854205,"uuid":"590460184","full_name":"geekcell/terraform-aws-ecs-container-definition","owner":"geekcell","description":"Terraform module to provision an AWS ECS Container Definition.","archived":false,"fork":false,"pushed_at":"2023-06-28T10:43:39.000Z","size":82,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-10T06:49:44.159Z","etag":null,"topics":["aws","container","container-definition","ecs","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://www.geekcell.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geekcell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-18T13:23:49.000Z","updated_at":"2023-05-23T14:49:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"f3a97ec4-70b3-4c44-8860-12144d8ddf4f","html_url":"https://github.com/geekcell/terraform-aws-ecs-container-definition","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":"geekcell/terraform-aws-module-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekcell%2Fterraform-aws-ecs-container-definition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekcell%2Fterraform-aws-ecs-container-definition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekcell%2Fterraform-aws-ecs-container-definition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekcell%2Fterraform-aws-ecs-container-definition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geekcell","download_url":"https://codeload.github.com/geekcell/terraform-aws-ecs-container-definition/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243833885,"owners_count":20355349,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","container","container-definition","ecs","terraform","terraform-module"],"created_at":"2024-09-25T00:41:51.742Z","updated_at":"2026-01-02T08:35:44.122Z","avatar_url":"https://github.com/geekcell.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGIN_TF_DOCS --\u003e\n[![Geek Cell GmbH](https://raw.githubusercontent.com/geekcell/.github/main/geekcell-github-banner.png)](https://www.geekcell.io/)\n\n### Code Quality\n[![License](https://img.shields.io/github/license/geekcell/terraform-aws-ecs-container-definition)](https://github.com/geekcell/terraform-aws-ecs-container-definition/blob/master/LICENSE)\n[![GitHub release (latest tag)](https://img.shields.io/github/v/release/geekcell/terraform-aws-ecs-container-definition?logo=github\u0026sort=semver)](https://github.com/geekcell/terraform-aws-ecs-container-definition/releases)\n[![Release](https://github.com/geekcell/terraform-aws-ecs-container-definition/actions/workflows/release.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-ecs-container-definition/actions/workflows/release.yaml)\n[![Validate](https://github.com/geekcell/terraform-aws-ecs-container-definition/actions/workflows/validate.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-ecs-container-definition/actions/workflows/validate.yaml)\n[![Lint](https://github.com/geekcell/terraform-aws-ecs-container-definition/actions/workflows/linter.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-ecs-container-definition/actions/workflows/linter.yaml)\n[![Test](https://github.com/geekcell/terraform-aws-ecs-container-definition/actions/workflows/test.yaml/badge.svg)](https://github.com/geekcell/terraform-aws-ecs-container-definition/actions/workflows/test.yaml)\n\n### Security\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/general)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=INFRASTRUCTURE+SECURITY)\n\n#### Cloud\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/cis_aws)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=CIS+AWS+V1.2)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/cis_aws_13)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=CIS+AWS+V1.3)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/cis_azure)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=CIS+AZURE+V1.1)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/cis_azure_13)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=CIS+AZURE+V1.3)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/cis_gcp)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=CIS+GCP+V1.1)\n\n##### Container\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/cis_kubernetes_16)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=CIS+KUBERNETES+V1.6)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/cis_eks_11)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=CIS+EKS+V1.1)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/cis_gke_11)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=CIS+GKE+V1.1)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/cis_kubernetes)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=CIS+KUBERNETES+V1.5)\n\n#### Data protection\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/soc2)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=SOC2)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/pci)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=PCI-DSS+V3.2)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/pci_dss_v321)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=PCI-DSS+V3.2.1)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/iso)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=ISO27001)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/nist)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=NIST-800-53)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/hipaa)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=HIPAA)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/geekcell/terraform-aws-ecs-container-definition/fedramp_moderate)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=geekcell%2Fterraform-aws-ecs-container-definition\u0026benchmark=FEDRAMP+%28MODERATE%29)\n\n# Terraform AWS ECS Container Definition\n\nThis module is used to generate a container definition for use in an AWS ECS task definition.\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_command\"\u003e\u003c/a\u003e [command](#input\\_command) | The command that is passed to the container. | `list(string)` | `null` | no |\n| \u003ca name=\"input_cpu\"\u003e\u003c/a\u003e [cpu](#input\\_cpu) | The number of cpu units reserved for the container. | `number` | `0` | no |\n| \u003ca name=\"input_depend_on\"\u003e\u003c/a\u003e [depend\\_on](#input\\_depend\\_on) | The dependencies defined for container startup and shutdown. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_disable_networking\"\u003e\u003c/a\u003e [disable\\_networking](#input\\_disable\\_networking) | When this parameter is true, networking is disabled within the container. | `bool` | `null` | no |\n| \u003ca name=\"input_dns_search_domains\"\u003e\u003c/a\u003e [dns\\_search\\_domains](#input\\_dns\\_search\\_domains) | A list of DNS search domains that are presented to the container. | `list(string)` | `null` | no |\n| \u003ca name=\"input_dns_servers\"\u003e\u003c/a\u003e [dns\\_servers](#input\\_dns\\_servers) | A list of DNS servers that are presented to the container. | `list(string)` | `null` | no |\n| \u003ca name=\"input_docker_labels\"\u003e\u003c/a\u003e [docker\\_labels](#input\\_docker\\_labels) | A key/value map of labels to add to the container. | `map(string)` | `null` | no |\n| \u003ca name=\"input_docker_security_options\"\u003e\u003c/a\u003e [docker\\_security\\_options](#input\\_docker\\_security\\_options) | A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. | `list(string)` | `null` | no |\n| \u003ca name=\"input_entrypoint\"\u003e\u003c/a\u003e [entrypoint](#input\\_entrypoint) | The entry point that is passed to the container. | `list(string)` | `null` | no |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | The environment variables to pass to a container. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_environment_files\"\u003e\u003c/a\u003e [environment\\_files](#input\\_environment\\_files) | The environment files to pass to a container. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_essential\"\u003e\u003c/a\u003e [essential](#input\\_essential) | Whether this container is essential to the task. If the container fails or stops for any reason, all other containers that are part of the task are stopped. | `bool` | `true` | no |\n| \u003ca name=\"input_extra_hosts\"\u003e\u003c/a\u003e [extra\\_hosts](#input\\_extra\\_hosts) | A list of hostnames and IP address mappings to append to the /etc/hosts file on the container. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_firelens_configuration\"\u003e\u003c/a\u003e [firelens\\_configuration](#input\\_firelens\\_configuration) | The FireLens configuration for the container. | \u003cpre\u003eobject({\u003cbr\u003e    type    = string\u003cbr\u003e    options = optional(map(string))\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_healthcheck\"\u003e\u003c/a\u003e [healthcheck](#input\\_healthcheck) | The container health check command and associated configuration parameters for the container. | \u003cpre\u003eobject({\u003cbr\u003e    command      = list(string)\u003cbr\u003e    interval     = optional(number)\u003cbr\u003e    retries      = optional(number)\u003cbr\u003e    start_period = optional(number)\u003cbr\u003e    timeout      = optional(number)\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_hostname\"\u003e\u003c/a\u003e [hostname](#input\\_hostname) | The hostname to use for your container. | `string` | `null` | no |\n| \u003ca name=\"input_image\"\u003e\u003c/a\u003e [image](#input\\_image) | The image used to start the container. | `string` | n/a | yes |\n| \u003ca name=\"input_interactive\"\u003e\u003c/a\u003e [interactive](#input\\_interactive) | When this parameter is true, the container is given read-only access to its root file system. | `bool` | `null` | no |\n| \u003ca name=\"input_links\"\u003e\u003c/a\u003e [links](#input\\_links) | Links to other containers. | `list(string)` | `null` | no |\n| \u003ca name=\"input_linux_parameters\"\u003e\u003c/a\u003e [linux\\_parameters](#input\\_linux\\_parameters) | Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. | \u003cpre\u003eobject({\u003cbr\u003e    init_process_enabled = optional(bool)\u003cbr\u003e\u003cbr\u003e    shared_memory_size = optional(number)\u003cbr\u003e    max_swap           = optional(number)\u003cbr\u003e    swappiness         = optional(number)\u003cbr\u003e\u003cbr\u003e    capabilities = optional(object({\u003cbr\u003e      add  = optional(list(string))\u003cbr\u003e      drop = optional(list(string))\u003cbr\u003e    }))\u003cbr\u003e\u003cbr\u003e    devices = optional(list(object({\u003cbr\u003e      host_path      = string\u003cbr\u003e      container_path = optional(string)\u003cbr\u003e      permissions    = optional(list(string))\u003cbr\u003e    })), [])\u003cbr\u003e\u003cbr\u003e    tmpfs = optional(list(object({\u003cbr\u003e      container_path = string\u003cbr\u003e      size           = number\u003cbr\u003e      mount_options  = optional(list(string))\u003cbr\u003e    })), [])\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_log_configuration\"\u003e\u003c/a\u003e [log\\_configuration](#input\\_log\\_configuration) | The log configuration specification for the container. | \u003cpre\u003eobject({\u003cbr\u003e    log_driver     = optional(string)\u003cbr\u003e    options        = optional(map(string))\u003cbr\u003e    secret_options = optional(map(string))\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_memory\"\u003e\u003c/a\u003e [memory](#input\\_memory) | The hard limit (in MiB) of memory to present to the container. | `number` | `null` | no |\n| \u003ca name=\"input_memory_reservation\"\u003e\u003c/a\u003e [memory\\_reservation](#input\\_memory\\_reservation) | The soft limit (in MiB) of memory to reserve for the container. | `number` | `null` | no |\n| \u003ca name=\"input_mount_points\"\u003e\u003c/a\u003e [mount\\_points](#input\\_mount\\_points) | The mount points for data volumes in your container. | \u003cpre\u003elist(object({\u003cbr\u003e    source_volume  = string\u003cbr\u003e    container_path = string\u003cbr\u003e    read_only      = optional(bool, false)\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | The name of the container. | `string` | n/a | yes |\n| \u003ca name=\"input_port_mappings\"\u003e\u003c/a\u003e [port\\_mappings](#input\\_port\\_mappings) | The list of port mappings for the container. | \u003cpre\u003elist(object({\u003cbr\u003e    app_protocol         = optional(string)\u003cbr\u003e    container_port_range = optional(string)\u003cbr\u003e\u003cbr\u003e    container_port = optional(number)\u003cbr\u003e    host_port      = optional(number)\u003cbr\u003e    protocol       = optional(string, \"tcp\")\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_privileged\"\u003e\u003c/a\u003e [privileged](#input\\_privileged) | When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). | `bool` | `null` | no |\n| \u003ca name=\"input_pseudo_terminal\"\u003e\u003c/a\u003e [pseudo\\_terminal](#input\\_pseudo\\_terminal) | When this parameter is true, a TTY is allocated. | `bool` | `null` | no |\n| \u003ca name=\"input_readonly_root_filesystem\"\u003e\u003c/a\u003e [readonly\\_root\\_filesystem](#input\\_readonly\\_root\\_filesystem) | When this parameter is true, the container is given read-only access to its root file system. | `bool` | `null` | no |\n| \u003ca name=\"input_repository_credentials\"\u003e\u003c/a\u003e [repository\\_credentials](#input\\_repository\\_credentials) | The private repository authentication credentials to use. | `string` | `null` | no |\n| \u003ca name=\"input_resource_requirements\"\u003e\u003c/a\u003e [resource\\_requirements](#input\\_resource\\_requirements) | The type and amount of a resource to assign to a container. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_secrets\"\u003e\u003c/a\u003e [secrets](#input\\_secrets) | The secrets to pass to the container. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_start_timeout\"\u003e\u003c/a\u003e [start\\_timeout](#input\\_start\\_timeout) | Time duration (in seconds) to wait before giving up on resolving dependencies for a container. | `number` | `null` | no |\n| \u003ca name=\"input_stop_timeout\"\u003e\u003c/a\u003e [stop\\_timeout](#input\\_stop\\_timeout) | Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. | `number` | `null` | no |\n| \u003ca name=\"input_system_controls\"\u003e\u003c/a\u003e [system\\_controls](#input\\_system\\_controls) | A list of namespaced kernel parameters to set in the container. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_ulimits\"\u003e\u003c/a\u003e [ulimits](#input\\_ulimits) | A list of ulimits to set in the container. | \u003cpre\u003emap(object({\u003cbr\u003e    hard_limit = number\u003cbr\u003e    soft_limit = number\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_user\"\u003e\u003c/a\u003e [user](#input\\_user) | The user to use inside the container. | `string` | `null` | no |\n| \u003ca name=\"input_volumes_from\"\u003e\u003c/a\u003e [volumes\\_from](#input\\_volumes\\_from) | Data volumes to mount from another container. | \u003cpre\u003emap(object({\u003cbr\u003e    read_only = optional(bool, false)\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_working_directory\"\u003e\u003c/a\u003e [working\\_directory](#input\\_working\\_directory) | The working directory in which to run commands inside the container. | `string` | `null` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_hcl\"\u003e\u003c/a\u003e [hcl](#output\\_hcl) | Rendered container definition as HCL object. |\n| \u003ca name=\"output_json\"\u003e\u003c/a\u003e [json](#output\\_json) | Rendered container definition as JSON output. |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_jq\"\u003e\u003c/a\u003e [jq](#provider\\_jq) | 0.2.1 |\n\n## Resources\n\n- data source.jq_query.main (main.tf#114)\n\n# Examples\n### Min\n```hcl\nmodule \"basic-example\" {\n  source = \"../../\"\n\n  name  = var.name\n  image = \"nginx:1.23-alpine\"\n}\n```\n\n### Full\n```hcl\nmodule \"full\" {\n  source = \"../../\"\n\n  name      = var.name\n  image     = \"nginx:latest\"\n  essential = true\n\n  command    = [\"sleep\", \"1000\"]\n  entrypoint = [\"/bin/sh\", \"-c\"]\n  user       = \"root\"\n\n  interactive     = false\n  pseudo_terminal = false\n\n  cpu                = 256\n  memory             = 512\n  memory_reservation = 1024\n\n  working_directory        = \"/tmp\"\n  readonly_root_filesystem = true\n\n  port_mappings = [\n    {\n      container_port = 80\n      host_port      = 80\n      protocol       = \"tcp\"\n    },\n    {\n      container_port = 443\n      host_port      = 443\n      protocol       = \"tcp\"\n    }\n  ]\n\n  links = [\"app\"]\n  mount_points = [\n    {\n      container_path = \"/tmp\"\n      source_volume  = \"tmp\"\n      read_only      = false\n    }\n  ]\n  volumes_from = {\n    app = { read_only = true }\n  }\n\n  dns_search_domains = [\"example.com\"]\n  dns_servers        = [\"10.0.0.1\"]\n\n  hostname = \"nginx\"\n  extra_hosts = {\n    \"local.host\" = \"127.0.0.1\"\n    \"loopback\"   = \"127.0.0.1\"\n  }\n\n  privileged         = true\n  disable_networking = false\n  ulimits = {\n    nofile = {\n      soft_limit = 1024\n      hard_limit = 2048\n    }\n    nproc = {\n      soft_limit = 1024\n      hard_limit = 2048\n    }\n  }\n\n  docker_security_options = [\"label:type:container_t\"]\n  system_controls = {\n    \"net.ipv4.tcp_syncookies\" = 1\n    \"net.core.somaxconn\"      = 1024\n  }\n\n  linux_parameters = {\n    init_process_enabled = true\n\n    shared_memory_size = 1024\n    max_swap           = 1024\n    swappiness         = 50\n\n    capabilities = {\n      add  = [\"SYS_TIME\"]\n      drop = [\"MKNOD\"]\n    }\n\n    devices = [\n      {\n        host_path      = \"/dev/null\"\n        container_path = \"/dev/null\"\n        permissions    = [\"read\", \"write\"]\n      }\n    ]\n\n    tmpfs = [\n      {\n        size           = 1024\n        container_path = \"/tmp\"\n        mount_options  = [\"rw\", \"noexec\", \"nosuid\", \"nodev\"]\n      }\n    ]\n  }\n\n  environment_files = [\"s3://bucket/key/to/file.env\"]\n  environment = {\n    APP_ENV   = \"dev\"\n    APP_DEBUG = false\n  }\n\n  secrets = {\n    DATABASE_USER = \"arn:aws:ssm:us-east-1:awsExampleAccountID:parameter/awsExampleParameter:DB_PASS::\"\n    APP_SECRET    = \"arn:aws:ssm:us-east-1:awsExampleAccountID:parameter/awsExampleParameter:APP_SECRET::\"\n  }\n\n  docker_labels = {\n    \"com.example.foo\" = \"bar\"\n    \"com.example.baz\" = \"qux\"\n  }\n\n  start_timeout = 60\n  stop_timeout  = 60\n  depend_on = {\n    redis = \"HEALTHY\"\n  }\n  healthcheck = {\n    command      = [\"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\"]\n    interval     = 30\n    retries      = 3\n    start_period = 0\n    timeout      = 5\n  }\n\n  resource_requirements = {\n    GPU                  = 256\n    InferenceAccelerator = \"eia1.medium\"\n  }\n\n  repository_credentials = \"arn:aws:ssm:us-east-1:awsExampleAccountID:parameter/awsExampleParameter\"\n\n  log_configuration = {\n    log_driver = \"awsfirelens\"\n    options = {\n      endpoint = \"https://example.com\"\n    }\n    secret_options = {\n      apiKey = \"arn:aws:ssm:us-east-1:awsExampleAccountID:parameter/awsExampleParameter:apiKey::\"\n    }\n  }\n}\n```\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeekcell%2Fterraform-aws-ecs-container-definition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeekcell%2Fterraform-aws-ecs-container-definition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeekcell%2Fterraform-aws-ecs-container-definition/lists"}