Skip to content

Feature Request | Remove Docker Dependency from Leverage CLI #313

@exequielrafaela

Description

@exequielrafaela

Feature Request: Remove Docker Dependency from Leverage CLI

Describe the Feature

The Leverage CLI currently relies on Docker to encapsulate tool dependencies and execute commands. We propose removing this Docker dependency in favor of a native execution model (e.g., using Python +uv or system-installed tools) and environment variable–based credential handling.

Expected Behavior

  • The CLI should run directly on the user's machine without requiring Docker to be installed or running.
  • Authentication credentials (e.g., AWS temporary credentials) should be passed via environment variables or local config files, eliminating the need for containerized credentials or ENTRYPOINT logic.
  • Users can execute commands like leverage tf shell without installing or troubleshooting Docker.

Use Case

Current behavior causes friction when Docker isn’t installed, isn’t allowed due to company policy, or fails in macOS after Docker updates. Users experience environment mismatches, docker-in-docker complexity, cache issues, and slow startup times. A Dockerless CLI would:

  • Simplify onboarding and reduce cognitive overhead.
  • Cut down on maintenance effort and improve reliability.
  • Allow easier local debugging and integration with native tooling.

Describe Ideal Solution

  • Refactor the CLI to run all commands directly, eliminating Dockerfile, container build logic, and entrypoint.sh.
  • Use uv or system dependencies for OpenTofu / Terraform, AWS CLI, kubectl, etc.
  • Credentials should be passed via AWS_PROFILE, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, or leveraging existing AWS SDK configuration.
  • Remove all Docker-related features and files; repurpose CI to install required tools or reference official Dockerless workflows.
  • Provide a clear migration guide for users transitioning from Docker-based CLI to native CLI.

Additional Context

This change was discussed among the core team as a means to simplify CLI maintenance and tooling. Removing Docker would:

  • Reduce breakage related to Docker version mismatches or system upgrades.
  • Align with best practices for CLI tooling portability.
  • Enable smoother local development workflows and CI integration.

By adopting this approach, the Leverage CLI becomes leaner, easier to maintain, and more robust across a variety of developer environments.

Metadata

Metadata

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions