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でApache+PHP+MySQLの環境構築
Search
SAW
May 16, 2020
Programming
2
1.1k
DockerでApache+PHP+MySQLの環境構築
関西PHP勉強会 の発表資料です。
SAW
May 16, 2020
Tweet
Share
More Decks by SAW
See All by SAW
PHP で学ぶ OAuth 入門
azuki
2
610
EditorConfig を使ってみよう
azuki
1
83
Symfony でサクッと作る REST API サーバー
azuki
1
180
Vite の Library Mode を使って Vue のコンポーネントをライブラリ化する
azuki
1
220
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
320
Provide/Inject で TypeScript の恩恵を受ける方法
azuki
3
150
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
370
OSS contributor への第一歩を踏み出すまでの物語
azuki
2
330
Eloquent で relation を扱う基礎
azuki
0
170
Other Decks in Programming
See All in Programming
GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する
ota1022
0
250
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
490
Railsだからできる 例外業務に禍根を残さない 設定設計パターン
ei_ei_eiichi
0
440
開発生産性を上げるための生成AI活用術
starfish719
3
420
スマホから Youtube Shortsを見られないようにする
lemolatoon
23
24k
Catch Up: Go Style Guide Update
andpad
0
210
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
280
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
5
1.7k
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
3.2k
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
180
Devvox Belgium - Agentic AI Patterns
kdubois
1
110
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
170
Featured
See All Featured
Fireside Chat
paigeccino
40
3.7k
Faster Mobile Websites
deanohume
310
31k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Documentation Writing (for coders)
carmenintech
75
5k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.7k
Transcript
4BUUI.BZ ؔ1)1ษڧձ %PDLFSͰ"QBDIF 1)1 .Z42-ͷ ڥߏங
ؔ1)1ษڧձ ๏ࢯ໊Ճ౻फҰ ࡀ ‣ ϋϯυϧωʔϜ4"8 ‣ 5XJUUFS!B[VLJ@FBUFS ‣ (JU)VCB[VLJQFOHVJO
๏ॴଐגࣜձࣾ.4&/ $(whoami) NBD04 7VFKT -JOVY 'SFF#4%
ؔ1)1ษڧձ ๏ϩʔΧϧͷڥΛԚ͢͜ͱͳ͘"QBDIF 1)1 .Z42-ͷڥΛ͍͑ͨ ‣ %PDLFSΛར༻ͯ͠ڥߏங ๏.Z42-ͷίϯςφʹผίϯςφ্ͷ1)1ϓϩάϥϜ͔Βଓ͍ͨ͠ ‣ 1)1ίϯςφ͔ΒMPDBMIPTUͷ൪ϙʔτΛࢦఆͯ͠ଓʹࣦഊ .PUJWBUJPO
%PDLFSίϯςφͷߏஙखॱ
ؔ1)1ษڧձ ๏"QBDIF 1)1QIQBQBDIF ๏.Z42-NZTRM ‣ 1)1ͷϥΠϒϥϦ͕.Z42-YܥͷσϑΥϧτͷೝূํࣜ DBDIJOH@TIB@QBTTXPSE ʹະରԠ %PDLFSίϯςφͷߏ QIQBQBDIF
NZTRM "QBDIF <?php ... ?> .Z42- ଓ
ؔ1)1ษڧձ ๏1)1ͱ.Z42-ͷίϯςφؒ௨৴Λߦ͏ͨΊʹ࡞ ‣ docker network create ネットワーク名Ͱ%PDLFSωοτϫʔΫΛ࡞ ๏docker network lsͰ࡞͞Εͨ%PDLFSωοτϫʔΫͷҰཡΛදࣔ
%PDLFSωοτϫʔΫͷ࡞ $ docker network create my-network $ docker network ls NETWORK ID NAME DRIVER SCOPE 6681a32a3d6f bridge bridge local bc8ace895846 host host local 74bc6dce3a53 my-network bridge local 6f730504383f none null local
ؔ1)1ษڧձ ๏docker runίϚϯυͰίϯςφ࡞࣌ʹ--networkΦϓγϣϯΛ༩ ‣ ࡞ͨ͠%PDLFSωοτϫʔΫʹଓ ίϯςφͷ࡞ # オプションは一部省略 $ docker
run -d --name php-server --network my-network php:apache $ docker run -d --name mysql-db --network my-network mysql:5.7.27
ؔ1)1ษڧձ ๏σϑΥϧτͰ.Z42-ͷ1%0υϥΠό͕ະΠϯετʔϧ ‣ ίϯςφʹೖΓdocker-php-ext-installίϚϯυΛ࣮ߦͯ͠Πϯετʔϧ .Z42-ͷυϥΠόpdo_mysqlΛࢦఆ 1%0͕ೖ͍ͬͯͳ͍߹pdoࢦఆ 1%0υϥΠόͷΠϯετʔϧ $
docker exec -it php-server bash # docker-php-ext-install pdo_mysql
ؔ1)1ษڧձ ๏1%0ͷίϯετϥΫλͷୈҾΛमਖ਼ ‣ host=ͷՕॴΛ.Z42-ͷίϯςφ໊ʹमਖ਼ ଓઃఆͷมߋ <?php # host= の右辺には MySQL
のコンテナ名 (mysql-db) を指定 $con = new PDO(‘mysql:dbname=db;host=mysql-db’, ‘db’, ‘test’); # 以下省略
ڥߏஙྃ
ίϯςφ࡞ࡁΈͷ߹
ؔ1)1ษڧձ ๏%PDLFSωοτϫʔΫʹ࡞ࡁΈίϯςφΛଓ ๏%PDLFSίϯςφͷ*1ΞυϨεΛࢦఆͯ͠ଓ ίϯςφ࡞ࡁΈͷ߹ͷڥߏங
ؔ1)1ษڧձ ๏docker network connect ネットワーク名 コンテナ名Ͱ%PDLFSωοτϫʔΫʹଓ ‣ ଓઃఆલड़ͷ༰ͱಉ༷ʹมߋ ࡞ࡁΈίϯςφͷଓํ๏ $
docker network connect my-network php-server $ docker network connect my-network mysql-db
ؔ1)1ษڧձ ๏%PDLFSωοτϫʔΫΛར༻ͤͣʹMPDBMIPTUͰׂΓͯͨϙʔτ͔Βଓ ‣ .Z42-ίϯςφͷ*1ΞυϨεΛࢦఆͯ͠ଓ .Z42-ίϯςφͷ/etc/hostsΛ֬ೝ 1%0ͷଓઃఆΛมߋ ‣ ίϯςφͷ࠶ىಈͳͲͰ*1ΞυϨε͕มߋ͞Εͨ߹ʹϓϩάϥϜͷमਖ਼͕ඞཁ
ίϯςφͷ*1ΞυϨεͰଓ͢Δํ๏
ؔ1)1ษڧձ ๏.Z42-ίϯςφͷίϯςφ*%Λ֬ೝ ‣ docker psίϚϯυͳͲͰίϯςφ*%͕֬ೝՄೳ ๏.Z42-ίϯςφͷ/etc/hostsΛ֬ೝ ‣ ίϯςφ*%ʹׂΓͯΒΕ͍ͯΔ*1ΞυϨε͕.Z42-ίϯςφͷ*1ΞυϨε .Z42-ίϯςφͷ*1ΞυϨεΛ֬ೝ $
docker exec -it mysql-db bash # # cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ( 中略 ) 172.17.0.3 ebc8580e8dd5
ؔ1)1ษڧձ ๏1%0ͷίϯετϥΫλΛमਖ਼ ‣ hosts=Λ.Z42-ίϯςφͷ*1ΞυϨεʹมߋ 1%0ͷଓઃఆͷมߋ <?php # MySQL コンテナの IP
アドレス (172.17.0.3) を指定 $con = new PDO(‘mysql:dbname=db;host=172.17.0.3’, ‘db’, ‘test’); # 以下省略
ؔ1)1ษڧձ ๏%PDLFSωοτϫʔΫΛ࡞ͯ͠ίϯςφΛଓ ‣ 1)1ͱ.Z42-ͷίϯςφؒͰ௨৴ ๏1)1ίϯςφʹ.Z42-ͷ1%0υϥΠόΛΠϯετʔϧ ๏ଓઌͷ.Z42-ͷϗετ໊Λίϯςφ໊ʹઃఆ ૯ׅ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠