如何使用 Terraform 将 ulimit 参数传递给 Docker?

How can I pass ulimit parameters to a Docker with Terraform?

我正在尝试使用 Terraform 在 Docker 中设置 elasticsearch 集群。 Docker 编写包含容器上一些 ulimit 定义的文件:

ulimits:
  memlock:
    soft: -1
    hard: -1

但是我没有找到任何文档说明如何使用 Terraform 进行操作。

terraform docker provider does not currently support ulimits. I have created a PR to add support here.

同时,您可以安装分支,通过克隆我的分支,运行 go build && cp terraform-provider-docker $HOME/.terraform.d/plugins/

然后您可以像这样将 ulimit 块传递给您的容器

provider "docker" {}

resource "docker_image" "elasticsearch" {
  name = "elasticsearch:latest"
}

resource "docker_container" "elasticsearch" {
  image = "${docker_image.elasticsearch.latest}"
  name  = "elasticsearch"

  ports {
    internal = 9200
    external = 9200
  }

  ulimit {
    name = "memlock"
    soft = 100
    hard = 200
  }
}