在我的本地机器上,使用 nginx 和 php7-fpm 的 docker 上的 WordPress 页面加载时间非常慢,并且在网络调用中显示 2 - 4 秒来加载第一个文档。但是当我计算 PHP 执行时间时,它显示了 0.02 - 0.1 秒。如何优化 docker 设置以加速本地环境?
以下是我本地环境的一些细节
我的本地环境是在 Mac Sierra 上设置的,我通过以下方式运行 dockerdocker-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
最佳答案
我会尝试的第一件事是将您的 Dockerfile 更新为 ADD
或 COPY
所有文件到每个图像中,而不是将它们作为卷安装。 @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
意味着主机的文件是权威的,并且容器不会不断地在内部检查更新。这通常是您在主机上编辑的代码的理想选择。
关于php - 如何在本地机器上使用 nginx 和 php7-fpm 增加 docker 的加载时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47410213/