Emily CLI Documentation
Release-v3.0.6Emily combines the powers of Python and Docker to build stable and consistent machine learning and datascience python environments. Emily is useful for large cross-team project development as well as for simply running a single jupyter notebook or python script.
Downloademily@latest
See earlier versions
$ emily mount [project] [options]
Mount a directory from the host into an Emily container.
$ emily mount
? Emily: Choose a project
(Use arrow keys, confirm with ENTER)
…
> M9VHKD - my-project
AB82JD - movie-recommender
· M9VHKD - my-project
? Emily: Please select a configuration
(Use arrow keys, confirm with ENTER)
…
> dev
· dev
√ Emily: Enter the directory to mount into the container:
· ./data/training
√ Emily: Enter the mount destination inside the container:
· /workspace/data/training
Mounting directories to your projects
The emily mount
command is used to mount a directory from the host your project is running on into the project container.
--from <path>
The --from <path>
flag takes the directory on the host to mount into the container.
- If the path is defined relatively (e.g.
./my-data
), the directory will be mapped relative to the project root directory. - If the path is defined absolutely (e.g.
/my/data
), the directory will be mapped as-is.
--to <path>
The --to <path>
flag takes the directory in the container to map the host directory into.
- The mount destination must be an absolute, POSIX path
- The mount destination cannot end with
/
Mounts are configuration-specific; different configurations can have different mount destinations configured in them.
When a mount is added to a project, the mount destination is written to ./configurations/<configuration>/mounts.json
:
[ "/workspace/data/training", "/workspace/data/test" ]
By default, a mount mapping is also added to the deployment specification provided with the --deployment
flag (default: local
).
A mount mapping is deployment-specific; different deployments can have different mount mappings. This is to ensure that, regardless of what mount destinations a configuration contains, the
destinations will be correctly mapped by virtue of the deployment specification used to deploy it.
// ./deployments/local/deployment.json { ... "mounts": [ { "from": "/Users/me/data/training", "to": "/workspace/data/training" }, { "from": "/Users/me/data/test", "to": "/workspace/data/test" } ] } // ./deployments/production/deployment.json { ... "mounts": [ { "from": "/root/my-project/data/training", "to": "/workspace/data/training" }, { "from": "/root/my-project/data/test", "to": "/workspace/data/test" } ] }