如何在Circle CI中设置环境变量以在应用程序中用作process.env.FOO

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

例如,我已经设置了name: FOO value: 'bar'

我已经确认键值有效。因为does的工作是:

jobs:
  build:
    docker: 
      - image: circleci/node:10.17.0
    steps:
      - run: |
          node something $FOO

但是,以下无效起作用:

现在,当我部署并尝试在应用程序中使用它时,它将返回未定义的状态:

console.log(process.env.FOO); // returns undefined

我尝试在config.yml文件的'environment'键下设置它:

jobs:
  build:
    docker: 
      - image: circleci/node:10.17.0
      environment:
        FOO: $FOO
    steps:
      - run: |
        node something $FOO
        ssh $MACHINE -- 'cd /home/ && docker build -t myApp . docker restart myApp'

但仍然没有变化。

我是否应该在ssh命令中将变量传递给构建脚本?

有什么想法吗?

docker circleci
1个回答
0
投票

似乎您正在尝试从在Docker容器中运行的应用访问环境变量,但未在容器中设置环境变量。

如果是这种情况,您可以签出How to set an environment variable in a running docker container,但看起来您必须停止容器并使用环境变量再次将其重新启动。

您可以做类似的事情:

ssh $MACHINE -- 'cd /home/ && docker build -t myApp && docker stop myApp && docker run -e "FOO=$FOO"'

也请查看ENV (environment variables)文档中的docker run部分。

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