【问题标题】:Terraform as Docker returns error on planTerraform as Docker 在计划中返回错误
【发布时间】:2020-02-23 20:44:00
【问题描述】:

我正在尝试将 Terraform 作为 Docker。我已从以下位置提取图像:

Docker Repo Image

我有简单的main.tf

输出“问候”{ 价值=“你好世界!” }

提供者“随机”{}

现在,在与 main.tf 相同的目录中,我运行:

docker run -i -t hashcorp/terraform:light plan main.tf

正如该页面上所建议的那样。但我得到了错误:

stat main.tf: 没有这样的文件或目录

所以我想我需要创建一个 Dockerfile 来创建一个包含 main.tf 的图像,对吧?

谢谢。

【问题讨论】:

  • Terraform 作为单个静态二进制文件分发。你根本不需要 Docker 来运行它。
  • 谢谢,我确实知道。但我想试试 Docker 版本。

标签: docker terraform


【解决方案1】:

首先,您需要确保您的 terraform 文件在容器内可用。这可以使用卷来完成,如下所示

$>  docker run -it -v $PWD:/tr-scripts  hashicorp/terraform:light plan /tr-scripts/

其次,你可能需要在plan之前运行init

dockerfile 示例

From hashicorp/terraform:light
COPY ./TR-SCRIPT /tr-scripts

RUN terraform init /tr-scripts

【讨论】:

  • 感谢您的帮助(除了您需要在 $PWD 之后添加“/”)。也就是说,我首先运行“init”并且没问题。之后我运行计划但我收到错误:错误:无法满足插件要求插件需要重新初始化。请运行“terraform init”。
  • 我需要在同一个 docker 命令中运行 init 和 plan 吗?还是使用 Dockerfile?
  • 在同一命令中运行 init 将不起作用,您需要为此创建一个自定义 docker 文件
猜你喜欢
  • 2020-09-18
  • 2021-06-27
  • 2020-10-15
  • 2021-09-03
  • 2021-01-06
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
相关资源
最近更新 更多