{"id":16003987,"url":"https://github.com/marcusrbrown/containers","last_synced_at":"2026-01-21T17:33:56.034Z","repository":{"id":39635822,"uuid":"76875132","full_name":"marcusrbrown/containers","owner":"marcusrbrown","description":"A collection of Dockerfiles, docker-compose files, and scripts I use across projects.","archived":false,"fork":false,"pushed_at":"2025-04-06T21:05:29.000Z","size":56,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T22:19:50.102Z","etag":null,"topics":["automation","containers","docker","docker-compose","dockerfiles","scripts"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/u/igetgames/","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcusrbrown.png","metadata":{"funding":{"github":"marcusrbrown"},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-12-19T15:49:06.000Z","updated_at":"2025-03-23T21:07:40.000Z","dependencies_parsed_at":"2024-03-04T23:27:05.995Z","dependency_job_id":"f7d30589-e265-4950-989e-06dc4bfe9aa4","html_url":"https://github.com/marcusrbrown/containers","commit_stats":null,"previous_names":["marcusrbrown/dockerfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcusrbrown%2Fcontainers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcusrbrown%2Fcontainers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcusrbrown%2Fcontainers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcusrbrown%2Fcontainers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcusrbrown","download_url":"https://codeload.github.com/marcusrbrown/containers/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247675599,"owners_count":20977378,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","containers","docker","docker-compose","dockerfiles","scripts"],"created_at":"2024-10-08T10:40:42.305Z","updated_at":"2026-01-21T17:33:56.028Z","avatar_url":"https://github.com/marcusrbrown.png","language":"Dockerfile","funding_links":["https://github.com/sponsors/marcusrbrown"],"categories":[],"sub_categories":[],"readme":"# Container Collection \u0026 Automation Framework\n\n\u003e A comprehensive collection of Dockerfiles with advanced automation tools for multi-architecture container builds, metrics collection, AI-powered template assistance, and CI/CD workflows.\n\n[![GitHub Actions](https://img.shields.io/github/actions/workflow/status/marcusrbrown/containers/build-publish.yaml?branch=main\u0026label=build\u0026style=for-the-badge)](https://github.com/marcusrbrown/containers/actions) [![License](https://img.shields.io/github/license/marcusrbrown/containers?style=for-the-badge)](LICENSE.md) [![Python](https://img.shields.io/badge/python-3.13.4-blue.svg?style=for-the-badge)](https://python.org) [![Poetry](https://img.shields.io/badge/dependency%20management-poetry-blue.svg?style=for-the-badge)](https://python-poetry.org)\n\n## Overview\n\nThis repository provides a comprehensive container development ecosystem featuring:\n\n- **Container Collection**: Curated Dockerfiles for Node.js applications and archived Ethereum Parity client\n- **Automation Framework**: Python scripts for dynamic Dockerfile generation, metrics collection, and image tagging\n- **🧠 AI-Enhanced Template System**: Intelligent template recommendations, project analysis, and automated parameter inference\n- **Multi-Architecture Support**: ARM64 and AMD64 builds with platform-specific optimizations\n- **CI/CD Integration**: GitHub Actions workflows for building, testing, vulnerability scanning, and publishing\n- **Development Environment**: Docker-in-Docker devcontainer setup with mise tool management\n\n## ✨ Features\n\n- **🐳 Dynamic Dockerfile Generation**: Multi-architecture support with customizable base images and packages\n- **🤖 AI-Powered Template Intelligence**: Smart recommendations, project analysis, and automated containerization\n- **📊 Container Metrics Collection**: Build time, image size, and registry usage analytics\n- **🏷️ Intelligent Image Tagging**: Metadata-based tagging with semantic versioning\n- **🔒 Security Integration**: Automated vulnerability scanning with Trivy\n- **⚡ Modern Tooling**: Poetry, mise-en-place, pre-commit hooks, and automated dependency updates\n- **🚀 CI/CD Workflows**: Comprehensive GitHub Actions for container lifecycle management\n\n## 🧠 AI-Enhanced Features\n\nThe container system now includes comprehensive AI capabilities:\n\n### Template Intelligence\n\n```bash\n# Get AI recommendations for your project\npoetry run containers ai recommend /path/to/your/project\n\n# Deep project analysis\npoetry run containers ai analyze /path/to/your/project --output analysis.md\n\n# Interactive AI assistant\npoetry run containers ai chat\n```\n\n### Smart Automation\n\n```bash\n# Automatically infer template parameters\npoetry run containers ai infer apps/nodejs/express /my/project\n\n# AI-powered code review\npoetry run containers ai review /path/to/code\n\n# Generate intelligent documentation\npoetry run containers ai docs --template base/alpine --type readme\n```\n\n### Predictive Maintenance\n\n```bash\n# Analyze template health and usage patterns\npoetry run containers ai maintenance --report\n\n# Get optimization suggestions\npoetry run containers ai maintenance --template base/alpine\n```\n\n**[📚 Complete AI Guide](docs/AI_CLI_GUIDE.md)** - Comprehensive documentation for AI features\n\n## 📦 Available Containers\n\n### Node.js Applications\n\n**[`node/`](node/)** - Production-ready Node.js container variants:\n\n- **[`node/release/`](node/release/)**: Debian Bookworm-based (~160MB) - Full compatibility for production\n- **[`node/alpine/`](node/alpine/)**: Alpine Linux-based (~70MB) - Optimized for size\n\n### Archived Containers\n\n**[`archived/parity/`](archived/parity/)** - Ethereum Parity client containers:\n\n- **`branch/`**: Development builds from Git branches\n- **`release/`**: Stable production releases\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- [mise](https://mise.jdx.dev/) - Polyglot tool version manager\n- [Docker](https://docker.com/) - Container platform\n\n### Environment Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/marcusrbrown/containers.git\ncd containers\n\n# Install development tools with mise\nmise install\n\n# Install Python dependencies\npoetry install\n\n# Install Node.js dependencies\npnpm install\n\n# Setup pre-commit hooks\npre-commit install\n```\n\n### Build a Container\n\n```bash\n# Build Node.js Alpine variant\ndocker build -t my-node-app:alpine node/alpine/\n\n# Build Node.js release variant\ndocker build -t my-node-app:release node/release/\n```\n\n## 🛠️ Automation Scripts\n\nThis repository includes three powerful Python scripts accessible via Poetry:\n\n### Generate Dockerfiles\n\nCreate customized Dockerfiles with multi-architecture support:\n\n```bash\n# Generate a basic Dockerfile\npoetry run generate-dockerfile --base-image debian:bullseye-slim --packages \"curl wget python3\"\n\n# Multi-architecture with environment variables\npoetry run generate-dockerfile \\\n  --base-image alpine:3.18 \\\n  --packages \"nodejs npm\" \\\n  --env \"NODE_ENV=production PORT=3000\" \\\n  --architecture \"linux/amd64,linux/arm64\"\n\n# Extend existing Dockerfile\npoetry run generate-dockerfile --existing-dockerfile ./node/alpine/Dockerfile --packages \"git\"\n```\n\n### Collect Container Metrics\n\nGather build performance and image analytics:\n\n```bash\n# Collect metrics for all containers\npoetry run collect-docker-metrics\n\n# Collect metrics for specific registry\npoetry run collect-docker-metrics --registry github\n\n# View collected metrics\ncat collected_metrics.yaml\n```\n\n### Generate Image Tags\n\nCreate semantic tags based on container metadata:\n\n```bash\n# Generate tags for all containers\npoetry run generate-image-tags\n\n# View generated tags\ncat generated_tags.json\n```\n\n## 🔧 Development Environment\n\n### Local Development\n\n```bash\n# Activate development environment\nmise shell\n\n# Run linting and formatting\npre-commit run --all-files\n\n# Run specific script during development\npoetry run python scripts/generate_dockerfile.py --help\n```\n\n### VS Code DevContainer\n\nOpen the repository in VS Code and use the **\"Reopen in Container\"** command for a complete Docker-in-Docker development environment with all tools pre-configured.\n\n## ⚙️ CI/CD Workflows\n\nThis repository includes comprehensive GitHub Actions workflows:\n\n- **[`build-publish.yaml`](.github/workflows/build-publish.yaml)**: Multi-architecture container builds and registry publishing\n- **[`container-scan.yaml`](.github/workflows/container-scan.yaml)**: Security vulnerability scanning with Trivy\n- **[`dockerfile_generation.yaml`](.github/workflows/dockerfile_generation.yaml)**: Automated Dockerfile generation\n- **[`metrics_collector.yaml`](.github/workflows/metrics_collector.yaml)**: Performance metrics collection\n- **[`test.yaml`](.github/workflows/test.yaml)**: Container testing and validation\n\n## 📚 Project Structure\n\n```text\n├── node/                     # Node.js container variants\n│   ├── alpine/              # Alpine-based builds\n│   └── release/             # Debian-based builds\n├── archived/                # Legacy container definitions\n│   └── parity/             # Ethereum Parity client\n├── scripts/                 # Automation tools\n│   ├── generate_dockerfile.py\n│   ├── collect_docker_metrics.py\n│   └── generate_image_tags.py\n├── .devcontainer/          # VS Code development environment\n├── .github/workflows/      # CI/CD automation\n└── docs/                   # Documentation\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n### Development Workflow\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Run tests and linting (`pre-commit run --all-files`)\n5. Commit your changes (`git commit -m 'Add amazing feature'`)\n6. Push to the branch (`git push origin feature/amazing-feature`)\n7. Open a Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License. See the [LICENSE.md](LICENSE.md) file for details.\n\n## 🔗 Links\n\n- [GitHub Repository](https://github.com/marcusrbrown/containers)\n- [GitHub Actions](https://github.com/marcusrbrown/containers/actions)\n- [Issues](https://github.com/marcusrbrown/containers/issues)\n- [Pull Requests](https://github.com/marcusrbrown/containers/pulls)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcusrbrown%2Fcontainers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcusrbrown%2Fcontainers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcusrbrown%2Fcontainers/lists"}