【问题标题】:How to set environment variable in Circle CI to use in application as process.env.FOO如何在 Circle CI 中设置环境变量以在应用程序中用作 process.env.FOO
【发布时间】:2020-04-20 14:42:31
【问题描述】:

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

我已验证键值有效。因为的作用是:

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

但是,以下不起作用

现在,当我部署并尝试在我的应用程序中使用它时,它返回 undefined:

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

我尝试在 config.yml 文件中的“环境”键下设置它:

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

但仍然没有变化。

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

有什么想法吗?


根据 Delena 的提示更新

保留./circle-ci/config.yml 为:

jobs:
  build:
    docker: 
      - image: circleci/node:10.17.0
      environment:
        FOO: $FOO

然后在docker-compose文件中:

myApp:
  environment:
    - FOO

当构建为绿色时将接受答案

【问题讨论】:

    标签: docker circleci


    【解决方案1】:

    您似乎正在尝试从在 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"'

    还可以查看docker run 文档中的ENV (environment variables) 部分。

    【讨论】:

    • 这是有道理的。我没有使用docker run 运行 Docker。但是码头工人撰写。我还可以使用 docker-compose 而不是 docker run 上的 -e 标志设置环境变量吗? (我是 Docker 新手)
    • 好的。找到它,在 docker-compose.yml 文件中的 environment 键下添加它。 (即myApp: environment: - FOO)我是否也应该在 Dockerfile 本身中引用这些变量? (即ENV FOO $FOO
    • 我认为你不需要。只需将它添加到您的 docker-compose.yml 文件就可以了。由于您使用的是 Docker Compose,因此您可以使用 docker-compose build myApp 重建容器并使用 docker-compose up --force-recreate 停止并重新启动应用程序。或者也许只是 docker-compose up --build --force-recreate 应该可以工作。
    • 非常感谢?。试试这个。最后一件事,应该从.circle-ci/config.yml 中完全删除“环境”设置?还是为 docker-compose 文件做参考?
    猜你喜欢
    • 2019-06-26
    • 2021-06-01
    • 2012-10-03
    • 2016-06-06
    • 2015-07-31
    • 1970-01-01
    • 2015-09-25
    • 2017-08-16
    • 2017-03-31
    相关资源
    最近更新 更多