gpt4 book ai didi

docker - 如何使用 Terraform 部署我的 docker-compose 项目?

转载 作者:IT老高 更新时间:2023-10-28 21:25:25 27 4
gpt4 key购买 nike

我已经查看了所有内容,但找不到一个连贯的资源来直接描述如何执行此操作。我有一个这样的项目:

./
|-src/
|--..
|--Dockerfile
|-docker-compose.yaml

这样的 terraform 配置文件:

variable "do_token" {}

# Configure the DigitalOcean Provider
provider "digitalocean" {
token = "${var.do_token}"
}

# Create a web server
resource "digitalocean_droplet" "web" {
# ...
}

我希望能够做类似的事情

provider "digitalocean" {
ip = <my-ip>
# docker-compose up ?
}

我的撰写文件正确设置了应用程序架构。我只是想要一种方法将它部署到 digital ocean 某处的给定盒子(最好通过 ip)并运行 docker-compose up。我该怎么做?

最佳答案

供应商

Terraform 有 provisioners它允许您复制文件并在资源创建时执行脚本。

resource "digitalocean_droplet" "web" {
# ...

provisioner "file" {
source = "compose-app/"
destination = "/app"
}

provisioner "remote-exec" {
inline = [
"cd /app",
"docker-compose up",
]
}
}

Chef provisioner也可以与 compose cookbook 一起使用

docker

Terraform 有一个简单的 Docker provider但不管理开箱即用的 Compose 或 Swarm 定义,因此您需要在 volumes 中逐个定义您的 compose 环境, networks , images , containers )。

provider "docker" {
host = "tcp://droplet:2375/"
}
resource "docker_image" "myapp" {
name = "me/myapp:1.0.0"
}
resource "docker_container" "myapp" {
name = "myapp"
image = "${docker_image.myapp.latest}"
ports {
internal = 1234
external = 1234
}
}

Kubernetes

对于部署真实世界的应用程序使用 Terraform,您可能最好使用 Kubernetes provider这将让您设置 replication controller运行 pods访问为 services在 Docker 上。这将需要运行 Kubernetes 集群并编写 Kubernetes 定义 Kompose可以帮助从 Docker Compose 转换。

关于docker - 如何使用 Terraform 部署我的 docker-compose 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47983827/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com