Sign inSign up

scarmonit/autonomous

By scarmonit

โ€ขUpdated 11 months ago

๐Ÿค– AI-powered browser automation | Node.js + Alpine Linux | Production-ready & secure

Buildkit cache
Image
Integration & delivery
Machine learning & AI
Developer tools
0

6.1K

scarmonit/autonomous repository overview

โ ๐Ÿš€ Multi-Arch Docker Demo

Build and Push Image to GHCR Docker Pulls Multi-Arch License

Demo repository implementing Multi-Architecture Docker images with GitHub Actions and GitHub Container Registry (GHCR). Automatically builds and publishes Docker images for AMD64, ARM64, and ARMv7 architectures.

โ ๐Ÿ“ฆ Supported Architectures

This image supports multiple architectures:

  • โœ… linux/amd64 - Traditional x86_64 systems
  • โœ… linux/arm64 - Apple Silicon (M1/M2), ARM64 servers
  • โœ… linux/arm/v7 - Raspberry Pi, ARM devices

โ ๐ŸŽฏ Features

  • Automated Multi-Arch Builds: Uses Docker Buildx for cross-platform compilation
  • GitHub Container Registry: Images published to GHCR automatically
  • Release Triggered: Workflow runs on GitHub release publication
  • Lightweight: Based on Alpine Linux 3.20
  • Simple Demo: Prints "Hello World!" to demonstrate functionality

โ ๐Ÿ”ง Usage

โ Pull and Run

Docker automatically pulls the correct architecture for your system:

docker pull ghcr.io/scarmonit/multi-arch-docker-demo:latest
docker run ghcr.io/scarmonit/multi-arch-docker-demo:latest
โ Expected Output
Hello World!

โ ๐Ÿ—๏ธ Architecture

โ Dockerfile

Simple Alpine-based image:

FROM alpine:3.20
CMD ["echo", "Hello World!"]
โ GitHub Actions Workflow

The workflow (.github/workflows/ghcr.yaml) automatically:

  1. Triggers on release publication
  2. Checks out the repository
  3. Logs into GHCR
  4. Sets up Docker Buildx
  5. Builds for multiple platforms simultaneously
  6. Pushes manifests to GHCR

โ ๐Ÿ“š Learning Resources

This project was implemented based on:

โ ๐Ÿš€ Next Steps

Three concrete enhancements to implement:

  1. Automated Version Tagging: Extract version from Git tags for semantic versioning
  2. Monitoring Integration: Add Prometheus metrics for container insights
  3. Multi-Stage Builds: Implement for real applications with build dependencies

โ ๐Ÿ“ License

MIT License - Feel free to use this as a template for your projects!

โ ๐Ÿ“ฆ Package Distribution

This project is automatically published to GitHub Container Registry (GHCR).

โ Pull the Image
# Latest version
docker pull ghcr.io/scarmonit/multi-arch-docker-demo:latest

# Specific architecture
docker pull ghcr.io/scarmonit/multi-arch-docker-demo:latest --platform linux/amd64
docker pull ghcr.io/scarmonit/multi-arch-docker-demo:latest --platform linux/arm64
docker pull ghcr.io/scarmonit/multi-arch-docker-demo:latest --platform linux/arm/v7
โ Package URL

๐Ÿ”— View on GitHub Packagesโ 

โ ๐Ÿš€ Complete Stack Deployment

This repository includes a full monitoring and AI stack:

โ Services Included
  1. Go API (Port 8000)

    • Multi-architecture support
    • Prometheus metrics endpoint
    • Health check endpoint
    • Docker Compose Watch for hot-reload
  2. Prometheus (Port 9090)

    • Metrics collection from Go API
    • Time-series database
    • Query interface
  3. Grafana (Port 3000)

    • Pre-configured dashboards
    • Real-time visualization
    • Credentials: admin / admin123
  4. AI Chat App (Port 8001)

    • SmolLM2 lightweight LLM
    • OpenAI SDK compatible
โ Quick Start Full Stack
# Clone the repository
git clone https://github.com/Scarmonit/multi-arch-docker-demo.git
cd multi-arch-docker-demo

# Start all services
docker compose up -d

# View logs
docker compose logs -f

# Run integration tests
chmod +x tests/integration_test.sh
./tests/integration_test.sh
โ Access Points

โ ๐Ÿงช Testing

Comprehensive integration test suite included:

# Run all tests
./tests/integration_test.sh

Test Coverage:

  • Container health checks
  • API endpoint validation
  • Prometheus metrics verification
  • Grafana datasource configuration
  • Load testing with metric validation
  • Docker Compose Watch configuration

โ ๐Ÿ“Š Monitoring & Observability

โœ… Implemented Features:

  • Prometheus metrics integration
  • Pre-configured Grafana dashboards
  • Real-time API monitoring
  • Request rate tracking
  • Latency percentiles (p50, p95)
  • Success rate visualization

โ ๐Ÿ”„ Development Workflow

Docker Compose Watch is configured for hot-reload:

# Start in watch mode
docker compose watch

Changes to ./monitoring-app trigger automatic rebuilds.

โ ๐ŸŒŸ Key Features Completed

  • โœ… Multi-Architecture Docker images (AMD64, ARM64, ARMv7)
  • โœ… GitHub Actions CI/CD pipeline
  • โœ… GitHub Container Registry publishing
  • โœ… Prometheus monitoring integration
  • โœ… Grafana dashboards with pre-configured visualizations
  • โœ… Docker Compose Watch for development
  • โœ… Comprehensive integration testing
  • โœ… Multi-stage Docker builds (90%+ size reduction)
  • โœ… AI Model integration (SmolLM2)

Built with โค๏ธ as a learning demo for multi-architecture container deployments

Tag summary

Content type

Image

Digest

sha256:75ab7ed0aโ€ฆ

Size

4.3 GB

Last updated

11 months ago

docker pull scarmonit/autonomous