我正在尝试在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有关,我正在收到此错误
答案 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