2016-06-13 51 views
1

我创建了一个简单的应用程序,由两个容器组成的nginx和python烧瓶组成,我可以使用docker-compose将其部署到bluemix。如何在docker-port组合上启用bluemix上的https

泊坞窗撰写文件是泊坞窗,撰写-bluemix.yml

flask: 
    image: registry.ng.bluemix.net/namespace/simple.flask 
    restart: always 
    expose: 
    - "8000" 
    command: /usr/local/bin/gunicorn -w 2 -b :8000 app:app 

nginx: 
    image: registry.ng.bluemix.net/namespace/simple.nginx 
    restart: always 
    ports: 
     - "80:80" 
    links: 
    - flask:flask 

有一次,我分配一个IP nginx的容器它的工作原理,在这我可以像这样访问它,

curl http://ip/flask-api/v0.01/hello 

和正确的响应返回

{"status": "hello"} 

如何为此应用启用https?必须通过提供nginx容器自签名证书来完成,或者我可以利用bluemix为容器提供一个https://xxx.mybluemix.net地址吗?如果是这样,怎么样?

回答

1

如果你想Bluemix分配像https://xxx.mybluemix.net的路线,那么你需要部署可扩展的集团而不是集装箱单。可扩展组可以分配允许SSL(https://)访问的路由。

我不相信你可以用Docker Compose来做这件事,因为Docker并不知道Bluemix中的容器组功能。您可以使用IBM容器扩展到Cloud Foundry的CLI从命令行或从你选择的DevOps的管道工具,用下面的命令做到这一点:

cf ic group create --name simple-flask -m 64 -p 8000 --min 1 --max 3 --desired 2 registry.ng.bluemix.net/namespace/simple-flask:latest 
cf ic route map -n simple-flask -d mybluemix.net simple-flask 

在这一点上,你不需要nginx因为Bluemix会在您的容器组前放置一个负载平衡器,以便将流量引导至其中的容器。您可以通过以下方式获得:

https://simple-flask.mybluemix.net/flask-api/v0.01/hello 

这应该会给你你要找的。

〜jr