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
330
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DockerでLaravel環境を構築する
Yuki Kitagawa
November 29, 2019
More Decks by Yuki Kitagawa
See All by Yuki Kitagawa
FatControllerからの卒業
tamayan_18
0
1.8k
Other Decks in Technology
See All in Technology
kaonavi Tech Night#1
kaonavi
0
160
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
410
AI時代こそ、スケールしないことをしよう -「作る人」から「なぜ作るか」を考える人へ / Do Things That Don't Scale in the AI Era — From How to Why
kaminashi
1
100
『モデル + ハーネス』で読み解く AIエージェント入門
oracle4engineer
PRO
2
170
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
320
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
280
仕様駆動開発、導入半年。「本当に速くなってるの?」にデータで答える / AICon2026_hirakawa
rakus_dev
0
320
Webの技術とガジェットで子どもも大人も楽しめるワクワク体験を提供する / Qiita Tech Festa Day 2026
you
PRO
1
130
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
2
610
AI工学特論: MLOps・継続的評価
asei
5
1.2k
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
480
文字起こし基盤の信頼性
abnoumaru
0
120
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Navigating Team Friction
lara
192
16k
What's in a price? How to price your products and services
michaelherold
247
13k
Marketing to machines
jonoalderson
1
5.6k
GitHub's CSS Performance
jonrohan
1033
470k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Claude Code のすすめ
schroneko
67
230k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
460
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Technical Leadership for Architectural Decision Making
baasie
3
440
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 • インフラの知識やミドルウェアの知識が必要 • 学習コストが⾼い • コンテナ作成に失敗した場合などコンテナのログを⾒る⼒ が必要
ご清聴ありがとうございました。