Я хочу создать контейнер, из которого я буду запускать мои команды terraform. Мой dockerfile выглядит следующим образом:
FROM mcr.microsoft.com/azure-cli
RUN apk add curl
ENV TERRAFORM_VERSION 0.12.21
RUN curl -sL https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip -o tf.zip \
&& unzip tf.zip \
&& mv terraform /sbin/ \
&& rm -rf tf.zip
Мой main.tf
выглядит следующим образом:
provider "azurerm" {
version = "~>1.44"
subscription_id = "xxx"
}
provider "azuread" {
version = "~>0.6.0"
}
terraform {
backend "azurerm" {}
}
На моем хосте Windows
обычно я делаю az login
, а затем
terraform init \
-backend-config=storage_account_name=xxx \
-backend-config=container_name=terraform-state \
-backend-config=access_key="xxx" \
-backend-config=key=app.tfstate
Проблема в том, что когда я делаю то же самое в docker контейнере, выполняем следующее docker run --rm -ti <IMAGE_ID> bash
вместо успешной инициализации, я получаю странную ошибку вроде:
Error: Failed to get existing workspaces: storage: service returned error: StatusCode=403, ErrorCode=AuthenticationFailed, ErrorMessage=Server failed to authenticate the request. Make sure the value of
Authorization header is formed correctly including the signature.
Это как-то связано с