Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
はじめてのCF Buildpack
UDCP Kazuto Kusama @jacopen
自己紹介
•

草間 一人(くさま かずと)

•

UDCPメンバー
!

Twitter: @jacopen
• Facebook: jacopen
•
呉鎮守府
UDCP
• Blog (U1TB)
!
!
!
!
!

• 自転車イベント参加
!
!

• おいしいものを食べる
今日のお題
‣ CF v2のBuildpackを触ってみよう!
‣ 経験豊富な人には既知の話が多いかも。
‣ v1ばっかりでv2あんまり経験無いよ、という人向け
Buildpackとは
• Herokuが作った、任意の言
語/フレームワークを利用
できるようになる仕組み
• HerokuのCeder Stackで対応
している言語(Ruby, Java,
Clojure, Node.js, Scala)...
$ heroku create myapp --buildpack https://github.com/heroku/heroku-buildpack-ruby
Third-Party buildpacks
ということで
• とても便利なのでCloud FoundryもBuildpack使えるようにし
たよ! ・・・というのが、v2 CFの大きな特徴。
v2でbuildpackを使ってみよう!
CF PHP & Apache
Buildpack
• mod_phpかphp_fpmかを選べる
• Apache 2.2か2.4かを選べる
CF PHP Example
WordPress
• CF PHP Buildpackで上手く動く
ように作られたWordPressのサ
ンプル。
• といっても大したことはして
いなくて、以下のようなディ
レクトリ分けをしただけ
• Buil...
$ git clone git@github.com:dmikusa-pivotal/cf-ex-worpress.git
$ cd cf-ex-worpress/
$ cf push --buildpack=https://github.co...
_人人人人人人_
> 動かない <
 ̄Y^Y^Y^Y^Y ̄
$ cf logs wpjacopen
VCAP_SERVICES={“mysql-5.5”:[{“name”:”mysqlwpjacopen”,”label”:”mysql-5.5”,”tags":["relational"],"plan":...
その他のCF向けBuildpack
• java buildpack
• https://github.com/cloudfoundry/java-buildpack

• cloudfoundry-buildpack-java
• https...
Community Buildpack
•
•
•
•
•
•
•
•
•
•
•
•
•
•

https://github.com/glyn/virgo-buildpack
https://github.com/jmcc0nn3ll/jet...
HerokuのBuildpackは使えるの?
• 使えるものは使える!
動くことが確認されているHeroku buildpack
•
•
•
•

https://github.com/heroku/heroku-buildpack-php
https://github.com/iphoting/heroku-bu...
自分でBuildpackを作る!
• ほんとはここでこんなBuildpack作ったぜ(ドヤッ)って言い
たかったんだけど・・・

• 時間がありませんでした/(^o^)\

• というか欲しいBuildpack既にあるんだもん・・・
Buildpackの簡単な仕組み解説
• Buildpackの実体は3つのスクリプト
• compile
• detect
• release
compile
• 言語の実行環境をセットアップするためのスクリプト
• バイナリをダウンロードしてきて配置するスクリプトが多い
• PHP buildpackではpythonを使っているが、シェルスクリプト
等でもOK
detect
• buildpackの実行条件を指定するスクリプト。
• PHP buildpackの場合、.phpスクリプトがあればOK。
• OKならばexit 0、NGならばexit 1を返すという決まり。
release
• なんかメタデータとか入れるらしい
Buildpackを自作するための資料
• Heroku reference
• https://devcenter.heroku.com/articles/buildpack-api

• heroku-buildpack-ffmpeg
• h...
質問とかあれば
はじめてのCF buildpack
Upcoming SlideShare
Loading in …5
×

はじめてのCF buildpack

8,152 views

Published on

Cloud Foundryでも使えるようになったHeroku Buildpackについて解説します。

Published in: Technology

はじめてのCF buildpack

  1. 1. はじめてのCF Buildpack UDCP Kazuto Kusama @jacopen
  2. 2. 自己紹介 • 草間 一人(くさま かずと) • UDCPメンバー ! Twitter: @jacopen • Facebook: jacopen •
  3. 3. 呉鎮守府
  4. 4. UDCP • Blog (U1TB) ! ! ! ! ! • 自転車イベント参加 ! ! • おいしいものを食べる
  5. 5. 今日のお題 ‣ CF v2のBuildpackを触ってみよう! ‣ 経験豊富な人には既知の話が多いかも。 ‣ v1ばっかりでv2あんまり経験無いよ、という人向け
  6. 6. Buildpackとは • Herokuが作った、任意の言 語/フレームワークを利用 できるようになる仕組み • HerokuのCeder Stackで対応 している言語(Ruby, Java, Clojure, Node.js, Scala)は、 Buildpackで実装されている
  7. 7. $ heroku create myapp --buildpack https://github.com/heroku/heroku-buildpack-ruby
  8. 8. Third-Party buildpacks
  9. 9. ということで • とても便利なのでCloud FoundryもBuildpack使えるようにし たよ! ・・・というのが、v2 CFの大きな特徴。
  10. 10. v2でbuildpackを使ってみよう!
  11. 11. CF PHP & Apache Buildpack • mod_phpかphp_fpmかを選べる • Apache 2.2か2.4かを選べる
  12. 12. CF PHP Example WordPress • CF PHP Buildpackで上手く動く ように作られたWordPressのサ ンプル。 • といっても大したことはして いなくて、以下のようなディ レクトリ分けをしただけ • Buildpackのコンフィグを オーバーライドするconfig ディレクトリ • PHPやHTMLが入るhtdocs ディレクトリ
  13. 13. $ git clone git@github.com:dmikusa-pivotal/cf-ex-worpress.git $ cd cf-ex-worpress/ $ cf push --buildpack=https://github.com/dmikusa-pivotal/cf-phpapache-buildpack.git
  14. 14. _人人人人人人_ > 動かない <  ̄Y^Y^Y^Y^Y ̄
  15. 15. $ cf logs wpjacopen VCAP_SERVICES={“mysql-5.5”:[{“name”:”mysqlwpjacopen”,”label”:”mysql-5.5”,”tags":["relational"],"plan":"default","credentials": {"name":"dc75750d21df148fc9942cd9b4e996229","hostname":"xxx.xxx.xxx.xxx"," host":"xxx.xxx.xxx.xxx","port": 3307,"user":"xxxxxxxxxxx","username":"xxxxxxxxxxx","password":"xxxxxxxxxxxxxx xxx","uri":"mysql://xxxxxxxxxxxxx:xxxxxxxx@xxx.xxx.xxx.xxx:3307/ dc75750d21df148fc9942cd9b4e996229"}}]}
  16. 16. その他のCF向けBuildpack • java buildpack • https://github.com/cloudfoundry/java-buildpack
 • cloudfoundry-buildpack-java • https://github.com/cloudfoundry/cloudfoundry-buildpack-java • もうメンテされてない?
 • ruby buildpack • https://github.com/cloudfoundry/heroku-buildpack-ruby
 • nodejs buildpack • https://github.com/cloudfoundry/heroku-buildpack-nodejs
 • ibm-websphere-liberty-buildpack • https://github.com/cloudfoundry/ibm-websphere-liberty-buildpack • 良く分からない\(^o^)/
  17. 17. Community Buildpack • • • • • • • • • • • • • • https://github.com/glyn/virgo-buildpack https://github.com/jmcc0nn3ll/jetty-buildpack https://github.com/dmikusa-pivotal/cf-php-apache-buildpack https://github.com/mstine/heroku-buildpack-clojure https://github.com/BrianMMcClain/heroku-buildpack-haskell https://github.com/michaljemala/cloudfoundry-buildpack-go https://github.com/hmalphettes/heroku-buildpack-go https://github.com/Orange-OpenSource/java-buildpack/blob/jonas/docs/ container-jonas.md https://github.com/dmikusa-pivotal/cf-test-buildpack https://github.com/cloudfoundry-community/nginx-buildpack https://github.com/cloudfoundry-community/.net-buildpack https://github.com/ephoning/heroku-buildpack-python https://github.com/joshuamckenty/heroku-buildpack-python https://github.com/cloudfoundry-community/strongloop-suite-buildpack
  18. 18. HerokuのBuildpackは使えるの? • 使えるものは使える!
  19. 19. 動くことが確認されているHeroku buildpack • • • • https://github.com/heroku/heroku-buildpack-php https://github.com/iphoting/heroku-buildpack-php-tyler https://github.com/heroku/heroku-buildpack-python https://github.com/heroku/heroku-buildpack-scala • with https://github.com/jbayer/hello-scala
  20. 20. 自分でBuildpackを作る!
  21. 21. • ほんとはここでこんなBuildpack作ったぜ(ドヤッ)って言い たかったんだけど・・・ • 時間がありませんでした/(^o^)\ • というか欲しいBuildpack既にあるんだもん・・・
  22. 22. Buildpackの簡単な仕組み解説 • Buildpackの実体は3つのスクリプト • compile • detect • release
  23. 23. compile • 言語の実行環境をセットアップするためのスクリプト • バイナリをダウンロードしてきて配置するスクリプトが多い • PHP buildpackではpythonを使っているが、シェルスクリプト 等でもOK
  24. 24. detect • buildpackの実行条件を指定するスクリプト。 • PHP buildpackの場合、.phpスクリプトがあればOK。 • OKならばexit 0、NGならばexit 1を返すという決まり。
  25. 25. release • なんかメタデータとか入れるらしい
  26. 26. Buildpackを自作するための資料 • Heroku reference • https://devcenter.heroku.com/articles/buildpack-api
 • heroku-buildpack-ffmpeg • https://github.com/shunjikonishi/heroku-buildpack-ffmpeg
 構造がシンプルなので、動作の把握にちょうど良いかも
  27. 27. 質問とかあれば

×