我如何将环境变量添加到具有azure build yml的容器中?

问题描述 投票:0回答:1

[尝试使用azure将应用程序部署到kubernetes。我有一个构建管道yml文件,并且在管道中设置了一个名为“ discordToken”的变量。我尝试用两种不同的方式设置它,一种叫做discordToken,另一种是MY_MAPPED_ENV_VAR。在我正在执行的节点项目中

console.log( process.env.discordToken )
console.log( process.env.MY_MAPPED_ENV_VAR )

但所有内容仍会以未定义的形式返回。

stages:
- stage: Build
  displayName: Build stage
  jobs:  
  - job: Build
    displayName: Build
    pool:
      vmImage: $(vmImageName)
      environment:
        discordToken: $(discordToken)
    steps:
    - powershell: |
      env:
        MY_MAPPED_ENV_VAR: $(discordToken)
    - task: Docker@2
      displayName: Build and push an image to container registry
      inputs:
        command: buildAndPush
        repository: $(imageRepository)
        dockerfile: $(dockerfilePath)
        containerRegistry: $(dockerRegistryServiceConnection)
        tags: |
          $(tag)

我应该如何设置环境变量?

node.js azure azure-devops azure-pipelines-build-task azure-pipelines-yaml
1个回答
0
投票

据我所知,如果您直接在Powershell Task中设置环境变量(env:xxx),则该变量只能由当前任务使用。

您可以尝试set the variables with script,然后后续任务可以使用变量。

例如:

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      # Write your PowerShell commands here.
      echo "##vso[task.setvariable variable=MY_MAPPED_ENV_VAR]$(discordToken)"

您可以在设置->变量中设置参考变量:

Variables

这里有关于set environment variables in dockerfile的票,可能会对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.