有时在构建Docker镜像时需要使用敏感数据.例如,用于下载远程文件或从私有存储库安装依赖项的API令牌或SSH密钥.可能需要分发结果图像并省略用于构建它的敏感凭证.如何才能做到这一点?
我见过docker-squash,可以将多个图层压成一个,从最终图像中删除任何已删除的文件.但是有更惯用的方法吗?
关于惯用方法,我不确定,尽管 docker 还很年轻,有太多习语。
然而,我们公司也遇到了同样的问题。我们得出以下结论,尽管这些是我们的最大努力,而不是既定的 docker 最佳实践。
1) 如果您在构建时需要这些值:在构建上下文中提供一个属性文件,其中包含可以在构建时读取的值,然后可以在构建后删除该属性文件。这不是那么便携,但可以完成工作。
2) 如果您在运行时需要这些值:将值作为环境变量传递。它们对于有权访问盒子上 ps 的人来说是可见的,但这可以通过 SELinux 或其他方法进行限制(老实说,我不知道这个过程,我是开发人员,运营团队将处理该部分)。
归档时间: |
|
查看次数: |
3323 次 |
最近记录: |