Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PHP7 on Docker
てきとうなさいと。べぇたばん
ぼく、てきめん!
• 「てきとう」「めんどい」の略デス><
• Don t think, feel! and Laziness
• さいと: http://tekitoh-memdhoi.info
• twitter: @youkidearit...
ぼく27さい(白目)
PHP7.0がリリース!
12がつ3にち
さっそくつかいたい!

運用したい!
PHP7.0をうごかす
• ぼくのサイトはDebian GNU/Linux Jessie
• 公式のPHPは5.6.9ベース
• ということは、deb(リポジトリ)を
• つくる
• さがす
• ソースコードをコンパイル
PHP7.0をうごかす
• ぼくのサイトはDebian GNU/Linux Jessie
• 公式のPHPは5.6.9ベース
• ということは、deb(リポジトリ)を
• つくる
• さがす
• ソースコードをコンパイル
よっしゃコンパイルじゃ
• 昔のぺちぱー(に限らないか)はコンパイルしてた
• しかし、サーバー上でコンパイルは自殺行為
• バージョン上げられない><
• 自家版debやrpmを作って運用もあった
• やっぱり公式リポジトリだよねヽ(^。^)ノ
Docker
昔の悲劇を繰り返してはならない。今はコレがある
コンパイルしたPHP7を

OSごとコンテナに

してしまえ
コンテナ内部
• apt-get install apache2 apache2-dev build-essential
autoconf libpq-dev libxml2-dev libicu-dev libdb-dev
libjpeg-d...
Dockerfile
FROM youkidearitai/php7-tmcmaker
RUN cd /var/www/htdocs/ && git pull origin master
VOLUME /home/vagrant/media_we...
ホスト側
• /etc/systemd/system/php7-tmcmaker.service
• ExecStart=/usr/bin/docker run -p 80:80 -v /home/
tekitoh/htdocs/cake/ap...
要は、こういうこと
というわけで
PHP7乗っけたぜ
うわ、やっべーわー、X-Powerd-ByヘッダでPHP7だっ
てバレちゃうわー、やっべー、あぶねー
デプロイ
デプロイの方法
$ sudo docker pull php7-tmcmaker
$ sudo docker build -t php7-tmcmaker:tmcmaker /
hoge/huga # Dockerfileのパス
$ sudo s...
Docker運用して

気がついたこと
• ひとつのコンテナにひとつのプロセスが走る
• そのコンテナに異常があっても中に入るのは困難
• 画像やデータベースをDocker運用にしたらデータが
消えたりして多分死ぬ
• そのためのManage data in containers
•...
ぶっちゃけ使う必要あるん?
• boycott dockerなんてページもあるくらい
• HackerNewsでtopに出るぞとかツイッターのフォローたく
さん来るぞとか
• ぼくのように「Docker使いましたイエー」とか
• PHP7を使い...
まとめ
• PHP 7.0を使うならばこういうのもあるよ!!
• UbuntuやDebian、CentOSの公式パッケージを待
とうというのもあるよ!!
• Dockerの今後の進化を期待してます!
Php7 on Docker on tekitoh-memdhoi.info
Upcoming SlideShare
Loading in …5
×

Php7 on Docker on tekitoh-memdhoi.info

617 views

Published on

てきとうなさいと。べぇたばんにPHP7を乗っけました。そのためにはDockerが不可欠であると確信してPHP7 on Dockerにしました。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Php7 on Docker on tekitoh-memdhoi.info

  1. 1. PHP7 on Docker てきとうなさいと。べぇたばん
  2. 2. ぼく、てきめん! • 「てきとう」「めんどい」の略デス>< • Don t think, feel! and Laziness • さいと: http://tekitoh-memdhoi.info • twitter: @youkidearitai • facebook: youkidearitai.yuya.hamada • PHP界隈では0x27さい説のある27さいです • ラジコンの人です
  3. 3. ぼく27さい(白目)
  4. 4. PHP7.0がリリース! 12がつ3にち
  5. 5. さっそくつかいたい!
 運用したい!
  6. 6. PHP7.0をうごかす • ぼくのサイトはDebian GNU/Linux Jessie • 公式のPHPは5.6.9ベース • ということは、deb(リポジトリ)を • つくる • さがす • ソースコードをコンパイル
  7. 7. PHP7.0をうごかす • ぼくのサイトはDebian GNU/Linux Jessie • 公式のPHPは5.6.9ベース • ということは、deb(リポジトリ)を • つくる • さがす • ソースコードをコンパイル
  8. 8. よっしゃコンパイルじゃ • 昔のぺちぱー(に限らないか)はコンパイルしてた • しかし、サーバー上でコンパイルは自殺行為 • バージョン上げられない>< • 自家版debやrpmを作って運用もあった • やっぱり公式リポジトリだよねヽ(^。^)ノ
  9. 9. Docker 昔の悲劇を繰り返してはならない。今はコレがある
  10. 10. コンパイルしたPHP7を
 OSごとコンテナに
 してしまえ
  11. 11. コンテナ内部 • apt-get install apache2 apache2-dev build-essential autoconf libpq-dev libxml2-dev libicu-dev libdb-dev libjpeg-dev libpng-dev libgif-dev libgd-dev libreadline- dev libgd2-xpm-dev libcurl4-openssl-dev pkg-config • ./configure ̶with-apxs2=/usr/bin/apxs ̶enable- mbstring ̶enable-intl ̶with-pgsql=/usr/include/ postgresql ̶with-pdo-pgsql ̶with-gd=/usr/include/ ̶with-jpeg-dir=/usr/include/ ̶with-png-dir=/usr/ include/ ̶with-readline=/usr/include/ ̶with-xpm- dir=/usr/include/ ̶with-openssl
  12. 12. Dockerfile FROM youkidearitai/php7-tmcmaker RUN cd /var/www/htdocs/ && git pull origin master VOLUME /home/vagrant/media_webroot /var/www/htdocs/cake/app/ media_webroot/ EXPOSE 80 80 env APACHE_RUN_USER www-data env APACHE_RUN_GROUP www-data env APACHE_PID_FILE /var/run/apache2.pid env APACHE_RUN_DIR /var/run/apache2 env APACHE_LOCK_DIR /var/lock/apache2 env APACHE_LOG_DIR /var/log/apache2 env LANG C ENTRYPOINT ["/usr/sbin/apache2", "-D", "FOREGROUND"]
  13. 13. ホスト側 • /etc/systemd/system/php7-tmcmaker.service • ExecStart=/usr/bin/docker run -p 80:80 -v /home/ tekitoh/htdocs/cake/app/media_webroot:/var/www/ htdocs/cake/app/media_webroot -v /var/log/docker/ apache2:/var/log/apache2 -v /var/log/docker/ tmcmaker:/var/www/htdocs/cake/app/tmp/logs youkidearitai/php7-tmcmaker:php7-tmcmaker • 画像のアップロードとapache2・CakePHPのログをホス トに書き出してるのである。
  14. 14. 要は、こういうこと
  15. 15. というわけで
  16. 16. PHP7乗っけたぜ うわ、やっべーわー、X-Powerd-ByヘッダでPHP7だっ てバレちゃうわー、やっべー、あぶねー
  17. 17. デプロイ
  18. 18. デプロイの方法 $ sudo docker pull php7-tmcmaker $ sudo docker build -t php7-tmcmaker:tmcmaker / hoge/huga # Dockerfileのパス $ sudo systemctl stop php7-tmcmaker $ sudo systemctl start php7-tmcmaker などをFabricにまとめて $ fab deploy # でおしまいヽ(^。^)ノ
  19. 19. Docker運用して
 気がついたこと
  20. 20. • ひとつのコンテナにひとつのプロセスが走る • そのコンテナに異常があっても中に入るのは困難 • 画像やデータベースをDocker運用にしたらデータが 消えたりして多分死ぬ • そのためのManage data in containers • ログも書き出して置くべき • build-essentialもぶち込んだので2GB位ある
  21. 21. ぶっちゃけ使う必要あるん? • boycott dockerなんてページもあるくらい • HackerNewsでtopに出るぞとかツイッターのフォローたく さん来るぞとか • ぼくのように「Docker使いましたイエー」とか • PHP7を使いたいから使うんであって、Dockerを使いたいか ら使うのではない>< • アプリケーションサーバーをコンテナにする意義はある。ソレ 以外はおすすめしない
  22. 22. まとめ
  23. 23. • PHP 7.0を使うならばこういうのもあるよ!! • UbuntuやDebian、CentOSの公式パッケージを待 とうというのもあるよ!! • Dockerの今後の進化を期待してます!

×