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
DockerでLaravel環境を構築する
Search
Yuki Kitagawa
November 29, 2019
Technology
0
330
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
JAWS FESTA 2025でリリースしたほぼリアルタイム文字起こし/翻訳機能の構成について
naoki8408
1
340
20260311 技術SWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
290
When an innocent-looking ListOffsets Call Took Down Our Kafka Cluster
lycorptech_jp
PRO
0
120
Go標準パッケージのI/O処理をながめる
matumoto
0
140
脳内メモリ、思ったより揮発性だった
koutorino
0
210
OCI技術資料 : コンピュート・サービス 概要
ocise
4
54k
今のWordPress の制作手法ってなにがあんねん?(改) / What’s the Deal with WordPress Development These Days?
tbshiki
0
200
EMからVPoEを経てCTOへ:マネジメントキャリアパスにおける葛藤と成長
kakehashi
PRO
9
1.7k
身体を持ったパーソナルAIエージェントの 可能性を探る開発
yokomachi
1
100
OCHaCafe S11 #2 コンテナ時代の次の一手:Wasm 最前線
oracle4engineer
PRO
1
110
生成AIの利用とセキュリティ /gen-ai-and-security
mizutani
1
1.6k
アーキテクチャモダナイゼーションを実現する組織
satohjohn
0
190
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.2k
Test your architecture with Archunit
thirion
1
2.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
250
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
230
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Mobile First: as difficult as doing things right
swwweet
225
10k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
We Are The Robots
honzajavorek
0
190
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Building Adaptive Systems
keathley
44
3k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
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 • インフラの知識やミドルウェアの知識が必要 • 学習コストが⾼い • コンテナ作成に失敗した場合などコンテナのログを⾒る⼒ が必要
ご清聴ありがとうございました。