node.js - 如何使用 azure build yml 将环境变量添加到容器中?
问题描述
尝试使用 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)
我应该如何设置环境变量?
解决方案
据我所知,如果直接在Powershell Task中设置环境变量(env:xxx),该变量只能被当前任务使用。
您可以尝试使用 script 设置变量,然后可以通过以下任务使用这些变量。
例如:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
# Write your PowerShell commands here.
echo "##vso[task.setvariable variable=MY_MAPPED_ENV_VAR]$(discordToken)"
您可以在Settings -> Variables中设置参考变量:
这是一张关于在 dockerfile 中设置环境变量的票,它可能会对您有所帮助。
推荐阅读
- android-emulator - Android模拟器(adb devices -l)未经授权的错误
- swagger - 在 net5 web api 中升级 Swashbuckle 后如何使用 SwaggerResponse?
- python - 从 mypy 检查中排除文件夹
- android - RecyclerView 适配器项的状态存储在哪里?
- php - 如何在 Laravel Nova 中上钩?
- node.js - 为什么我收到此错误:kafka.Client() 不是构造函数?
- cassandra - Cassandra 数据建模理解
- reactjs - React useContext:如何在不使父组件重新渲染的情况下更新子组件中的上下文
- python - 用硒爬行,停在中间
- html - 防止导航栏消失而不添加“bg-dark”