二度忘れた事を三度忘れないようにする

しがないフリーランスIT系エンジニア

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に変えて運用したりする。