Skip to main content

Quickstart

Welcome to Dagger, a programmable tool that lets you replace your software project's artisanal scripts with a modern API and cross-language scripting engine.

Dagger helps you create a consistent, reliable development and testing environment on your local host and ensure that everything your CI can do, your local environment can do too.

Topics

This quickstart introduces you to:

  • The Dagger API, which lets you use core primitives to stitch together powerful pipelines out of containers, artifacts, network services, and secrets – all in type-safe Go, Python or TypeScript.
  • Dagger Functions, which let you encapsulate code into software components which can be loaded into any Dagger Engine, and called by other Dagger Functions.
  • The Dagger CLI, which lets you create, inspect and invoke Dagger Functions from the command line.
  • Dagger Cloud, which lets you visualize your Dagger pipelines, streamline them, and debug errors.
  • The Daggerverse, which lets you search and consume publicly available Dagger Functions.

Goal

After going through this quickstart, you will have the tools and skills to test, build and release your application using Dagger Functions.

Approach

This quickstart is structured as a hands-on workshop, in which you will create and run Dagger Functions to test, build and publish an example application.

  • To begin, you will build a delivery pipeline for the example application using only the Dagger API. This is an important first step to learn how Dagger works and to understand key concepts and techniques.
  • Next, you will simplify the pipeline using a Dagger module from the Daggerverse. This introduces you to the Daggerverse and the reusability benefits it offers.

Requirements

This quickstart will take you approximately 25 minutes to complete. You should be familiar with programming in Go, Python or TypeScript.

Before beginning, ensure that:

  • you know what Dagger is.
  • you have Git and a container runtime installed on your system and running. This can be Docker, but you can also use Podman, nerdctl, or other Docker-like systems.
  • you have a GitHub account (optional, only if configuring Dagger Cloud)