php7 on docker on tekitoh-memdhoi.info
TRANSCRIPT
![Page 1: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/1.jpg)
PHP7 on Dockerてきとうなさいと。べぇたばん
![Page 2: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/2.jpg)
ぼく、てきめん!• 「てきとう」「めんどい」の略デス><
• “Don’t think, feel!” and “Laziness”
• さいと: http://tekitoh-memdhoi.info
• twitter: @youkidearitai
• facebook: youkidearitai.yuya.hamada
• PHP界隈では0x27さい説のある27さいです
• ラジコンの人です
![Page 4: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/4.jpg)
PHP7.0がリリース!12がつ3にち
![Page 5: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/5.jpg)
さっそくつかいたい!運用したい!
![Page 6: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/6.jpg)
PHP7.0をうごかす• ぼくのサイトはDebian GNU/Linux Jessie
• 公式のPHPは5.6.9ベース • ということは、deb(リポジトリ)を • つくる • さがす
• ソースコードをコンパイル
![Page 7: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/7.jpg)
PHP7.0をうごかす• ぼくのサイトはDebian GNU/Linux Jessie
• 公式のPHPは5.6.9ベース • ということは、deb(リポジトリ)を • つくる • さがす
• ソースコードをコンパイル
![Page 8: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/8.jpg)
よっしゃコンパイルじゃ• 昔のぺちぱー(に限らないか)はコンパイルしてた
• しかし、サーバー上でコンパイルは自殺行為
• バージョン上げられない><
• 自家版debやrpmを作って運用もあった
• やっぱり公式リポジトリだよねヽ(^。^)ノ
![Page 9: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/9.jpg)
Docker昔の悲劇を繰り返してはならない。今はコレがある
![Page 10: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/10.jpg)
コンパイルしたPHP7をOSごとコンテナに してしまえ
![Page 11: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/11.jpg)
コンテナ内部• 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
![Page 12: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/12.jpg)
DockerfileFROM 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"]
![Page 13: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/13.jpg)
ホスト側• /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のログをホストに書き出してるのである。
![Page 14: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/14.jpg)
要は、こういうこと
![Page 15: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/15.jpg)
![Page 16: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/16.jpg)
というわけで
![Page 17: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/17.jpg)
PHP7乗っけたぜうわ、やっべーわー、X-Powerd-ByヘッダでPHP7だっ
てバレちゃうわー、やっべー、あぶねー
![Page 18: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/18.jpg)
デプロイ
![Page 19: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/19.jpg)
デプロイの方法$ 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 # でおしまいヽ(^。^)ノ
![Page 20: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/20.jpg)
Docker運用して気がついたこと
![Page 21: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/21.jpg)
• ひとつのコンテナにひとつのプロセスが走る
• そのコンテナに異常があっても中に入るのは困難
• 画像やデータベースをDocker運用にしたらデータが消えたりして多分死ぬ
• そのためのManage data in containers
• ログも書き出して置くべき
• build-essentialもぶち込んだので2GB位ある
![Page 22: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/22.jpg)
ぶっちゃけ使う必要あるん?• boycott dockerなんてページもあるくらい
• HackerNewsでtopに出るぞとかツイッターのフォローたくさん来るぞとか
• ぼくのように「Docker使いましたイエー」とか
• PHP7を使いたいから使うんであって、Dockerを使いたいから使うのではない><
• アプリケーションサーバーをコンテナにする意義はある。ソレ以外はおすすめしない
![Page 23: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/23.jpg)
まとめ
![Page 24: Php7 on Docker on tekitoh-memdhoi.info](https://reader031.vdocuments.net/reader031/viewer/2022021922/58a634291a28ab68118b4b43/html5/thumbnails/24.jpg)
• PHP 7.0を使うならばこういうのもあるよ!!
• UbuntuやDebian、CentOSの公式パッケージを待とうというのもあるよ!!
• Dockerの今後の進化を期待してます!