docker.recipes

Argo CD

advanced

Declarative GitOps continuous delivery tool for Kubernetes.

Overview

Argo CD is a declarative GitOps continuous delivery tool specifically designed for Kubernetes environments. Born from the need to apply Git-based workflows to Kubernetes deployments, Argo CD treats Git repositories as the single source of truth for application configurations and desired system state. This approach eliminates configuration drift and provides complete audit trails for all deployment changes. This Docker stack runs Argo CD server in insecure mode, making it ideal for development environments, proof-of-concepts, or local testing scenarios where you need to quickly evaluate GitOps workflows without the complexity of full Kubernetes TLS setup. The container exposes the web UI and API server, allowing you to define applications, connect Git repositories, and observe deployment status through an intuitive dashboard. Development teams transitioning to GitOps, platform engineers building CI/CD pipelines, and organizations seeking to standardize Kubernetes deployments will find this configuration valuable for experimentation and learning. While production deployments typically require full Kubernetes installation with proper RBAC and TLS, this containerized approach lets you explore Argo CD's declarative application management, automated synchronization, and rollback capabilities without infrastructure overhead.

Key Features

  • GitOps-based deployments using Git repositories as the source of truth
  • Declarative application definitions with YAML manifests
  • Automated synchronization with manual override capabilities
  • Real-time application health monitoring and drift detection
  • One-click rollback to previous application versions
  • Multi-cluster deployment management from single interface
  • Resource hooks for custom deployment lifecycle actions
  • Web-based UI for visual application topology and status monitoring

Common Use Cases

  • 1Development teams learning GitOps workflows before Kubernetes deployment
  • 2Platform engineers prototyping continuous delivery pipelines
  • 3Organizations evaluating GitOps tools for Kubernetes deployments
  • 4DevOps training environments for hands-on GitOps experience
  • 5Local testing of application manifests and deployment strategies
  • 6Demonstration environments for showcasing GitOps capabilities
  • 7Integration testing with Git repositories and webhook configurations

Prerequisites

  • Docker and Docker Compose installed with minimum 1GB available RAM
  • Basic understanding of Kubernetes concepts and YAML manifests
  • Git repository with Kubernetes application definitions ready for testing
  • Port 8080 available on the host system for web interface access
  • Familiarity with GitOps principles and declarative configuration management
  • Argo CD CLI installed locally for command-line operations (optional but recommended)

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 argocd:
3 image: quay.io/argoproj/argocd:latest
4 container_name: argocd
5 command: ["argocd-server", "--insecure"]
6 restart: unless-stopped
7 ports:
8 - "8080:8080"
9 volumes:
10 - argocd_data:/home/argocd
11
12volumes:
13 argocd_data:

.env Template

.env
1# Use kubectl for full ArgoCD setup
2# This is a simplified standalone version

Usage Notes

  1. 1Docs: https://argo-cd.readthedocs.io/en/stable/
  2. 2Access at http://localhost:8080 - running in insecure mode
  3. 3For production: deploy via Kubernetes manifests or Helm
  4. 4Initial admin password: kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d
  5. 5Install CLI: brew install argocd (or download from releases)
  6. 6App-of-Apps pattern recommended for managing multiple applications

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 argocd:
5 image: quay.io/argoproj/argocd:latest
6 container_name: argocd
7 command: ["argocd-server", "--insecure"]
8 restart: unless-stopped
9 ports:
10 - "8080:8080"
11 volumes:
12 - argocd_data:/home/argocd
13
14volumes:
15 argocd_data:
16EOF
17
18# 2. Create the .env file
19cat > .env << 'EOF'
20# Use kubectl for full ArgoCD setup
21# This is a simplified standalone version
22EOF
23
24# 3. Start the services
25docker compose up -d
26
27# 4. View logs
28docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/argocd/run | bash

Troubleshooting

  • Connection refused on port 8080: Verify container is running and port mapping is correct in docker-compose.yml
  • Application sync fails with 'repository not found': Check Git repository URL and ensure it's publicly accessible or configure proper credentials
  • Health status shows 'Unknown' for applications: Verify Kubernetes manifests are valid and resources are properly defined in the target repository
  • UI shows blank or loading indefinitely: Clear browser cache and ensure argocd-server is running with --insecure flag for development environments
  • Cannot create applications: Confirm the target repository contains valid Kubernetes YAML files in the specified path
  • Sync operation stuck in 'Progressing' state: Check application logs and verify target cluster connectivity and permissions

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space