在当前的这个示例中,您将通过云原生构建实现,使用 terraform 来管理你的 Docker 容器。
根目录的 main.tf 文件定义了一个访问本地 Docker 的镜像和容器资源。这是一个创建 nginx docker 容器的应用程序。
terraform 使用了 kreuzwerker/docker 的 provider 程序,创建了两个资源
nginx:latest 镜像8000 映射到容器内的 80 端口terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = "~> 3.0.1"
}
}
}
provider "docker" {}
resource "docker_image" "nginx" {
name = "nginx:latest"
keep_locally = false
}
resource "docker_container" "nginx" {
image = docker_image.nginx.image_id
name = "tutorial"
ports {
internal = 80
external = 8000
}
}
master:
push:
- name: Terraform by Example
services:
- docker
docker:
image: hashicorp/terraform
stages:
- name: docker image ls
script: docker image ls
- name: docker ps
script: docker ps
- name: init
script: terraform init
- name: plan
script: terraform plan
- name: apply
script: terraform apply -auto-approve
- name: docker image ls
script: docker image ls
- name: docker ps
script: docker ps
terraform流水线运行后,对应 terraform 创建资源情况

流水线运行后,对应 terraform 创建资源情况和结果

流水线运行后,创建了一个容器,并开放了端口

创建 .ide/Dockerfile 配置文件,定制云原生开发执行环境
FROM hashicorp/terraform as tf
FROM node:20
# install vscode and extension
RUN curl -fsSL https://code-server.dev/install.sh | sh &&\
code-server --install-extension hashicorp.terraform &&\
echo done
COPY --from=tf /bin/terraform /usr/local/bin/terraform
点击 云原生开发,创建一个 Web 开发环境

在当前开发环境可以直接执行 terraform 相关命令,进行 IaC 基础设施即代码思想下的Terraform工具实战
