【发布时间】:2021-07-29 08:33:56
【问题描述】:
我该怎么做
VAR=VAULE docker-compose up
来自使用 Docker Compose 文件构建 Azure 应用服务的 Terraform 脚本
site_config {
app_command_line = ""
linux_fx_version = "COMPOSE|${filebase64("../docker-compose.yaml")}"
}
我正在通过 terraform 成功构建 Azure 应用服务,该服务托管一个推送到 ACR 的 docker 容器。但是,我想将变量传递给我的 docker-compose.yaml 文件,但似乎无法找到它们的方法。
docker compose 触发自
depends_on = [ null_resource.docker_push ]
name = "myapps-apps-appservice"
location = "${azurerm_resource_group.mine.location}"
resource_group_name = "${azurerm_resource_group.mine.name}"
app_service_plan_id = "${azurerm_app_service_plan.asp.id}"
site_config {
app_command_line = ""
linux_fx_version = "COMPOSE|${filebase64("../docker-compose.yaml")}"
}
app_settings = {
"WEBSITES_ENABLE_APP_SERVICE_STORAGE" = "false",
"DOCKER_REGISTRY_SERVER_USERNAME" = azurerm_container_registry.container_registry.admin_username,
"DOCKER_REGISTRY_SERVER_URL" = azurerm_container_registry.container_registry.login_server,
"DOCKER_REGISTRY_SERVER_PASSWORD" = azurerm_container_registry.container_registry.admin_password
}
}
我所有的 terraform 都是从 Azure Pipeline 中的部署脚本调用的(这些变量就是在其中设置的)
terraform apply -auto-approve \
-var "app_version=$VERSION" \
-var "client_id=$ARM_CLIENT_ID" \
-var "client_secret=$ARM_CLIENT_SECRET" \
-var "tenant_id=$ARM_TENANT_ID" \
-var "subscription_id=$ARM_SUBSCRIPTION_ID"
但是,当 docker-compose.yaml 文件被触发时,这些变量都无法访问。我什至尝试在部署脚本中执行以下操作:
export VERSION=1
docker-compose.yaml 片段
image: "myacr.azurecr.io/my-container:${VERSION}"
build:
context: ./my-container
dockerfile: Dockerfile-prod
container_name: my-container
有什么想法吗?
【问题讨论】:
-
我也测试了将变量添加到 app_settings 块。那没用
标签: docker docker-compose azure-web-app-service terraform