【问题标题】:How to enable https on bluemix with docker-compose如何使用 docker-compose 在 bluemix 上启用 https
【发布时间】:2016-06-13 13:12:43
【问题描述】:

我创建了一个由 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

一旦我为 nginx 容器分配了一个 ip,它就可以工作,因为我可以像这样访问它,

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

并返回正确的响应

{"status": "hello"}

如何为此应用启用 https?必须通过提供 nginx 容器自签名证书来完成,还是可以利用 bluemix 为容器提供 https://xxx.mybluemix.net 地址?如果有,怎么做?

【问题讨论】:

    标签: https containers ibm-cloud docker-compose


    【解决方案1】:

    如果您希望 Bluemix 分配像 https://xxx.mybluemix.net 这样的路由,那么您需要部署 Scalable Group 而不是 Single Container。可以为可扩展组分配允许 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      相关资源
      最近更新 更多