Ember + Docker在transpilation期间变慢

我试图Dockerize我的本地开发设置,以使其更容易新上任的开发人员。 我在Ember应用程序中的一部分设置。 我已经按照这个存储库中的说明进行了操作,但是当Ember应用程序启动时遇到了巨大的延迟。 它达到了Serving on http://localhost:4200点,然后在该消息和显示Ember CLI显示需要多长时间的输出之间存在显着的延迟(大约10分钟的时间)编译一切。 也就是说,所显示的编译时间只有几分钟。

我的docker-compose.yml文件:

 version: '2' services: nginx: container_name: 'nginx' image: jwilder/nginx-proxy volumes: - /var/run/docker.sock:/tmp/docker.sock:ro ports: - "80:80" - "443:443" frontend: container_name: 'frontend' env_file: .env depends_on: - nginx - api environment: - VIRTUAL_HOST=*.scout.dev - VIRTUAL_PORT=4200 image: scoutforpets/ember-cli command: bash -c "npm i && GIT_DIR=/tmp bower i --allow-root && ember s --watcher polling" volumes: - ./app-business/:/app/ - ./app-business/ssl/:/etc/nginx/certs/ ports: - "4200:4200" # Default Port - "49152:49152" # Live Reload Port api: container_name: 'api' env_file: .env command: bash -c "npm i -s && npm run start-debug" image: node:6.3.1 depends_on: - postgres - redis ports: - "3001:3001" # Default Port - "9229:9229" # Debug Port working_dir: /app/ volumes: - ./api/:/app/ postgres: container_name: 'postgres' image: scoutforpets/postgres ports: - "5432:5432" redis: container_name: 'redis' image: redis ports: - "6379:6379" 

请注意,我的项目从文件系统挂载(我正在运行OSX Yosemite)。 我已经听到关于挂载文件系统缓慢的一些谈话,但无法find明确的答案。

如果有人成功使用Ember + Docker,我很乐意听到你在做什么!

谢谢!

如果你使用的是Docker for Mac,那么这个ember build命令会有一个已知的问题。

文档: https : //docs.docker.com/docker-for-mac/troubleshoot/#/known-issues

使用osxfs进行绑定的目录性能有许多问题。 特别是,小块的写入和大目录的遍历目前是缓慢的。 此外,执行大量目录操作的容器(例如大型目录树的重复扫描)可能会受到较差的性能影响。 以这种方式运行的应用程序包括:

烬构build

Symfony的

Magento的

作为这种行为的解决方法,您可以将供应商或第三方库目录置于Docker卷中,在osxfs挂载之外执行临时文件系统操作,并使用第三方工具(如Unison或rsync)在容器目录之间进行同步,并绑定安装的目录。 我们正在使用多种不同的技术来积极开展osxfs的性能研究,我们期待着尽快与您分享改进。