在我的本地机器上,使用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
答案 0 :(得分:0)
我要尝试的第一件事是将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
表示主机的文件具有权威性,容器不会在内部不断检查更新。这通常适用于您在主机上编辑的代码。