安裝
snap install terraform --classic
main.tf
意思是我要使用由 kreuzwerker 提供的 docker Provider」,並且要求版本在 2.x 之間
連接本地 Docker Engine
定義要建立的資源
terraform init
terraform apply
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~> 2.0"
}
}
}
provider "docker" {
host = "unix:///var/run/docker.sock"
}
resource "docker_image" "nginx" {
name = "nginx:latest"
}
resource "docker_container" "nginx" {
image = docker_image.nginx.latest
name = "my-nginx"
ports {
internal = 80 # 容器內的 Nginx 用 443
external = 3055 # 主機對外開 3055 端口,避免和主機已有的 443 衝突
}
volumes {
host_path = "/etc/letsencrypt/live/huahaohuahua.ddns.net"
container_path = "/etc/letsencrypt/live/huahaohuahua.ddns.net"
}
volumes {
host_path = "/kok/todo-api/1/nginx-conf"
container_path = "/etc/nginx/conf.d"
}
}
docker exec -it my-nginx sh
/etc/nginx/nginx.conf