matreyes
Elixir slow in devcontainer (vscode and docker)
Just wanted to share my experience:
I was suffering with my elixir vscode devcontainer (docker) environment, because tests took ~20 seconds to start running.
I tried delegating the workspace:
- ..:/workspace:delegated
This makes the shared folder (between the container and the host) to write first on the container and to be eventually consistent with the host, so it doesn’t try to sync all the time.
At the beginning it worked, but sometime at the beginning of this year (2021) slowed down again.
Finally got with this amazing post by Marcus Baguley, that recommends to change the /deps and /_build folder to somewhere outside the workspace folder:
https://stories.abletech.nz/optimising-docker-for-mac-and-elixir-130db4ecd7c3
And now it works as expected.
Totally recommended for your dev environment!
Marked As Solved
matreyes
Oh, I discovered that It was easier than what Marcus sugested
the env variables MIX_BUILD_ROOT and MIX_DEPS_PATH overrides build_path and deps_path, so you just have to add
environment:
MIX_BUILD_ROOT: /opt/elixir-artifacts/_build
MIX_DEPS_PATH: /opt/elixir-artifacts/deps
volumes:
- elixir-artifacts:/opt/elixir-artifacts
to your docker-compose 
Also Liked
cnck1387
Another benefit besides speed from moving your build deps out of your volume mount path is that you will no longer have a bunch of dependencies volume mounted back to your dev box, so things stay tidy.
It’s also a discussion point in my upcoming DockerCon talk because this concept applies to other things too like node_modules/.
egze
That’s cool. Thanks for sharing
quatermain
Did you try .dockerignore file where you can put folders to ignore and Docker will not use them for loading?







