Installation
The Dagger CLI is available for installation on macOS, Linux, and Windows to run locally or in a CI environment.
Install 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.15.1 BIN_DIR=/usr/local/bin sh
To see the installed version of dagger:
./bin/dagger version
# Expected output: dagger v0.15.1 (registry.dagger.io/engine:v0.15.1) darwin/amd64
The quickest way of installing 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.15.1 BIN_DIR=$HOME/.local/bin sh
To see the installed version of dagger:
./bin/dagger version
# Expected output: dagger v0.15.1 (registry.dagger.io/engine:v0.15.1) linux/amd64
The Dagger CLI can be installed on Windows via a PowerShell 7.0 script.
The quickest way of installing 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.15.1
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.15.1 release has a corresponding image at
registry.dagger.io/engine:v0.15.1
.
Each release notes the compatible Dagger Engine version in its release notes.