Bluemix の Cloud Foundry のベース部分は、Docker をサポートしていて、オプション指定でDockerコンテナを起動できる。[1] それじゃ、Bluemix だって同じコアを使っているんだし、"bx ic ..." で起動するIBMコンテナを利用しないでも、CFの機能で、Dockerコンテナを起動できるんじゃないの? しかし、Bluemix のマニュアルには記載が無いし、ダメもと、とコマンドを投入したら、出来ちゃいました(笑) マニュアルに記載が無いため、Cloud Foundry のコアのお陰で、たまたま動作しただけの非サポートの機能かもしれませんので、ご留意願います。
DockerHub に登録されている コンテナ・イメージ cloudfoundry/test-app を Bluemixで起動したログです。
imac:bluemix-test maho$ bx cf push takara-doc -m 128M --docker-image cloudfoundry/test-app
'cf push takara-doc -m 128M --docker-image cloudfoundry/test-app' を起動しています...
takara9@gmail.com としてアプリ takara-doc を組織 takara9@gmail.com / スペース dev 内に作成しています...
OK
経路 takara-doc.mybluemix.net を作成しています...
OK
takara-doc.mybluemix.net を takara-doc にバインドしています...
OK
takara9@gmail.com として組織 takara9@gmail.com / スペース dev 内のアプリ takara-doc を開始しています...
Creating container
Successfully created container
Staging...
Staging process started ...
Staging process finished
Exit status 0
Staging Complete
Destroying container
Successfully destroyed container
1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 1 個のインスタンスが実行中です
アプリが開始されました
OK
アプリ takara-doc はコマンド `/test-app ` を使用して開始されました
takara9@gmail.com として組織 takara9@gmail.com / スペース dev 内のアプリ takara-doc の正常性と状況を表示しています...
OK
要求された状態: started
インスタンス: 1/1
使用: 128M x 1 インスタンス
URL: takara-doc.mybluemix.net
最終アップロード日時: Fri Aug 4 02:48:18 UTC 2017
スタック: cflinuxfs2
ビルドパック: unknown
状態 開始日時 CPU メモリー ディスク 詳細
# 0 実行 2017-08-04 11:48:45 AM 0.0% 128M の中の 0 1G の中の 0
Bluemix ウェブ管理画面コピーです。ランタイムのビルドパックが、"noruntime" になっています(笑)
下記、PUSH時のログで、17秒で完了しています。 Buildpack の様に、Detect, Compile, Release のステップが無いので、Buildpack より格段に早いです。
2017-08-04T12:12:48.94+0900 [APP/PROC/WEB/0] OUT test-app. Says Hello. on index: 0
2017-08-04T12:12:49.95+0900 [APP/PROC/WEB/0] OUT test-app. Says Hello. on index: 0
2017-08-04T12:12:50.47+0900 [API/8] OUT Updated app with guid 000423dc-a2f5-48fe-9ade-1da35dadab93 ({"name"=>"takara-doc", "memory"=>128, "diego"=>true, "docker_image"=>"cloudfoundry/test-app"})
2017-08-04T12:12:50.96+0900 [APP/PROC/WEB/0] OUT test-app. Says Hello. on index: 0
2017-08-04T12:12:51.83+0900 [API/5] OUT Updated app with guid 000423dc-a2f5-48fe-9ade-1da35dadab93 ({"state"=>"STOPPED"})
2017-08-04T12:12:51.86+0900 [CELL/0] OUT Exit status 0
2017-08-04T12:12:51.85+0900 [APP/PROC/WEB/0] OUT Exit status 143
2017-08-04T12:12:51.90+0900 [CELL/0] OUT Destroying container
2017-08-04T12:12:45.96+0900 [APP/PROC/WEB/0] OUT test-app. Says Hello. on index: 0
2017-08-04T12:12:54.02+0900 [API/0] OUT Updated app with guid 000423dc-a2f5-48fe-9ade-1da35dadab93 ({"state"=>"STARTED"})
2017-08-04T12:12:55.18+0900 [CELL/0] OUT Creating container
2017-08-04T12:12:53.86+0900 [CELL/0] OUT Successfully destroyed container
2017-08-04T12:13:05.85+0900 [CELL/0] OUT Starting health monitoring of container
2017-08-04T12:13:05.85+0900 [CELL/0] OUT Successfully created container
2017-08-04T12:13:06.27+0900 [APP/PROC/WEB/0] OUT {"timestamp":"1501816386.260451794","source":"test-app","message":"test-app.test-app.up","log_level":1,"data":{"port":"8080"}}
2017-08-04T12:13:06.27+0900 [APP/PROC/WEB/0] OUT {"timestamp":"1501816386.256762028","source":"test-app","message":"test-app.test-app.starting","log_level":1,"data":{"ports":["8080"]}}
2017-08-04T12:13:07.27+0900 [APP/PROC/WEB/0] OUT test-app. Says Hello. on index: 0
2017-08-04T12:13:08.17+0900 [CELL/0] OUT Container became healthy
2017-08-04T12:13:08.27+0900 [APP/PROC/WEB/0] OUT test-app. Says Hello. on index: 0
2017-08-04T12:13:09.28+0900 [APP/PROC/WEB/0] OUT test-app. Says Hello. on index: 0
参考資料
[1] Cloud Foundry Documentation Deploy an App with Docker https://docs.cloudfoundry.org/devguide/deploy-apps/push-docker.html