DockerでPhalcon+mysql実行環境を構築する
dockerhubのものを使うのも味気なかったので自分でdockerfileを作ったのでメモ。
開発する際にローカルで動作確認するためのモノを想定しているので、いろんなサービス乗っけてます。
動くモノ Php5.5 phalcon1.3.4 nginx+Php-fpm mysql5.6 redis3
From centos:6 ADD conf /tmp/ RUN yum install -y epel-release && \ Rpm -Uvhp iusrepo && \ Rpm -Uvhp mysqlrepo && \ Rpm -Uvhp nginxrepo && \ Yum install -y wget vim git gcc make zip unzip re2c file zsh sudo && \ Yum install -y php55u php55u-pdo php55u-devel php55u-mbstring php55u-apcu-devel php55u-pecl-igbinary php55u-pecl-jsonc-devel php55u-pecl-memcached php55u-mysql php55u-mysqlnd php55u-pecl-redis php55u-opcache pcre-devel && \ Yum install -y mysql-community-server && \ Yum install -y nginx php55u-fpm redis30u && \ Cd /usr/local/src && \ Wget cphalcon.zip && \ Unzip phalcon-v1.3.4.zip && \ Cd cphalcon-phalcon-v1.3.4/build/ && \ ./install && \ Cd ../../ && \ Rm -rf phalcon* && \ Rm -rf cphalcon-phalcon-v1* && \ Echo 'extension=phalcon.so' >> /etc/php.d/50-phalcon.ini && \ Chmod 755 /etc/php.d/50-phalcon.ini && \ Mv /tmp/config /etc/config CMD /bin/zsh
PHPは55を56にするとPHP56系が、Phalconは1.3.4を2.0.3に変えるとPhalcon2がインストールできます。
Dockerfileとおなじディレクトリにconfディレクトリを作成し、その中にnginx等の設定ファイルを置いて、ビルドは「docker build -t phalcon/test .」でok。 恐らく1gb弱のイメージができるので 「docker run --name phalcon-testy -p 8080:80 -p 8806:3306 -v /var/www/html:/var/www/html:ro -itd phalcon/test」 のような感じでコンテナを起動すればok。
場合によってCMDをENTRYPOINTに変えて運用したりする。