在Docker容器中获取弹性beanstalk环境variables

所以,我试图不把敏感信息放在dockerfile上。 一个合乎逻辑的方法就是将ebsconfiguration(GUI)中的creds作为ENVvariables。 但是,docker build似乎无法访问ENVvariables。 有什么想法吗?

在这里输入图像说明

FROM jupyter/scipy-notebook USER root ARG AWS_ACCESS_KEY_ID RUN echo {$AWS_ACCESS_KEY_ID} 

放置敏感信息(用于Dockerfile)可以用于允许图像的特定步骤运行(构build时间),或者使得生成的图像在运行时仍然具有该秘密。
对于运行时,如果您可以在群集模式configuration中使用最新的docker 1.13,则可以通过这种方式pipe理机密

但是第一种情况(构build时间)通常是将凭证传递给http_proxy ,可以通过--build-arg来完成:

  docker build --build-arg HTTP_PROXY=http://... 

该标志允许您在Dockerfile的RUN指令中传递像常规环境variables一样访问的构build时variables。
而且,这些值不会像ENV值一样保留在中间或最终图像中。

在这种情况下,你不会使用ENV , 但是ARG

 ARG <name>[=<default value>] 

ARG指令定义了一个variables,用户可以使用--build-arg <varname>=<value>标志在构build器中通过docker build命令将其传递给构build器

我假设对于每个部署,您都会为该部署创build一个具有正确的docker image标记的新Dockerrun.aws.json文件。 在部署阶段,您可以注入环境值,然后由EB代理在docker run命令中使用。 所以你的docker集装箱现在可以访问这些环境variables。