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入門 / Docker description for Rails engineers
Search
Takumi Shotoku
December 02, 2021
Technology
0
640
Railsエンジニア向けDocker入門 / Docker description for Rails engineers
Omotesando.rb #69
https://omotesandorb.connpass.com/event/231730/
Takumi Shotoku
December 02, 2021
Tweet
Share
More Decks by Takumi Shotoku
See All by Takumi Shotoku
Let's get started with Ruby && Rails Tips
sinsoku
0
280
LTの敷居を下げる / Lower the threshold for LT
sinsoku
1
270
CircleCIの高速化🚀 / CircleCI faster
sinsoku
3
1k
Railsアプリと型検査 / Rails app and type checking
sinsoku
5
1.1k
💎のつくりかた 2023 / How to make gems 2023
sinsoku
2
270
Make tests run faster
sinsoku
2
560
YARD with RBS Syntax
sinsoku
1
350
Get started with OSS contributions
sinsoku
2
1.1k
Advice for Ruby beginners
sinsoku
2
430
Other Decks in Technology
See All in Technology
Databricksの生成AI戦略
taka_aki
1
390
Password cracking: past, present, future
openwall
0
330
AI JIMY - 登壇(インストール編)
hanacchi
0
150
漠然とOSSにコントリビュートしたいと思っていた昔の自分へ
sansantech
PRO
2
160
動画配信サービスのフロントエンド実装に学ぶ設計原則
yud0uhu
1
140
Taking Flight with Tailwind CSS
opdavies
0
4.3k
LINEヤフーのウェブアクセシビリティ
lycorptech_jp
PRO
3
220
日本が誇るイタリアのダンスミュージック!? ユーロビートって何??
minorun365
PRO
2
240
テストコードを書きながらCompose Multiplatformを乗りこなす
subroh0508
0
150
Prisma ORMを2年運用して培ったノウハウを共有する
tockn
19
5.2k
シンプルなHITL機械学習と様々なタスクにおけるHITL機械学習
naohachi89
0
340
データベース05: SQL(2/3) 結合質問
trycycle
0
120
Featured
See All Featured
Statistics for Hackers
jakevdp
790
220k
Thoughts on Productivity
jonyablonski
60
3.9k
KATA
mclloyd
16
12k
The Language of Interfaces
destraynor
151
23k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
A Philosophy of Restraint
colly
197
16k
Happy Clients
brianwarren
92
6.4k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Designing with Data
zakiwarfel
96
4.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
23
1.7k
Transcript
RailsΤϯδχΞ͚Dockerೖ Omotesando.rb #68 2021/12/02 1
ࣗݾհ • ໊લ: ਖ਼ಙ (aka: ਆ) • ձࣾ: ϝυϐΞגࣜձࣾ •
ॴଐ: CTOࣨSRE • GitHub: @sinsoku (ը૾ӈ্) • Twitter: @sinsoku_listy (ը૾ӈԼ) 2
࠷ߴͷϒϩάΞϓϦΛ࡞Δ (3min) $ rails new omotesando_blog $ cd omotesando_blog $
bin/rails g scaffold blog title body:text $ bin/rails db:prepare $ bin/rails s 3
ϒϩά͕ߘͰ͖Δʂ͍͢͝ʂ 4
ଞPCͰ؆୯ʹಈ͘Α͏ʹ͍ͨ͠ 5
Dockerͷ༻్ ͦͷ1 ΞϓϦ ͷίϯςφԽ 6
ΞϓϦͷίϯςφԽ omotesando_blog ͱ͍͏όΠφϦΛ࡞Δͷʹ͍ۙɻ $ docker run omotesando_blog bin/rails --version $
docker run omotesando_blog bin/rails stats omotesando_blog ͷDockerΠϝʔδʹιʔείʔυɺRubyɺ gemɺnpmؚ͕·Ε͍ͯΔͷͰɺར༻ऀDocker͚ͩ༻ҙ͢Ε ྑ͍ɻ 7
Dockerfile ͷྫ1 FROM ruby:3.0.3 WORKDIR /workspace # Install Node.js, Yarn
RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - RUN apt-get update && apt-get install -y nodejs RUN npm install --global yarn # ιʔείʔυΛՃ͢Δ COPY . /workspace # gemnpmΛՃ͢Δ RUN bin/setup 8
Ϗϧυͯ͠ࢼ͢ $ docker build -t omotesando_blog . $ docker run
-p 3000:3000 \ omotesando_blog bin/rails s -b 0.0.0.0 9
Dockerศར 10
։ൃڥ ! ʹ͢Εศར...ʁ 11
Dockerfile ͷྫ1ʢ࠶ܝʣ FROM ruby:3.0.3 WORKDIR /workspace # Install Node.js, Yarn
RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - RUN apt-get update && apt-get install -y nodejs RUN npm install --global yarn # ιʔείʔυΛՃ͢Δ COPY . /workspace # gemnpmΛՃ͢Δ RUN bin/setup 12
ίʔυมߋ͢ΔʹϏϧυ͕ඞཁ 13
Dockerͷ༻్ ͦͷ2 ڥ ͷίϯςφԽ 14
Dockerfile ͷྫ2 FROM ruby:3.0.3 WORKDIR /workspace # Install Node.js RUN
curl -fsSL https://deb.nodesource.com/setup_14.x | bash - RUN apt-get update && apt-get install -y nodejs # Install Yarn RUN curl -o- -L https://yarnpkg.com/install.sh | bash # Set env to install gems into /workspace/vendor/bundle ENV BUNDLE_PATH vendor/bundle 15
Ϗϧυͯ͠ࢼ͢ $ docker build -t omotesando_blog:v2 . $ docker run
-v `pwd`:/workspace \ omotesando_blog:v2 bin/setup $ docker run -v `pwd`:/workspace -p 3000:3000 \ omotesando_blog:v2 bin/rails s -b 0.0.0.0 omotesando_blog:v2 ʹRubyɺNode.jsɺYarnؚ·Ε͍ͯΔɻ ։ൃதʹมߋ͢Δ͜ͱͷ͋ΔίʔυɺgemɺnpmΠϝʔδʹؚ Ίͳ͍ɻ 16
·ͱΊ Dockerͷ༻్2ͭ͋Δɻ 1. ΞϓϦͷίϯςφԽ 2. ڥͷίϯςφԽ ༻్ʹΑͬͯDockerfileͰؾΛ͚ͭΔ͕มΘΔͷͰҙ͕͍Δɻ 17