Docker mac symfony 3非常慢

J. *_*Doe 5 symfony docker docker-compose

我正在使用Symfony 3开始一个新项目,我想将Docker用于开发环境.我们将与十几个开发人员一起开展这个项目,所以我希望有一个简单的安装过程.

这是我的docker-compose.yml

version: '2'
services:
db:
    image: mysql
    ports:
        - "3307:3306"
    environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: mydb
        MYSQL_USER: root
        MYSQL_PASSWORD: root
php:
    build: ./php-fpm
    expose:
        - "9001"
    volumes:
        - .:/var/www/project
        - ./var/logs:/var/www/project/app/logs
    links:
        - db
nginx:
    build: ./nginx
    ports:
        - "8001:80"
    links:
        - php
    volumes_from:
        - php
    volumes:
        -  ./var/logs/nginx/:/var/log/nginx
Run Code Online (Sandbox Code Playgroud)

我安装了最近的Docker for Mac应用程序(测试版).最大的问题是我的symfony应用程序非常慢(一个简单的页面需要超过5秒).与MAMP相同的应用程序要快得多(最多500毫秒).这是Docker的已知问题吗?我该怎么调试呢?

小智 6

这是一个已知问题.您的本地文件系统正在使用osxfs安装在Docker for Mac linux VM中,在读取和写入这些已安装的文件时会有一些额外的延迟.对于小型应用程序而言,这并不太明显,但对于可以在单个请求中读取数千个文件的大型应用程序,它可以显着降低速度.


小智 5

对不起,迟到的答案,但你可以安装docker ce edge导致它支持缓存模式.

  • 下载Docker-Edge(等待支持缓存模式的稳定版docker)
  • 将以下行添加到docker-compose.yml文件中

大段引用

php:
    volumes:
        - ${SYMFONY_APP_PATH}:/var/www/symfony:cached
Run Code Online (Sandbox Code Playgroud)

用您自己的路径替换$ {SYMFONY_APP_PATH}.