Join our
Discord!
LogoLogo
SupraScan ExplorerStarKey WalletDiscord
MoveVM
  • Network
  • Oracles
  • Automation
  • Guides
MoveVM
  • Overview
  • Getting Started
    • Install Supra CLI with Docker
    • Create a Supra Account
    • Create a Move Package
      • Initialize a Package
      • Write a Module
      • Compile and Publish
      • Interact with a Package
    • Create a dApp with StarKey
  • Network Information
  • Token Standards
  • Learn Move 101
    • Getting Started with Move
    • Unsigned Integers in Move
    • Math Operations in Move
    • Using Vectors in Move
    • Reading Resource Data with borrow_global
    • Passing Data in Move: Value vs. Reference
    • Adding Elements with vector::push_back
    • Emitting Events with event::emit
  • Move Book
    • Getting Started
      • Modules and Scripts
      • Move Tutorial
    • Primitive Types
      • Integers
      • Bool
      • Address
      • Vector
      • Signer
      • References
      • Tuples and Unit
    • Basic Concepts
      • Local Variables and Scope
      • Equality
      • Abort and Assert
      • Conditionals
      • While, For, and Loop
      • Functions
      • Structs and Resources
      • Constants
      • Generics
      • Type Abilities
      • Uses and Aliases
      • Friends
      • Packages
      • Package Upgrades
      • Unit Tests
    • Global Storage
      • Structure
      • Operators
    • Reference
      • Standard Library
      • Coding Conventions
  • TypeScript SDK
    • Guides
      • Create Supra Accounts
      • Publish a Package
    • Documentation
    • Repository
  • Rest API
    • Mainnet
      • Accounts
      • Faucet
      • Transactions
      • Block
      • View
      • Consensus
      • Events
      • Tables
    • Testnet
      • Accounts
      • Faucet
      • Transactions
      • Block
      • View
      • Tables
      • Events
  • Developer Resources
    • Supra Dapp Templates
    • Supra Move VS Code Extension
  • Links
    • Supra DevHub
    • SupraScan Block Explorer
    • StarKey Wallet
    • Live Data Feeds
    • Whitepapers
    • Security Audits
    • Supra's Official GitHub
Powered by GitBook
On this page
  • Prerequisites
  • Install and Setup the CLI
Edit on GitHub
  1. Getting Started

Install Supra CLI with Docker

Installation of the Supra CLI using Docker.

PreviousGetting StartedNextCreate a Supra Account

Last updated 6 days ago

On May 2nd, 2025 a new version of the CLI was released. To update your CLI to the latest version, please repeat the steps below.

Prerequisites

The installation process of Docker is straight forward and requires no additional configuration. The only requirement to proceed is to ensure the is running. If you installed Docker Engine, opening the program will start the daemon.

Install and Setup the CLI

1

Start the container with Docker Compose

Open your terminal and cd to the directory on your machine where you wish to setup the CLI. For convenience, we recommend creating a directory named supra within your documents directory. However, this is entirely arbitrary and there will be no repercussions for choosing differently.

compose.yaml is a YAML configuration file that contains all of the parameters needed to configure the container. The file contains the link to the Docker Image containing the Supra CLI binary, bind mount paths to enable file sharing between the host machine/container, and more. You can read more about .

The following command will use the latest compose file (which you can ) and pipe it into the Docker Compose command. This will pull the latest image, create, and start the container.

execute me!
curl -s https://raw.githubusercontent.com/Entropy-Foundation/supra-dev-hub/refs/heads/main/Scripts/cli/compose.yaml | docker compose -f - up -d

Once executed, the supra_cli container will be created. If a supra_configs directory does not already exist within your current working directory, one will be created for you.

The supra_configs directory will be to the configs directory within the Docker container. Files within these directories will coexist between the host machine and the container. Generated key profiles, logs, and more can be found within these folders. This setup is defined within the compose.yaml file under the volumes section.

You can confirm that the container is running by executing docker ps --all. This command will output all docker containers that exist on your machine, whether they are running or stopped.

2

Enter the shell of the container

Docker containers are a form of virtualization that contain everything needed to run the desired application. This makes the distribution and setup of the Supra CLI extremely convenient. There are many useful actions that can be taken with this setup, but for now it is important to recognize that the CLI itself is executed within the container, not on your host machine.

To interact with the Supra CLI, we must enter the shell of the container. This will allow us to execute commands within the container from our host machine.

execute me!
docker exec -it supra_cli /bin/bash 

Once inside, execute the ls command to gain a simple understanding of the file system. The displayed configs directory is bind mounted to the supra_configs directory on your host machine. These directories are shared/linked between your host machine and the container.

3

Execute the supra command

Within the shell of the container, CLI commands operate in the same manner as you would expect on your host machine. For example, executing commands such as supra move tool init will initialize the new module within your current working directory. You may view all available arguments of any command by passing the --help argument.

Example: supra move tool init --help

Docker
Windows
Mac
Linux
Docker post-installation steps
Docker Cheat Sheet
Docker Daemon
how compose works here
view here
bind mounted
Note: "supra" is the CLI binary within the container. The compose file automatically setup the alias to interact with the binary using the "supra" command.