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
560
EditorConfig を使ってみよう
azuki
1
78
Symfony でサクッと作る REST API サーバー
azuki
1
160
Vite の Library Mode を使って Vue のコンポーネントをライブラリ化する
azuki
1
190
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
300
Provide/Inject で TypeScript の恩恵を受ける方法
azuki
3
150
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
360
OSS contributor への第一歩を踏み出すまでの物語
azuki
2
320
Eloquent で relation を扱う基礎
azuki
0
170
Other Decks in Programming
See All in Programming
アセットのコンパイルについて
ojun9
0
120
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
21
5.6k
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.4k
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.4k
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
290
Namespace and Its Future
tagomoris
6
700
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
410
AIコーディングAgentとの向き合い方
eycjur
0
270
機能追加とリーダー業務の類似性
rinchoku
2
1.2k
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
110
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
120
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
320
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Invisible Side of Design
smashingmag
301
51k
Code Reviewing Like a Champion
maltzj
525
40k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
It's Worth the Effort
3n
187
28k
Facilitating Awesome Meetings
lara
55
6.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
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-ͷϗετ໊Λίϯςφ໊ʹઃఆ ૯ׅ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠