Curl命令的基本validation成为openshift的秘密

我有一个Apache Web服务器,有一个基本身份validation保护的URL前

www.example.com/protected/

在我的Dockerfile中的Openshift当我build立一个图像我有curl命令下载文件。 现在使用基本身份validation时,使用基本身份validation的curl命令看起来像这样

curl -u用户名:密码http://www.example.com/protected/

问题是我不想拥有在Dockerfile中公开的用户名:密码。 相反,我想隐藏在Openshift / Kubernetes秘密凭据

正常情况下,在beginig中,用于秘密定义的openshift yaml文件看起来像这样

kind: Secret apiVersion: v1 metadata: name: secret-name data: 

问题:如何添加基本身份validation凭证的创build适当的秘密文件,然后如何从Dockerfile中引用它?

看看构build的秘密 ,并阅读他们如何与Docker策略一起工作 。

为了在curl命令中使用这个秘密,我build议利用-K选项和秘密path。

最终创造了这个秘密(yaml格式)。 .curl-secret文件中的数据应该是base64编码,在Dockerfile的curl命令中进行解码(进一步向下)。

 apiVersion: v1 data: .curl-secret: <YOUR_SECRET_HERE> kind: Secret metadata: creationTimestamp: null name: curl-secret type: Opaque 

然后在构buildconfiguration中添加对秘密的引用。

  source: type: Git git: uri: 'https://GITHUB.URL' ref: master secrets: - secret: name: curl-secret 

然后在Dockerfile中复制这个文件,使用它然后删除它。

 COPY .curl-secret /tmp curl -u $(cat /tmp/.curl-secret) -s -o /output.file rm /tmp/.curl-secret