建立一个轻量级的Terraform容器
Terraform是一个什么样的工具?
通过使用代码(模板文件)来自动化基础设施的构建和配置,可通过基础设施即代码(Infrastructure as Code)的代码化方式来安全高效地管理基础设施的工具。
支持多个云,不仅可以在OCI中使用,还可以在其他云中使用Terraform。
Dockerfile和docker-compose已在GitHub上公开。
创建Docker文件
使用alpine作为基本镜像。
通过ARG指定了Terraform的版本。
另外,在terraform初始化时需要使用curl,因此在apk add之后安装了curl。
FROM alpine:3.10
ARG terraform_version="0.12.5"
# Install terraform
RUN apk update --no-cache \
&& apk add --no-cache \
wget \
unzip \
curl \
&& wget https://releases.hashicorp.com/terraform/${terraform_version}/terraform_${terraform_version}_linux_amd64.zip \
&& unzip ./terraform_${terraform_version}_linux_amd64.zip -d /usr/local/bin/ \
&& rm -rf ./terraform_${terraform_version}_linux_amd64.zip \
&& mkdir terraform
生成 Docker 镜像
在含有Dockerfile的目录中执行以下操作。
$ docker build -t alpine-terraform .
创建docker-compose.yml文件
请指定 [你的 terraform 项目] 中的 terraform 代码路径。
version: '3'
services:
web_container:
image: alpine-terraform
restart: always
container_name: terraform_container
volumes:
- [Your terraform project]:/terraform
tty: true
启动terraform容器
在包含docker-compose.yml文件的目录下执行以下操作。
$ docker-compose up -d
连接到terraform容器
docker exec -it terraform_container /bin/sh
因为有terraform目录,所以我们将在其中执行terraform。