

私は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コンテナ上(ターミナル上だと変更されている)

[code]

    root@70e3ff96a942:/# php -i | grep "post_max\|upload_max"
    post_max_size => 64M => 64M (変更前は2M)
    upload_max_filesize => 64M => 64M (変更前は2M)
    
[/code]

■ docker-composeファイル

[code]

        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
    
[/code]

■ phpinfoで確認できる設定値(64Mになっていない)  
[![画像の説明をここに入力](https://i.stack.imgur.com/Rwh7p.png)](https://i.stack.imgur.com/Rwh7p.png)

■ phpinfoで確認できるConfiguration file(php.ini)は書き換えています  
[![画像の説明をここに入力](https://i.stack.imgur.com/O0pdm.png)](https://i.stack.imgur.com/O0pdm.png)

■ Dockerfile of app container

[code]

        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"]
    
[/code]


CC BY-SA 3.0
2017-07-11T08:09:59.850
36276
2017-07-13T09:47:20.190
2017-07-11T11:55:09.143
10222
10222
question
php docker
dockerコンテナ上のphpの設定が書き換わらない


本件に関しましてloaded configuration fileがphp-
fpm.confだったため、iniファイルを見に行っておりませんでした。なので、本件解消しました

※ コメント欄に間違って本件解消のコメントしてしまったので、こちらの回答欄にも投稿します


CC BY-SA 3.0
2017-07-13T09:47:20.190
36323
2017-07-13T09:47:20.190
10222
36276
answer