Emily CLI Documentation

Release-v3.0.6

Emily 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.

Download emily@v3.0.6
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" } ] }

    Options

  • -h,--help

    Display help for command

  • -c,--configuration[name]

    Project configuration to add a mount to.

  • -d,--deployment<name>

    Project deployment to create a mount mapping for. (default: local)

  • -f,--from<path>

    Local source directory to mount.

  • -t,--to<name>

    Target directory in container.

  • -s,--silent

    Execute Emily silently. (default: false)

  • -u,--update(--no-update)

    Prompt for update if newer version found. (default: true)

  • -vb,--verbose

    Print detailed information while running commands.