Slide 1

Slide 1 text

Deploying Docker Application to DaaS by @deeeet

Slide 2

Slide 2 text

Taichi Nakashima @deeeet ! • http://deeeet.com/writing (SOTA) • tcnksm/rbdock • Docker ދͷר, Serf ދͷר

Slide 3

Slide 3 text

Rails Application Λ Docker ίϯςφʹͷͤͯ Docker as a Service (DaaS) ʹσϓϩΠ͢Δ

Slide 4

Slide 4 text

DaaS Docker as a Service Docker ϗεςΟϯάαʔϏε https://orchardup.com/ https://orchardup.com/

Slide 5

Slide 5 text

DaaS Rails Application Λ Docker ίϯςφʹͷͤͯ Docker as a Service (DaaS) ʹσϓϩΠ͢Δ https://orchardup.com/ DaaS https://orchardup.com/ https://orchardup.com/

Slide 6

Slide 6 text

DaaS Rails Application Λ Docker ίϯςφʹͷͤͯ Docker as a Service (DaaS) ʹσϓϩΠ͢Δ https://orchardup.com/ DaaS https://stackdock.com/

Slide 7

Slide 7 text

DaaS Rails Application Λ Docker ίϯςφʹͷͤͯ Docker as a Service (DaaS) ʹσϓϩΠ͢Δ https://orchardup.com/ DaaS http://www.tutum.co/

Slide 8

Slide 8 text

Orchard • ؆୯ͳίϚϯυϥΠϯϥούʔΛ௨ͯ͡ ϩʔΧϧ͔Βಉ͡ίϚϯυୟ͚ͩ͘Ͱ࢖͑Δ • 1࣌ؒ1ԁ/1݄1000ԁఔ౓Ͱ࢖͑Δ (512MB RAM/20GB SSD) • Fig (ίϯςφؒͷ࿈ܞΛࢧԉ͢Δπʔϧ)ͷ ։ൃΛ͍ͯ͠Δ

Slide 9

Slide 9 text

Environment • OSX • boot2docker • mkwiatkowski/todo-rails4-angularjs (Rails) worked with ruby2.0.0p-247, postgresql (DB)

Slide 10

Slide 10 text

Overview Postgresql Container Rails Container :3000 5432:5432

Slide 11

Slide 11 text

Dockerfile (Rails) $ gem install rbdock $ rbdock 2.0.0-p247 --app todo-rails4-angularjs https://github.com/tcnksm/rbdock

Slide 12

Slide 12 text

development: adapter: postgresql template: template0 encoding: unicode database: todo_rails4_angularjs_development pool: 5 username: docker password: docker host: <%= ENV.fetch('DB_PORT_5432_TCP_ADDR') %> port: <%= ENV.fetch('DB_PORT_5432_TCP_PORT') %> http://deeeet.com/writing/2014/03/20/docker-link-container/ config/database.yml

Slide 13

Slide 13 text

Development at local

Slide 14

Slide 14 text

$ docker run -d -p 5432:5432 \ -e POSTGRESQL_USER=docker \ -e POSTGRESQL_PASS=docker \ -name pg \ orchardup/postgresql Postgresql Container

Slide 15

Slide 15 text

$ docker run -d -p 5432:5432 \ -e POSTGRESQL_USER=docker \ -e POSTGRESQL_PASS=docker \ -name pg \ orchardup/postgresql Rails Container $ docker run -i t —p 3000:3000 \ -link pg:db \ tcnksm/rails \ 'rake db:create && rake db:migrate && rails server'

Slide 16

Slide 16 text

http://localhost:3000

Slide 17

Slide 17 text

Development at local • มߋ͕ೖͬͨΒ build && run (+Guard) • VolumesػೳΛ࢖͑͹ϦΞϧλΠϜߋ৽ (+ ONBUILD)

Slide 18

Slide 18 text

Docker Share (ngrok) $ orchard hosts create Orchard username: tcnksm Password: Default host running at 162.243.106.93 $ ngrok 3000 http://36a98c94.ngrok.com -> 127.0.0.1:3000

Slide 19

Slide 19 text

http://36a98c94.ngrok.com

Slide 20

Slide 20 text

Deploy to Orchard

Slide 21

Slide 21 text

Login to Orchard $ orchard hosts create Orchard username: tcnksm Password: Default host running at 162.243.106.93

Slide 22

Slide 22 text

$ orchard docker run -d -p 5432:5432 \ -e POSTGRESQL_USER=docker \ -e POSTGRESQL_PASS=docker \ -name pg \ orchardup/postgresql Postgresql Container

Slide 23

Slide 23 text

$ docker run -d -p 5432:5432 \ -e POSTGRESQL_USER=docker \ -e POSTGRESQL_PASS=docker \ -name pg \ orchardup/postgresql Rails Container $ orchard docker run -i t —p 80:3000 \ -link pg:db \ tcnksm/rails \ 'rake db:create && rake db:migrate && rails server'

Slide 24

Slide 24 text

http://162.243.106.93

Slide 25

Slide 25 text

Conclusion • DaaSʹRails ApplicationΛDeploy • Orchard ͸ͱͯ΋γϯϓϧ -> ϩʔΧϧ͔Βಉ͡ίϚϯυΛୟ͚ͩ͘

Slide 26

Slide 26 text

Future • Herokuʹpushͱൺ΂ͯԿ͕ྑ͍ͷ? -> DockerͰ΍Δར఺ͷ௥ٻʢ޷͖উखͰ͖Δ+αʣ • ίϯςφ্ཱͪ͛ͨޙ͸? -> ࣮ࡍͷӡ༻

Slide 27

Slide 27 text

Thanks