Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Railsの開発環境にDockerを導入した話
Search
Makoto Henmi
January 27, 2018
Technology
2
1.1k
Railsの開発環境にDockerを導入した話
第21回 岡山Ruby, Ruby on Rails勉強会で話をしたRailsの開発環境にDockerを導入した話の資料です。
Makoto Henmi
January 27, 2018
Tweet
Share
More Decks by Makoto Henmi
See All by Makoto Henmi
ちいさくはじめるBacklog【令和最新版】
makowis
0
230
ちいさくはじめるBacklog
makowis
2
270
Firebase Hostingにシングルページアプリケーションをデプロイしてみよう #gbdaitokai
makowis
1
840
ノベルティのパッケージング
makowis
1
390
スパロボ遍歴
makowis
1
120
昔懐かしいインターネットの風物詩を最近の技術で作る話
makowis
1
4k
5分でわかるホワイトボードチャレンジ
makowis
1
860
ぼくらのかんがえたさいきょうのリモート雑談環境 #oso2018
makowis
0
1.9k
朝会をやめた話
makowis
0
5.8k
Other Decks in Technology
See All in Technology
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
0
160
RGBに陥らないために -プロダクトの価値を届けるまで-
righttouch
PRO
0
110
ABEMAのバグバウンティの取り組み
kurochan
1
680
スピンアウト講座01_GitHub管理
overflowinc
0
1.3k
Phase03_ドキュメント管理
overflowinc
0
2.4k
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
130
Phase04_ターミナル基礎
overflowinc
0
2.2k
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
4
370
Kubernetesの「隠れメモリ消費」によるNode共倒れと、Request適正化という処方箋
g0xu
0
110
スピンアウト講座03_CLAUDE-MDとSKILL-MD
overflowinc
0
1.2k
How to install a gem
indirect
0
1.3k
Kiroで見直す開発プロセスとAI-DLC
k_adachi_01
0
130
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Believing is Seeing
oripsolob
1
94
Darren the Foodie - Storyboard
khoart
PRO
3
3k
Optimizing for Happiness
mojombo
378
71k
30 Presentation Tips
portentint
PRO
1
260
How to Talk to Developers About Accessibility
jct
2
160
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
160
AI: The stuff that nobody shows you
jnunemaker
PRO
3
480
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
My Coaching Mixtape
mlcsv
0
85
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
How to make the Groovebox
asonas
2
2k
Transcript
Rails։ൃڥʹ DockerΛಋೖͨ͠ ୈ21ճ ԬࢁRuby, Ruby on Railsษڧձ ҳݟ(@mako_wis)
ࣗݾհ w ҳݟ ΜΈ·͜ͱ w 5XJUUFS!NBLP@XJT w גࣜձࣾΫϨΦϑʔΨʢԻૉࡐൢചɺԻָί ϯςεταΠτӡӦʣ
w ϑϩϯταʔόʔαΠυγε w ࠓͷձ
None
αʔϏεΠϯ࣌ͷߏ EC2(App) EC2(Batch) RDS
S3 ૿͑ΔawsαʔϏε EC2(App) EC2(Batch) RDS
S3 ૿͑ΔawsαʔϏε EC2(App) EC2(Batch) RDS CloudSearch
S3 ૿͑ΔawsαʔϏε EC2(App) EC2(Batch) RDS CloudSearch SQS
S3 ૿͑ΔawsαʔϏε EC2(App) EC2(Batch) RDS CloudSearch SQS SNS
͜͜Ͱͪΐͬͱ͕
ൃੜ͍ͯͨ͠ • ֤ࣗͦΕͧΕͰઃఆͯͨ͠ͷͰൿͷλϨԽ • S3Λ։ൃ༻ʹڞ௨ͷόέοτΛݟ͍ͯͨΓ͠ ͯσʔλͷॏෳ͕ൃੜ • Ϛγϯങ͍ସ͑ͱ͔ͰڥߏஙΓ͠ͷ ߹ʹ͕͔͔࣌ؒΔ
ڥߏங͕ϘτϧωοΫʹ
ڥߏஙΛ؆୯ʹͯ͠ޮUP
ରॲํ๏ • ϩʔΧϧʹAWSସαʔϏεΛར༻ͯ͠ຊ൪ ͱಉͷڥΛߏங • ։ൃऀຖʹຊ൪ͱಉͷڥΛAWS্ʹߏங
ରॲํ๏ • ϩʔΧϧʹAWSସαʔϏεΛར༻ͯ͠ຊ൪ ͱಉͷڥΛߏங • ։ൃऀຖʹຊ൪ͱಉͷڥΛAWS্ʹߏங ࠓճͬͪ͜
DockerͰϩʔΧϧʹڥߏங
ࠓճͷํ • DockerΛར༻ͯ͠ϩʔΧϧʹ։ൃڥΛߏங • खܰʹڥΛ্ཱ͍ͪ͛ͨͷͰdocker- composeͰίϯςφΛཧ • ସ͑αʔϏε͕ແ͍ͷผ్ରࡦߟ͑Δ
RailsΞϓϦ Rubyόον S3 MySQL SQSɾSNS SQSɾSNSॳظԽ
RailsΞϓϦҎ֎ͷͱ͜Ζ
S3ͷஔ͖͑ • MinioΛ༻ • https://github.com/minio/minio • dockerΠϝʔδΛར༻ͯ͠ӬଓԽ͕༰қ • σΟϨΫτϦ=όέοτͱͯ͠Έͳͯ͘͠ΕΔ ͷͰόέοτ࡞ࡁͰͰ͖Δ
SQSɾSNSͷஔ͖͑ • Localstack • https://github.com/localstack/localstack • ֤छawsαʔϏεͷସ͑αʔϏεΛఏڙ • s3minioͷํ͕͍͍͢ͷͰࠓճະ༻ •
SNSSQSͷ྆ํରԠͯ͘͠Ε͍ͯΔ • Ωϡʔ࡞ผ్ઃఆόονΩοΫ༻ͷΠϝʔδΛ࡞ͯ͠ docker-compose up࣌ʹ࣮ߦ
RDSͷஔ͖͑ • ฐࣾMySQLͳͷͰMySQLͷdockerΠϝʔδΛ ༻ • ֤ࣗೖΕ͍ͯΔMySQLΛ༻͢Δख͋ͬͨ ͕ઃఆόʔδϣϯ͕όϥͭ͘Մೳੑ͋Δ ͷͰ౷Ұ
CloudSearchɾɾɾ • ϕʔλ൛͔ͩΒͳͷ͔ସ͑αʔϏε͕ΠϚΠν • ݩʑΫϥυαʔνͷઃఆ͕ͳ͔ͬͨΒDBͷ ݕࡧʹΓସ͑ΔϩδοΫ͕͋ͬͨͷͰͦΕΛ ར༻ • ʢͦͷ͏ͪElasticSearchʹΓ͑Δ͔͠Ε ͳ͍ͷͰҰ୴ஔ͍͓ͯ͘
όονΞϓϦͷରԠ • όονͷDockerΠϝʔδͷ࡞ • DockerԽʹ͏ίʔυमਖ਼ • SQSʹґଘͯ͠ΔͷͰSQSͷ४උྃΛͭίʔυΛՃ • ϝΠϯΞϓϦͱಉ࣌ʹىಈ͍ͨ͠ •
όονͷDockerϑΝΠϧΛϏϧυͯ͠ΠϝʔδΛ࡞͢ΔํࣜΛબ • ϦϙδτϦ͕ผͳͷͰgit submoduleΛར༻ͯ͠ϝΠϯΞϓϦͷϦϙ δτϦʹՃ
RailsΞϓϦͷͱ͜Ζ
΄ΜͱDockerͷ֎ʹ ग़͔ͨͬͨ͠ɾɾɾ
Docker͔Βग़ͤͳ͔ͬͨཧ༝ • Rubyόονଆ͔ΒRailsΞϓϦʹ௨৴ͷඞཁ͕͋Γ • Dockerίϯςφଆ͔ΒϗετOSͷIPΛऔಘ͢Δํ๏͕ ϗετOSଆͰ·ͪ·ͪ • MacͱLinuxҰॹͬΆ͍͚ͲWindows͕ɾɾɾ • ϗετOSଆͰRailsΛىಈ͢ΔͱRubyͷόονଆ͔Β
Rails௨৴Ͱ͖ͳ͍
Docker্Ͱಈ͔͠·͢
DockerͰಈ͔͢ • ެࣜʹRubyΠϝʔδ͕͋ΔͷͰͦΕΛ༻ • ϦϙδτϦϧʔτʹDockerϑΝΠϧΛஔ͍ͯΠϝʔ δϏϧυ • Πϝʔδ࡞࣌ʹbundle installΛߦ͏ •
ΞϓϦͷϧʔτΛίϯςφʹϚϯτͯ͠ίʔυม ߋ࣌ʹ͙͢ʹөͰ͖ΔΑ͏ʹ͢Δ
None
Docker-compose up Ͱ։ൃڥ্ཱ͕͕ͪΔ
DockerԽͰਏ͍ͱ͜Ζ • Gemfileͷมߋ࣌ʹDockerΠϝʔδͷϏϧυ͕ඞཁ • PCʹΑͬͯը໘ͷද͕ࣔҟৗʹ͍ • RailsίϚϯυ࣮ߦ͕DockerΛհ͢ͷͰͯ͘ਏ͍ • rakeίϚϯυͷ࣮ߦΛύΠϓͰड͚औΕͳ͍ͷͰਏ ͍
·ͱΊ • docker-compose upͰඞཁͳ։ൃڥ্ཱ͕͕ͪΔͷศར • ֤ࣗͦΕͧΕͰઃఆ͢Δख͕ؒল͚ͨ • Railsͷ֤छίϚϯυΛ࣮ߦ͢Δͷ͕໘ • ͍͍ͪͪdocker-compose
run ~Λ࣮ߦ͢Δͷ͕ΊΜͲ͍͘͞ • γΣϧεΫϦϓτΛ४උͯ͠লྗԽ • DockerΠϝʔδS3ϩʔΧϧԽͰPCͷ༰ྔ͕ඞཁ
͓ΘΓ