Elixir在phoenix代码重新加载器打开的情况下在docker中请求变慢

时间:2019-06-14 19:26:10

标签: docker elixir phoenix-framework

我目前使用docker-sync,但是当更改许多文件时,更改分支时会崩溃很多。我试图找到一种在不使用卷的情况下不使一切工作的方法,但是我遇到了典型的Mac卷性能问题。

通过这种配置,我可以使容器中的所有内容运行得很快,但是,当启用代码重新加载器时,每个网络请求都会变慢(我猜是因为它正在扫描整个目录)。是否有解决方法,仍然可以重新编译更改?

version: '3.7'

services:
  phoenix:
    image: us.gcr.io/zipbooks-157701/phoenix
    volumes:
      - ./phoenix-api:/app/phoenix-api:delegated
      - /app/phoenix-api/deps/
      - /app/phoenix-api/_build/
    environment:
      DB_PASSWORD: root
      DB_HOSTNAME: mysql
      TESTING_DB_HOSTNAME: mysql
      REDIS_HOST: redis
    depends_on:
      - mysql
      - redis

...

1 个答案:

答案 0 :(得分:2)

有两件事:代码重新加载器,它在每个请求上编译您的代码;和实时重新加载器,它扫描文件系统中的更改。代码重新加载器应与调用mix compile一样快。实时重新加载器是完全可选的(仅通过websockets重新加载)。

如果问题在实时重新加载器中,则可以将其删除,也可以限制其监视性能的目录。请参阅自述文件中的相关说明:https://github.com/phoenixframework/phoenix_live_reload#backends