Successfully reported this slideshow.
Your SlideShare is downloading. ×

Php7 on Docker on tekitoh-memdhoi.info

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 24 Ad

Php7 on Docker on tekitoh-memdhoi.info

Download to read offline

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

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

Advertisement
Advertisement

More Related Content

Similar to Php7 on Docker on tekitoh-memdhoi.info (20)

Recently uploaded (20)

Advertisement

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の今後の進化を期待してます!

×