Installation
Release type
The Dagger CLI is available for installation on macOS, Linux, and Windows to run locally or in a CI environment.
Stable release
Install the latest stable release of the Dagger CLI following the steps below.
- macOS
- Linux
- Windows
We assume that you have Homebrew installed. If you do, you can install dagger with a single command:
brew install dagger/tap/dagger
This installs dagger in:
type dagger
# Expected output on macOS ARM:
# dagger is /opt/homebrew/bin/dagger
# Expected output on macOS Intel:
# dagger is /usr/local/bin/dagger
If you do not have Homebrew installed, you can use install.sh:
curl -fsSL https://dl.dagger.io/dagger/install.sh | BIN_DIR=/usr/local/bin sh
If your user account doesn't have sufficient privileges to install in
/usr/local and sudo is available, you can set BIN_DIR and use sudo -E:
curl -fsSL https://dl.dagger.io/dagger/install.sh | BIN_DIR=/usr/local/bin sudo -E sh
If you want to set a specific version, you can set DAGGER_VERSION:
curl -fsSL https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.16.3 BIN_DIR=/usr/local/bin sh
To see the installed version of dagger:
./bin/dagger version
# Expected output: dagger v0.16.3 (registry.dagger.io/engine:v0.16.3) darwin/amd64
The quickest way of installing the latest stable release of dagger on Linux is to use install.sh:
curl -fsSL https://dl.dagger.io/dagger/install.sh | BIN_DIR=$HOME/.local/bin sh
This installs dagger in $HOME/.local/bin:
type dagger
# Expected output: dagger is $HOME/.local/bin/dagger
You may need to add it to your $PATH environment variable.
If you want to install globally, and sudo is available, you can specify an
alternative install location by setting BIN_DIR and using sudo -E:
curl -fsSL https://dl.dagger.io/dagger/install.sh | BIN_DIR=/usr/local/bin sudo -E sh
If you want to set a specific version, you can set DAGGER_VERSION:
curl -fsSL https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.16.3 BIN_DIR=$HOME/.local/bin sh
To see the installed version of dagger:
./bin/dagger version
# Expected output: dagger v0.16.3 (registry.dagger.io/engine:v0.16.3) linux/amd64
The Dagger CLI can be installed on Windows via a PowerShell 7.0 script.
The quickest way of installing the latest stable release of dagger on Windows is to use install.ps1:
Invoke-WebRequest -UseBasicParsing -Uri https://dl.dagger.io/dagger/install.ps1 | Invoke-Expression; Install-Dagger
To install Dagger to a custom location, specify the location using the -InstallPath parameter.
Invoke-WebRequest -UseBasicParsing -Uri https://dl.dagger.io/dagger/install.ps1 | Invoke-Expression;
Install-Dagger -InstallPath C:\tools\dagger
To install a specific version of Dagger, specify the version with the -DaggerVersion parameter.
Invoke-WebRequest -UseBasicParsing -Uri https://dl.dagger.io/dagger/install.ps1 | Invoke-Expression;
Install-Dagger -DaggerVersion 0.16.3
For an interactive installation process, include the -Interactive switch.
Invoke-WebRequest -UseBasicParsing -Uri https://dl.dagger.io/dagger/install.ps1 | Invoke-Expression;
Install-Dagger -Interactive
For further customization, such as adding Dagger to your system's PATH, additional parameters are available. To view all available options:
Invoke-WebRequest -UseBasicParsing -Uri https://dl.dagger.io/dagger/install.ps1 | Invoke-Expression;
Get-Command -Name Install-Dagger -Syntax
By default, without specifying the -InstallPath, Dagger will be installed in the <your home folder>\dagger directory.
To verify that Dagger has been installed correctly, use where.exe
where.exe dagger
# Expected output: C:\<your home folder>\dagger\dagger.exe
Update
To update the Dagger CLI, use the same method that you originally used to install it. This will overwrite your currently-installed version with the latest (or specified) version.
Homebrew users can alternatively use the following commands:
brew update
brew upgrade dagger
Uninstallation
Remove the Dagger CLI using the following command:
sudo rm /usr/local/bin/dagger
Homebrew users can alternatively use the following command:
brew uninstall dagger
Next, remove the Dagger container using the following commands:
docker rm --force --volumes "$(docker ps --quiet --filter='name=^dagger-engine-')"
Finally, remove the dagger sub-directory of your local cache and configuration directories ($XDG_CACHE_HOME and $XDG_CONFIG_HOME on Linux or the equivalent for other platforms):
- macOS
- Linux
rm -rf ~/Library/Caches/dagger
rm -rf ~/Library/Application\ Support/dagger
rm -rf ~/.cache/dagger
rm -rf ~/.config/dagger
The paths listed above are defaults and may require adjustment for your specific environment. The third-party packages Dagger uses to determine these paths are listed below:
- Go (SDK and CLI): https://github.com/adrg/xdg
- Node.js: https://github.com/sindresorhus/env-paths
- Python: https://github.com/platformdirs/platformdirs
Versioning
The Dagger CLI is released in tandem with the Dagger Engine and thus shares a version number with it. Dagger SDKs automatically provision a Dagger Engine at a compatible version.
The Dagger Engine runner is distributed as a container image at registry.dagger.io/engine. Tags are made for the version of each release. For example, the 0.16.3 release has a corresponding image at
registry.dagger.io/engine:v0.16.3.
Each release notes the compatible Dagger Engine version in its release notes.