如果我在本地有一个docker-compose.yml文件,而一个包含对我的本地环境有效的机密和变量的.env文件,我将使用docker-compose build
构建堆栈,然后将堆栈推入使用docker-compose push
的图像注册表。
这是否意味着从该存储库中进行docker-compose pull && docker-compose up
的任何其他环境都将接收到具有在映像内部已经可用的私有环境变量的映像(其中可能包含访问令牌之类的秘密内容)?
换句话说:.env文件中定义的内容在映像生成时或容器运行时可用吗?
答案 0 :(得分:1)
这取决于您的Dockerfile,即您定义如何构建映像的方式。
如果在构建阶段(在Dockerfile中)不小心将.env
文件复制到映像中,则可能会上传该文件。
如果仅将其用作docker-compose文件(env_file
参数)的一部分,则变量将仅在运行时传递到容器。在这种情况下,无论您决定运行这些容器,都需要确保.env
文件存在。