在当前的这个示例中,您将通过云原生构建实现,使用 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工具实战
