2016-08-14 94 views
3

我正在嘗試Dockerize我的本地開發設置,以使其在新開發人員面前更加簡單。我在Ember應用程序中的一部分設置。我已按照this repository的指示進行操作,但在Ember應用啓動時遇到了巨大的延遲。它達到了它說Serving on http://localhost:4200的地步,然後在該消息之間以及在Ember CLI顯示編譯所有內容需要多長時間的情況下出現顯着的延遲(大約10分鐘的時間)。也就是說,顯示的編譯時間只有幾分鐘。Ember + 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的優勝美地)安裝。我聽到有關掛載文件系統緩慢的一些對話,但無法找到明確的答案。

如果有人成功使用Ember + Docker,我很樂意聽到您在做什麼!

謝謝!

回答

4

如果您使用的是Docker for Mac,則存在ember build命令速度較慢的已知問題。

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

有許多與目錄的性能問題結合安裝與osxfs。特別是,小塊的寫入和大目錄的遍歷目前很慢。此外,執行大量目錄操作的容器(例如重複掃描大型目錄樹)可能會導致性能下降。以這種方式行事的應用包括:

燼建立

Symfony的

Magento的

作爲一個解決這個問題,你可以把廠商或第三Docker卷中的-party庫目錄,在osxfs掛載之外執行臨時文件系統操作,並使用第三方工具(如Unison或rsync)在Contai之間進行同步ner目錄和綁定安裝的目錄。我們正在使用許多不同的技術積極致力於osxfs性能,我們期待着儘快與您分享改進。