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 configuration [options]

Manage configurations for your projects.

$ emily configuration

? Emily: Choose a project(Use arrow keys, confirm with ENTER)> M9VHKD - my-project
AB82JD - movie-recommender
· M9VHKD - my-project
? Emily: Please select an action(Use arrow keys, confirm with ENTER)> + Add a configuration
- Remove a environment
·

Emily Configurations

In Emily, projects are developed and deployed by means of three core concepts: environments, configuration, and deployments. In Emily, configurations define either the Docker Compose or Kubernetes configurations that a project runs within.

An Emily configuration is simply a directory <project root>/configurations/<configuration> containing either docker-compose.*.yml or Kubernetes YAML files.

When building a project, Emily will automatically create <project root>/configurations/dev/docker-compose.emily.yml with a basic Docker Compose configuration. The user can freely modify this file or add additional docker-compose.yml files.

When running a project - both locally and remotely - Emily will apply all the docker-compose.*.yml files in the specified configuration directory. When applying Docker Compose files, Emily will always apply docker-compose.emily.yml first, so any other docker-compose.*.yml file added to a configuration directory will override the settings specified by docker-compose.emily.yml.

Environment variables

When running and deploying a project, the user specifies both an environment and a configuration. Emily automatically merges the environment files into a single .env file inside the configuration directory.

As such, any environment variable specified in the environment will be available as a substitute variable in the docker-compose.*.yml files, and can additionally be provisioned to each Docker Compose service with the env_file service property.

Docker Compose vs. Kubernetes

Docker Compose configurations (created with emily configuration add compose) can be used when running locally or deploying to a server.

Kubernetes configurations (created with emily configuration add kubernetes) can currently only be used when deploying to a Kubernetes cluster.

    Options

  • -h,--help

    Display help for command

  • -p,--project<project>

    The project to manage configurations for.

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