有没有一种方法可以使用Azure Pipeline中的变量更新dockerfile?

时间:2020-03-05 18:53:36

标签: bash docker azure-devops dockerfile azure-pipelines

我有一个正在尝试建立的Azure管道。在dockerfile中,需要有一些变量来存储有关Azure Keyvault的一些敏感信息,我的目标是不要将此信息存储在任何文件中,而是让管道在运行时更新dockerfile;我在管道设置为运行的仓库中创建了一个简单的bash脚本,它将使用变量名并更新dockerfile,但是它表示找不到docker文件。

这是脚本,

sed -i "s/<AZURE_CLIENT_ID>/${1}/g" Dockerfile

sed -i "s/<AZURE_CLIENT_SECRET>/${2}/g" Dockerfile

sed -i "s/<AZURE_TENANT_ID>/${3}/g" Dockerfile

sed -i "s/<KEY_VAULT_NAME>/${4}/g" Dockerfile

我已经在管道中设置了参数,并使用了echo命令以确保它们返回所需的值。

这是我得到的错误:

sed:无法读取Dockerfile:没有此类文件或目录 /home/vsts/work/1/s/update-docker-var.sh:第6行:$'\ r':找不到命令

我曾尝试使用'ls'命令和'pwd'命令,但它们均不返回任何内容……我有点受困于此,任何帮助都将非常有用。谢谢!

这是管道YAML的bash部分:

  - task: Bash@3
    inputs:
      filePath: 'update-docker-var.sh'
      arguments: '$(AZURE_CLIENT_ID) $(AZURE_CLIENT_SECRET) $(AZURE_TENANT_ID) $(KEY_VAULT_NAME)'
      workingDirectory: '$(Build.SourcesDirectory)'

0 个答案:

没有答案