如何使用docker-compose在bluemix上启用https

时间:2016-06-13 13:12:43

标签: https containers ibm-cloud docker-compose

我创建了一个简单的应用程序,由nginx和python flask组成,由两个容器组成,我可以使用docker-compose将其部署到bluemix。

docker compose文件是 docker-compose-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 个答案:

答案 0 :(得分:1)

如果您希望Bluemix分配类似https://xxx.mybluemix.net的路由,则需要部署可扩展组而不是单个容器。可以为可伸缩组分配允许SSL(https://)访问的路由。

我不相信您可以使用Docker Compose执行此操作,因为Docker不了解Bluemix中的容器组功能。您可以使用Cloud Foundry CLI的IBM Container扩展从命令行或使用以下命令从您选择的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