如何使用秘密.env var而不将其暴露在存储库中

时间:2019-07-26 09:16:42

标签: docker kubernetes dockerfile google-kubernetes-engine

我有一个运行在Dockercontainer中的pipenv环境,我需要来自.env文件的一些变量。

该容器在Kubernetes容器中运行。

我无法将.env文件上传到存储库,因为.env中的变量是秘密的。

我的问题是,是否有办法将我的变量从机密文件获取到.env文件。

我尝试在Dockerfile中创建.env文件,但遇到了一个问题,即我无法弄清楚如何在Dockerfile中访问变量。

这是我在Dockerfile中尝试过的方法:

#create .env file for pipenv
RUN echo DATABASE_URL=$DATABASE_URL > .env 
RUN echo API_EMAIL=$API_EMAIL>> .env
RUN echo API_PASSWORD=$API_PASSWORD>> .env

将三个变量设置为一个秘密,并将该秘密引用到pod。不幸的是,这些变量不可访问。

有人知道如何将秘密中的变量保存到容器中的.env文件中吗?谢谢你的任何想法

1 个答案:

答案 0 :(得分:1)

在启动实际的容器进程之前,将从Dockerfile向.env文件添加条目的命令移至容器启动​​脚本。

OR

您可以从key = value对创建一个秘密对象,并将其作为.env文件装入容器中