2017-11-21 13 views
1

ローカルマシンでは、WordPressページの読み込み時間がnginxとphp7-fpmのドッカーで非常に遅く、ネットワークショーでは2〜4秒最初のドキュメントを読み込みます。しかし、私はPHPの実行時間を計算すると0.02 - 0.1秒が表示されます。ドッカーの設定を最適化してローカル環境をスピードアップするにはどうすればよいですか?以下ローカルマシンでnginxとphp7-fpmを使用してドッカーの読み込み時間を増やす方法

私の地元の環境のいくつかの詳細は

私のローカル環境はMacのシエラに設定して、私は

docker-compose up -d

、ここによるドッキングウィンドウが私のドッキングウィンドウ-compose.ymlファイルで実行されています私がしようとするだろう

version: '2' 
services: 
    mysql: 
    container_name: db 
    image: mysql 
    environment: 
     - MYSQL_ROOT_PASSWORD=dummy 
     - MYSQL_DATABASE=dummy 
     - MYSQL_USER=dummy 
     - MYSQL_PASSWORD=dummy 
    volumes: 
     - dummy_path/dump.sql.gz:/docker-entrypoint-initdb.d/sql1.sql.gz 
    nginx: 
    container_name: nginx 
    image: nginx:latest 
    ports: 
     - "80:80" 
     - "443:443" 
    links: 
     - mysql:db 
     - php 
    volumes: 
     - dummy_path:/app/www 
     - dummy_path/nginx/conf.d/:/etc/nginx/conf.d/ 
     - dummy_path/nginx/ssl:/etc/ssl/ 
     - dummy_path/nginx/nginx.conf/:/etc/nginx/nginx.conf 
     - dummy_path/hosts:/etc/hosts 
    php: 
    container_name: php 
    image: droidhive/php-memcached 
    links: 
     - mysql:db 
     - memcached 
    volumes: 
     - dummy_path:/app/www 
     - dummy_path/php/custom.ini:/usr/local/etc/php/conf.d/custom.ini 
     - dummy_path/hosts:/etc/hosts 
    memcached: 
    container_name: memcached 
    image: memcached 
    volumes: 
     - dummy_path:/app/www 
+0

ドッキング用のコンテナをどのように起動するのか分かり、nginxの設定に何が入っているのかよく分かると助けになります。それ以外の場合は、一般的な/無関係な回答や単純なdownvotesが必要です。 – Stefano

+0

ホストマシンにMacまたはLinuxを使用していますか?あなたはWordpress/Dockerを実行するときに任意のボリュームをマウントしていますか? Dockerfile、使用している 'docker run'コマンド、' docker-compose.yml'ファイル(もしあれば)を投稿できますか? – karllhughes

+0

@Stefano私は 'docker-compose up -d'で実行しました –

答えて

0

まず最初はADDまたはCOPYにごDockerfileを更新することですボリュームとしてマウントするのではなく、各イメージにファイルを置きます。 @光ファイバは、コメントでこれを述べたが、あなたのPHPのコンテナのための新しいDockerfileはこのようなものになるだろう:

FROM droidhive/php-memcached 
ADD dummy_path:/app/www 
ADD dummy_path/php/custom.ini:/usr/local/etc/php/conf.d/custom.ini 
ADD dummy_path/hosts:/etc/hosts 

少なくともPHPコンテナのためにこれを行いますが、MySQLのコンテナも問題になる可能性があります。

それでも問題が解決しない場合は、:roまたは:cachedを各ボリュームに追加してみてください。

:roは、コンテナがボリュームが変更されないと想定できる「読み取り専用」を意味します。明らかに、ボリューム内のコードでローカルの開発者を実行する必要がある場合、これはうまくいかないでしょうが、いくつかの設定ファイルではこれはうまくいくでしょう。

:cachedは、ホストのファイルが信頼できることを意味し、コンテナは常に内部的に更新をチェックしません。これは通常、ホスト上で編集しているコードに最適です。

+0

ありがとうございます。 –