建立一个轻量级的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。

广告
将在 10 秒后关闭
bannerAds