Concourse
Open-source continuous integration and deployment system based on declarative pipelines and isolated containers.
Updated on January 19, 2026
Concourse is an open-source continuous integration and deployment (CI/CD) platform distinguished by its declarative and containerized approach. Unlike traditional solutions, Concourse models pipelines as explicit dependency graphs where each task runs in an ephemeral container. This architecture guarantees reproducibility, isolation, and transparency of automation processes.
Fundamentals
- Pipelines defined in YAML with declarative syntax and no server-side persistent state
- Each step executes in isolated Docker containers ensuring reproducibility
- Model based on resources (inputs/outputs) and interconnected jobs forming a DAG
- No plugins or extensions: all logic resides in pipelines and container images
Benefits
- Complete reproducibility: builds always run in clean and identical environments
- Maximum visibility: graphical interface showing dependencies and real-time state
- Horizontal scalability through stateless distributed worker architecture
- Enhanced security via container isolation and granular credential management
- Full Infrastructure as Code: versioned and auditable pipelines in Git
Practical Example
resources:
- name: app-repo
type: git
source:
uri: https://github.com/company/app.git
branch: main
- name: docker-image
type: docker-image
source:
repository: company/app
tag: latest
jobs:
- name: test-and-build
plan:
- get: app-repo
trigger: true
- task: run-tests
config:
platform: linux
image_resource:
type: docker-image
source: {repository: node, tag: "18"}
inputs:
- name: app-repo
run:
path: sh
args:
- -c
- |
cd app-repo
npm install
npm test
- put: docker-image
params:
build: app-repo
dockerfile: app-repo/DockerfileThis pipeline monitors a Git repository, runs tests in an isolated Node.js container, then builds and publishes a Docker image if tests pass. Each step is atomic and traceable.
Implementation
- Deploy Concourse via docker-compose, Helm, or BOSH depending on target infrastructure
- Configure workers with sufficient resources for parallel container execution
- Define pipelines in YAML by identifying resources (git, S3, registries) and jobs
- Apply pipelines with fly CLI: `fly -t target set-pipeline -p name -c pipeline.yml`
- Configure credentials via Vault, CredHub, or integrated secret managers
- Monitor exposed Prometheus metrics for system observability
- Implement automatic worker rotation for maintenance
Pro tip
Use custom resource types to integrate specific systems (Terraform, Kubernetes, internal APIs). Create base Docker images containing your common tools to accelerate task execution. Structure complex pipelines into modular YAML files loaded via `load_var` to maintain readability.
Related Tools
- fly CLI: command-line tool to manage pipelines and interact with Concourse
- CredHub/Vault: secret managers to secure pipeline credentials
- Prometheus/Grafana: monitoring stack to visualize performance metrics
- Docker/containerd: container runtime for task execution
- BOSH: deployment manager for highly available production installations
- Terraform: to provision Concourse infrastructure as code
Concourse represents a modern approach to CI/CD that prioritizes conceptual simplicity, transparency, and reproducibility. By eliminating hidden states and containerizing each step, it provides DevOps teams with a reliable platform to automate complex workflows while maintaining complete traceability. Its declarative model naturally integrates with GitOps and Infrastructure as Code practices, enabling rigorous governance of software delivery processes.
