在当前的这个示例中,您将通过云原生构建实现,使用 terrform
来管理你的 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
}
}
terrform
完成资源部署和管理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
流水线运行后,对应 terrform 创建资源情况
流水线运行后,对应 terrform 创建资源情况和结果
流水线运行后,创建了一个容器,并开放了端口
terrform
的开发环境创建 .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
开发环境
在当前开发环境可以直接执行 terrform
相关命令,进行 IaC
基础设施即代码思想下的Terraform工具实战