泊坞窗无法读取Terraform文件

时间:2019-03-26 10:40:00

标签: docker terraform

我正在尝试在docker上部署terraform,但是我的docker容器似乎无法读取main.tf文件,并抛出类似 provide:not found region:not found 的错误。 >。我正在提供示例dockerfile和main.tf,请指出我要去哪里哪里

Dockerfile代码段,无法在此处共享完整的文件,但该代码段包含所有与地形相关的代码

RUN apt-get -y install wget unzip
RUN wget https://releases.hashicorp.com/terraform/0.11.11/terraform_0.11.11_linux_amd64.zip
RUN unzip terraform_0.11.11_linux_amd64.zip
RUN mv terraform /usr/local/bin/

ADD main.tf /usr/local/bin/terraform

RUN chmod +x /usr/local/bin/terraform

RUN terraform init
RUN terraform apply -auto-approve /usr/local/bin/terraform -var 'access_key=${AWS_ACCESS_KEY}' -var 'secret_key=${AWS_SECRET_KEY}'

main.tf

provider "aws" {
    region = "region-name"
}

resource "aws_instance" "aws_testing" {
  ami = "ami-name"
  instance_type = "t2.micro"

  #Was using variables.tf ealier but that was laso not being read by 
  #docker, so hard coded these values
  subnet_id = "my-subnet5"

  #Security group
  security_groups = ["smy-security-group"]

}

为此的预期结果是创建一个AWS实例。 此外,terraform脚本独立运行良好,与docker有关,我正在收到此错误

1 个答案:

答案 0 :(得分:0)

您必须告诉terraform terraform文件位于何处。

您可以通过在Dockerfile中设置WORKDIR来实现,例如:

WORKDIR /usr/local/bin

(我想您在上面的代码段中有一个错误。main.tf在/ usr / local / bin中..不在/ usr / local / bin / terraform中..对吗?所以这将起作用,因为main.tf在与执行terraform命令相同的目录中。)

或者您可以在terraform命令中指定路径,例如:

terraform init /usr/local/bin