dockerコンテナ上のphpの設定が書き換わらない
私はdockerを使ってphp-fpm+nginx+mysqlを使った環境構築をしています。
ホスト上にあるphpの設定ファイルをdockerコンテナ(appコンテナ)の/etc/phpにマウントさせて、ホスト側の変更をコンテナに反映させるような運用をしようと考えております。
phpの設定ファイルの書き換えを今行っているのですが、appコンテナのターミナル上だと反映されているのは確認できるのですが、phpinfoなどでブラウザからアクセスしたときに見える値は変更されておらず、なぜなのか困っております。
設定したiniが間違っているなども無さそうですし、/etc/phpがマウントされていることも確認できました。
設定変更後の反映手順としては、appコンテナ上でphp-fpmを再起動してしまうとコンテナが落ちてしまうので(フォアグラウンドプロセスで動かしているため)、コンテナごと全て(php-fpm, nginx, mysql)再生成しました(docker ps -aで表示されるコンテナを一回rmしてからdocker-compose up -dで関係するコンテナを全て立ち上げ直しました。)
推測なのですが、コンテナ立ち上げ時のシーケンスがphp-fpmを自動起動してから、マウント作業をしているから、ホストの書き換えがphp-fpmに反映されないとかでしょうか。
■ appコンテナ上(ターミナル上だと変更されている)
root@70e3ff96a942:/# php -i | grep "post_max\|upload_max"
post_max_size => 64M => 64M (変更前は2M)
upload_max_filesize => 64M => 64M (変更前は2M)
■ docker-composeファイル
mysql:
image: <myregistory>:5000/hogehoge/image_resize_mysql
ports:
- 3306:3306
volumes:
- local/etc/mysql:/etc/mysql
- /data/log/mysql:/var/log/mysql
tty: true
app:
image: <myregistory>:5000/hogehoge/image_resize_app
volumes:
- local/etc/php:/etc/php
- /data/log/image_resize:/var/log/image_resize
- ../:/var/app
links:
- mysql
tty: true
nginx:
image: <myregistory>:5000/hogehoge/image_resize_nginx
ports:
- 80:80
- 443:443
volumes:
- local/etc/nginx:/etc/nginx
- /data/log/nginx:/var/log/nginx
- ../:/var/app
links:
- app
tty: true
■ phpinfoで確認できる設定値(64Mになっていない)
■ phpinfoで確認できるConfiguration file(php.ini)は書き換えています
■ Dockerfile of app container
FROM ubuntu:14.04
ENV PATH $PATH:/usr/bin
ENV DEBIAN_FRONTEND noninteractive
# Avoid ERROR: invoke-rc.d: policy-rc.d denied execution of start.
RUN sed -i "s/^exit 101$/exit 0/" /usr/sbin/policy-rc.d
RUN apt-get update
RUN apt-get -y install apt-file
RUN apt-file update
RUN apt-file search add-apt-repository
RUN apt-get -y install software-properties-common
RUN apt-get install -y language-pack-en-base
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E5267A6C
RUN LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
RUN apt-get update
RUN apt-get -y install php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl php5.6-zip php5.6-fpm
COPY ./launch.sh /launch.sh
ENTRYPOINT [ "/bin/bash", "/launch.sh"]