Flask / Paramiko应用程序中无法通过docker-compose在.env中使用多行Pem密钥

时间:2018-11-16 17:33:25

标签: docker flask docker-compose environment-variables paramiko

我在Flask应用程序中使用Paramiko在外部服务器上运行一些命令。我正在使用docker-compose进行本地开发,并且我的暂存/生产正在使用kubernetes。

我想将我的pem密钥存储为环境变量,但是我正在努力使其正常工作。我尝试了以下各种排列,但没有用。我还在论坛上阅读过,其他人也发现了同样的问题,但是不清楚他们是否(或如何)解决了这个问题。这就是我到目前为止所拥有的...

我将我的pem密钥存储在.env文件中:

PEM_KEY="-----BEGIN RSA PRIVATE KEY-----
I CXYEpAIBAAKCAQEAj7sLQn55KXRyfT0h/f5E1lXX9fJ1NbBA7zcKkCCIv2uXY0fWZbInQoAT1DMk
2OBi1PrJJcz6E5t1u2gwKomz612d24xQeqiqDN1eEX4ab2EFzTjxw57NqpIJsrIY6H68mNn3Tp0i
....
-----END RSA PRIVATE KEY-----"

上面显示了用双引号引起来的密钥,但是我尝试了其他变体,包括单引号,无引号,在行之间添加\ n等无济于事。

我的docker-compose如下:

---
version: '2'
services:   
    web:        
        build:
            context: .
            dockerfile: Dockerfile.web
        restart: always
        environment:  
            - PEM_KEY=${PEM_KEY}

为了验证,我正在将我的密钥打印到屏幕上,但是无论我尝试什么,我都会得到部分密钥,例如:

-----BEGIN RSA PRIVATE KEY-----

...或者我无法删除换行符:

-----BEGIN RSA PRIVATE KEY-----\nICXYEpAIBAAKCAQEAj7sLQn55KXRyfT0h/f5E1lXX9fJ1NbBA7zcKkCCIv2uXY0fWZbInQoAT1DMk\n2OBi1PrJJcz6E5t1u2gwKomz612d24xQeqiqDN1eEX4ab2EFzTjxw57NqpIJsrIY6H68mNn3Tp0i\n....\n-----END RSA PRIVATE KEY-----

任何有关解决此问题的建议将不胜感激。

谢谢。

0 个答案:

没有答案