如何在本地机器上使用nginx和php7-fpm增加docker的加载时间

时间:2017-11-21 10:01:40

标签: php wordpress docker nginx

在我的本地机器上,使用nginx和php7-fpm的Docker上的WordPress页面加载时间非常慢,并且在网络调用中,它显示2到4秒加载第一个doc。但是当我计算PHP执行时间时,它显示我0.02 - 0.1秒。如何优化docker设置以加速本地环境?

下面是我当地环境的一些细节

My Local Environment已在Mac Sierra上设置,我通过

运行docker

docker-compose up -d

这是我的docker-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

1 个答案:

答案 0 :(得分:0)

我要尝试的第一件事是将Dockerfile更新为ADDCOPY将所有文件更新到每个图像中,而不是将它们作为卷安装。 @ fiber-optic在评论中提到了这一点,但是你的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表示主机的文件具有权威性,容器不会在内部不断检查更新。这通常适用于您在主机上编辑的代码。