获取一个circleci环境变量以显示在docker机器中

获取一个circleci环境变量以显示在docker机器中,docker,dockerfile,circleci,Docker,Dockerfile,Circleci,我有一个部署过程,需要在docker构建阶段访问敏感变量 嗨。我想在circleci的docker构建阶段上传我的缩小javascript。看起来很简单,但是,我无法在构建阶段显示环境变量。我不想把我的AWS密钥放在Git中。我的第一个问题是,我无法获得任何环境变量,即使是硬编码的,也无法在构建系统中显示,我的第二个问题是我不想像下面那样硬编码它们(foo,baz) 在阅读文档时,我似乎更想这样做: machine: services: - docker dependencies:

我有一个部署过程,需要在docker构建阶段访问敏感变量

嗨。我想在circleci的docker构建阶段上传我的缩小javascript。看起来很简单,但是,我无法在构建阶段显示环境变量。我不想把我的AWS密钥放在Git中。我的第一个问题是,我无法获得任何环境变量,即使是硬编码的,也无法在构建系统中显示,我的第二个问题是我不想像下面那样硬编码它们(foo,baz)

在阅读文档时,我似乎更想这样做:

machine:
  services:
    - docker

dependencies:
  cache_directories:
    - elasticsearch-2.4.0
  override:
    - docker info
    - docker build --rm=false -t myapp/im . :
        environment:
          foo: bar
          baz: 123
          AWSKEY: $awskey
          AWSSECRET: $awssecret
是的,这看起来很有希望

但是在Dockerfile中我可以

运行printenv

我没有看到任何一个环境变量

有人能告诉我我做错了什么吗?我的想法全错了吗?在circle ci中的环境变量面板的构建阶段尝试使用AWS creds是否可行?(如下图所示)


在Dockerfile中,您可以添加
ENV AWSKEY@value@
在构建容器之前,只需将
@value@
替换为环境变量
$AWSKEY

machine:
  services:
    - docker

dependencies:
  cache_directories:
    - elasticsearch-2.4.0
  override:
    - docker info
    - docker build --rm=false -t myapp/im . :
        environment:
          foo: bar
          baz: 123
          AWSKEY: $awskey
          AWSSECRET: $awssecret