当前位置: 首页 > 知识库问答 >
问题:

通过Azure应用程序服务的Terraform脚本将变量传递给Docker Compose

翁阳曜
2023-03-14

我怎么做

VAR=VAULE docker-compose up

使用Docker编写文件从Terraform脚本构建Azure应用程序服务

 site_config {
    app_command_line = ""
    linux_fx_version = "COMPOSE|${filebase64("../docker-compose.yaml")}"
  }

  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 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"
export VERSION=1

docker-compose.yaml代码段网

    image: "myacr.azurecr.io/my-container:${VERSION}"
    build: 
      context: ./my-container
      dockerfile: Dockerfile-prod
    container_name: my-container

有什么想法吗?

共有1个答案

邢灿
2023-03-14

我找到了一份和Sed在一起的工作。在部署脚本中,我只是使用sed替换docker-compose.yaml文件中的值,然后用令牌替换它们,这样版本控制就保持不变。似乎有点老套,但很管用:)

eval "sed -i 's/MY_VERSION/$VERSION/' ../docker-compose.yaml"

cat ../docker-compose.yaml

terraform init 
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"

eval "sed -i 's/$VERSION/MY_VERSION/' ../docker-compose.yaml"
 类似资料:
  • 问题内容: 好吧,我在我的烧瓶应用程序中有这个: 现在,如果我像这样调用它: 它吐出“找不到URL” …这是我在做什么错? 问题答案: 第一条路径描述了一个URL,并将值作为URL的一部分。第二个网址描述的路由没有变量,但网址中带有查询参数。 如果您使用的是第一条路线,则网址应类似于。 如果您使用的是第二个url,则路由应类似于,函数应为,值应从读取。 通常,路由应描述应始终存在的所有参数,并且表

  • 问题内容: 我刚开始学习groovy,我想将svnSourcePath和svnDestPath传递给svn copy命令中的shell脚本。但是网址未呈现。 输出量 问题答案: 在变量周围添加了单引号和加operator(’+ variable +’)。现在正在工作

  • 问题内容: 我开始使用Grunt,并希望将变量传递给我通过exec运行的PhantomJS脚本。我想要做的是为脚本传递URL,以从中获取屏幕截图。任何帮助将不胜感激,谢谢! 达伦 咕script声脚本 screenshot.js 问题答案: 命令行参数可通过模块(Module )访问。第一个始终是脚本名称,然后是后续参数 该脚本将枚举所有参数,并将其写到控制台。 在您的情况下,解决方案是 咕unt

  • 问题内容: 我从Jenkins触发了一个shell脚本,该脚本获取日期并将其导出为环境(Linux)变量$ DATE。我需要在同一詹金斯工作中使用此$ DATE。我做了工作作为参数构建。创建一个字符串参数作为DATE值,如DATE = $ DATE。但这是行不通的。 请建议! 问题答案: 您提到要在外壳程序脚本中导出环境变量,该脚本可能是通过“执行外壳程序”步骤启动的。 问题是,一旦完成外壳程序步

  • 问题内容: 我在通过SSH将响应传递到远程服务器上的bash脚本时遇到问题。 我正在用Python 3.6.5编写程序,该程序将SSH到远程Linux服务器。在此远程Linux服务器上,有一个正在运行的bash脚本,需要用户输入才能填充。无论出于何种原因,我都无法通过SSH从原始python程序传递用户输入,而无法填写bash脚本用户输入的问题。 main.py SSH.py 类中的最后一个是启动

  • 问题内容: 我试图将变量从我的javascript代码传递到服务器端PHP代码。我知道这必须通过ajax调用来完成,我相信我已经正确地完成了,但是访问变量是从我的ajax传递到我的php时遇到的麻烦,因为我是php的新手。到目前为止,这是我的代码: 我正在尝试将我的JavaScript变量“ userID”传递给php($ userID),但是在此过程中我出错了。谢谢您的帮助! 问题答案: 将这样