Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DockerでLaravel環境を構築する
Search
Yuki Kitagawa
November 29, 2019
Technology
0
320
DockerでLaravel環境を構築する
Yuki Kitagawa
November 29, 2019
Tweet
Share
More Decks by Yuki Kitagawa
See All by Yuki Kitagawa
FatControllerからの卒業
tamayan_18
0
1.8k
Other Decks in Technology
See All in Technology
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
1
670
Edge AI Performance on Zephyr Pico vs. Pico 2
iotengineer22
0
130
OCI Oracle Database Services新機能アップデート(2025/09-2025/11)
oracle4engineer
PRO
1
110
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
190
直接メモリアクセス
koba789
0
290
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
170
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
270
チーリンについて
hirotomotaguchi
6
1.8k
グレートファイアウォールを自宅に建てよう
ctes091x
0
140
文字列の並び順 / Unicode Collation
tmtms
3
520
AWS CLIの新しい認証情報設定方法aws loginコマンドの実態
wkm2
6
700
AWSセキュリティアップデートとAWSを育てる話
cmusudakeisuke
0
220
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
57k
Speed Design
sergeychernyshev
33
1.4k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Producing Creativity
orderedlist
PRO
348
40k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.2k
How to Ace a Technical Interview
jacobian
280
24k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
KATA
mclloyd
PRO
32
15k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Transcript
DockerでLaravelの ローカル環境を構築する tambourine meetup #
⾃⼰紹介 • 北川 雄紀 • クラウドインテグレーション部 • バックエンドやモバイルアプリを担当 • PHP,
Kotlin, Java, Swiftなど • 最近はB C Commerce Cloudを⽤いて、ECサイトの開発をしてます
サンプルコード IUUQTHJUIVCDPNUBNBZBOEPDLFSDPNQPTFUFNQMBUF
このスライドのターゲット • Docker環境構築しらいけど何からすればいいかわからない • 複数⼈で開発環境を揃えたい • コマンド⼀つで環境を切り替えたい
アジェンダ • Dockerを使わない場合の環境構築 • Dockerとは? • 環境構築の構成 • 実際に環境構築をする •
まとめ
Dockerがなかったころ の環境構築
ローカルに環境構築 • ローカルマシンに直にミドルウェアをインス トールする • MAMPやXAMPなどのディストリビューションで ローカル環境を構築する
ローカルに環境構築する場合の問題 • プロジェクトによって⼿動で環境を切り替える必要があ り、都度コマンドを実⾏する必要がある • 開発メンバー全員が同じ⼿順で環境構築する必要がある(時 間がかかる) • 異なるOSで環境構築にコストがかかってしまう場合がある (WindowsとMacで環境構築が異なる場合がある)
Vagrantで環境構築 • あらかじめ⽤意されているboxというVMのイメージを 指定して、コマンドを実⾏することでVMを作成します • Vagrantfileに構成を記述し、コマンドを実⾏するとVM を作成することができる • Vagrantfileを共有することで、他者への共有ができる •
VM作成時にシェルスクリプトでミドルウェアのインス トールができる
Vagrantで環境構築する場合の問題 • ホストOS上にVMを動かしているので、オーバーヘッドが ⼤きい • とくにメモリなどのリソースはVMに割り当てた分を使うこ とになるので、マシンスペックがないと厳しい • シェルに定義するコマンドがVMのOSに依存するので、OS ごとにシェルを書き換える必要がある(aptやyumコマンド)
VMだと困ること • 複数のVMを起動するとまともに開発ができないくらいマシ ンリソースがなくなる • とにかくPCが重くなり、まともに開発ができなくなる
None
Dockerとは? • 開発元: Docker.Inc • コンテナ型仮想化環境を提供するオープンソースソフト ウェア • ミドルウェアやOSをイメージという単位で扱い、まるごと 環境構築することができるツール
“Dockerは、コンテナと呼ばれるOSレベルの仮想化環境を提供するオープン ソースソフトウェアである。VMware製品などの完全仮想化を⾏うハイパー バイザ型製品と⽐べて、ディスク使⽤量は少なく、仮想環境 (インスタンス) 作成や起動は速く、性能劣化がほとんどないという利点を持つ。” 8JLJQFEJB IUUQTKBXJLJQFEJBPSHXJLJ%PDLFS
Dockerの特徴 • コンテナ型と呼ばれる仮想環境をホストOSに直接作成するため、VMに⽐べて オーバーヘッドを少なくできる • コンテナは移植性が⾼く、Dockerさえインストールしていれば、Windows‧ Mac‧Linux系で動かすことができる • 複数のコンテナを同時に扱うことができ、プロジェクト単位で環境を切り替える ことが容易できる
• コンテナの作成や削除が容易にできるので、使い捨てが容易にできる
ϩʔΧϧΠϯετʔϧ 7BHSBOU 7. %PDLFS
⽤語の説明 • Dockerイメージ • Docker Hub • Dockerfile • Dockerコンテナ
• docker-compose
Dockerイメージ • コンテナを起動するために必要なOSやミドルウェアの設 定‧コマンドを⼀つにまとめたテンプレートのようなもの • 通常ホストOSにアプリケーションをインストールし、初期 設定やカスタマイズをする⼯程をテンプレート化すること で設定済みにイメージを作ることができる • Linux
Kernel上にあるファイルシステムにアプリケーショ ンをインストールすることができるため、テンプレート化 が可能になる
Docker Hub • Docker HubのサイトからDockerイメージを探して、イメージをロー カルに保存ができる • Docker Hubには公式がアップロードしたイメージや、公式のイメー ジを扱いやすくラップしたイメージも存在する
• 30万以上のDockerイメージが存在する • ⾃作のイメージをDocker Hubにアップロードすることもできる • $ docker pull イメージ名
Dockerfile • Dockerイメージと初期設定などを定義しておくファイルの こと • コマンドを実⾏することで、Dockerfileの内容からDocker イメージを作成する • $ docker
build イメージ名
Dockerコンテナ • Dockerイメージを元に作成される仮想環境(コンテナ)の実⾏ 部分のこと • Dockerイメージを元にコンテナを作成するようなイメージ
docker-compose • Dockerにはdocker-composeという機能があり、複数のコン テナを連携させる機能も持つ • docker-composeの機能を使うにはdocker-compose.ymlを 作成する必要がある • docker-compose.ymlはyaml形式で記述が可能で、Dockerへ のパスやポートフォワーディングの設定を⾏うことができる
• $ docker-compose up -d
構築する環境の構成
• PHP( . ) • Apache • PostgreSQL • composer
ディレクトリ構成
実際にLaravelの環境を構築する
まとめ1 • OS依存がなく、導⼊が容易 • 案件ごとに異なる環境を構築できるため、特定のPC依存を 回避できる • ミドルウェア導⼊や新インフラ環境のテストが各⾃のPCで 可能に •
⾔語やツールのバージョンアップテストが容易になる • チームメンバー全員が各⾃のPCでデバッグ可能になる
まとめ2 • インフラの知識やミドルウェアの知識が必要 • 学習コストが⾼い • コンテナ作成に失敗した場合などコンテナのログを⾒る⼒ が必要
ご清聴ありがとうございました。