2017-05-20 54 views
5

我们有一个运行MongoDB的Java应用程序,每个应用程序位于不同的Bluemix容器中。两者都是SINGLE Bluemix容器。Bluemix创建连接到另一个容器的容器组

我们希望使用我们的子域之一:https://subdomain.mydomain.com来服务Java应用程序,该子域已指向Bluemix。我们该怎么做?

我们的方法

因为Java容器需要链接到蒙戈容器,我们创建了两个容器编程(我们没有在UI找到一个方法来链接到另一个容器的容器)像这样:

sudo bluemix ic run --name mongo-container -p 27017 -m 128 registry.eu-gb.bluemix.net/mycompany/mongo 

sudo bluemix ic run --name java-container --link mongo-container:mongo -p 8080 -m 128 registry.eu-gb.bluemix.net/mycompany/java 

这个效果很好,但Java应用程序只有通过一个丑陋Blumix IP访问,而不是通过https://subdomain.mydomain.com因为我们想要的。

如何使用Bluemix容器GROUPSCALABLE容器在UI中)?

再次,我们不知道如何集装箱从UI链接,所以它应该像

sudo bluemix ic group-create --auto --name java-scalable -p 8080 -m 128 --hostname subdomain --domain mydomain.com registry.eu-gb.bluemix.net/mycompany/java 

according to the documentation我们不能容器组链接到一个容器,因为没有--link参数。

回到最初的问题。我们如何使用https://subdomain.mydomain.com来为Java应用程序提供服务?

回答

2

link选项基本上是在一个容器中创建环境变量以达到另一个容器。

您可以对Bluemix中的可缩放容器执行相同的操作。

下面是我做的步骤:

1)创建MongoDB的容器:

bx ic run --name ads-mongo -p 27017 -m 128 registry.ng.bluemix.net/namespace/mongo 

2)检查MongoDB的容器找到私有IP地址:

bx ic inspect ads-mongo 

的私有IP将在输出结束时添加,为简洁起见,我仅添加以下输出的一部分:

"Ports": { 
       "27017/tcp": [ 
        { 
         "HostIp": "172.31.0.235", 
         "HostPort": "27017" 
        } 
       ] 
      }, 
      "PublicIpAddress": "" 

3)运行您的可伸缩容器并包含一个或多个包含MongoDB凭证的环境变量。确保你改变你的Java代码从您传递到可扩展的容器中的环境变量的凭据:

bx ic group-create --name ads-node -e "MONGO_URI=mongodb://172.31.0.235:27017" -p 3000 -m 128 --hostname ads-node --domain mybluemix.net registry.ng.bluemix.net/namespace/ads-nodebx 

在我的测试我使用的Node.js应用程序,它读取MongoDB的的MONGO_URI环境变量证书。

如果需要,您也可以为您的MongoDB容器指定一个公共IP,最终结果应该类似。我看到的唯一区别是,您可以使用mongo命令行或其他工具访问数据库以连接到数据库。

2

因此,遵循第二种方法,您可能能够在创建Bluemix容器组之前创建MongoDB服务。在Bluemix集装箱集团的创作,你必须在UI下高级选项部分结合现有的服务能力:

enter image description here

您也可以选择Container创建过程中使用自定义域,如果您有之前创建一个:

enter image description here

在这种情况下,你将有一个自定义域名还包括现有服务的容器。

您可以在Container Integration Documentation中找到有关绑定现有服务的更多信息。您可以在Updating Apps Documentation中了解有关在Bluemix中创建自定义域的更多信息。

相关问题