From 2e4a765c7e9afcba62cd23ded6a7831b7854b937 Mon Sep 17 00:00:00 2001 From: Emily Marigold Klassen <760204+forivall@users.noreply.github.com> Date: Tue, 26 Oct 2021 23:21:00 -0700 Subject: [PATCH 001/327] Mark ctop (1) (python) as dead (#962) The repo is archived in github --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 26118251a..8fbf8cb0d 100644 --- a/README.md +++ b/README.md @@ -358,7 +358,7 @@ Native desktop applications for managing and montoring docker hosts and clusters ##### Terminal UI -- [ctop (1)](https://github.com/yadutaf/ctop) - A command line / text based Linux Containers monitoring tool that works just like you expect (Python) by [@yadutaf](https://github.com/yadutaf) +- [ctop (1)](https://github.com/yadutaf/ctop) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python) by [@yadutaf](https://github.com/yadutaf) - [ctop (2)](https://github.com/bcicen/ctop) - Top-like interface for container metrics (Golang) by [@bcicen](https://github.com/bcicen/) - [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). - [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [@byrnedo] From 74228596f7a58df2513da59e9614cec179692ca3 Mon Sep 17 00:00:00 2001 From: Jaen <639345+jaens@users.noreply.github.com> Date: Mon, 22 Nov 2021 23:11:26 -0800 Subject: [PATCH 002/327] Mark Stacker as abandoned; Last commit 5 years ago (#966) --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8fbf8cb0d..ab01eb86d 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ All the links are monitored and tested with a home baked [Node.js script](https: - [Service Discovery](#service-discovery) - [Volume Management / Data](#volume-management--data) - [User Interface](#user-interface) + - [IDE integrations](#ide-integrations) - [Desktop](#desktop) - [Terminal](#terminal) - [Terminal UI](#terminal-ui) @@ -60,7 +61,7 @@ All the links are monitored and tested with a home baked [Node.js script](https: - [Serverless](#serverless) - [Testing](#testing) - [Wrappers](#wrappers) - - [Services based on Docker (:heavy_dollar_sign:)](#services-based-on-docker-heavy_dollar_sign) + - [Services based on Docker (mostly :heavy_dollar_sign:)](#services-based-on-docker-mostly-heavy_dollar_sign) - [CI Services](#ci-services) - [CaaS](#caas) - [Monitoring Services](#monitoring-services) @@ -78,6 +79,7 @@ All the links are monitored and tested with a home baked [Node.js script](https: - [Russian](#russian) - [Spanish](#spanish) - [Stargazers over time](#stargazers-over-time) + - [Contributor over time](#contributor-over-time) @@ -171,7 +173,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker) - [rocker-compose](https://github.com/grammarly/rocker-compose) :skull: - Docker composition tool with idempotency features for deploying apps composed of multiple containers. By[@grammarly](grammarly). - [rocker](https://github.com/grammarly/rocker) :skull: - Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by [@grammarly](grammarly). - [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [@roquie](https://github.com/roquie) -- [Stacker](https://github.com/stacker/stacker-cli) - Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience). +- [Stacker](https://github.com/stacker/stacker-cli) :skull: - Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience). - [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [@alexaandrov](https://github.com/alexaandrov) - [Zodiac](https://github.com/CenturyLinkLabs/zodiac) :skull: - A lightweight tool for easy deployment and rollback of dockerized applications. By [@CenturyLinkLabs][centurylinklabs] From c8ba3078901f11151646ff2eeff97ae5c1150985 Mon Sep 17 00:00:00 2001 From: Nicholas Dille Date: Mon, 20 Dec 2021 00:26:11 +0100 Subject: [PATCH 003/327] Added docker-setup (#967) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ab01eb86d..c2ca15e56 100644 --- a/README.md +++ b/README.md @@ -605,6 +605,7 @@ Services to securely store your Docker images. - [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [@NandoQuintana](https://github.com/nandoquintana). - [Docker osx dev](https://github.com/brikis98/docker-osx-dev) :skull: - A productive development environment with Docker on OS X by [@brikis98](https://github.com/brikis98) - [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [@Ph3nol](https://github.com/ph3nol) +- [docker-setup](https://github.com/nicholasdille/docker-setup) - Install, configure and update container tools. By [@nicholasdille](https://twitter.com/nicholasdille) - [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer) - [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant) by [@shyiko](https://github.com/shyiko) - [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. From 9d9ace94c570d6ef0ff91a378c7df954a6b8b7c6 Mon Sep 17 00:00:00 2001 From: Hasan El-Hefnawy Date: Sat, 1 Jan 2022 20:27:13 +0200 Subject: [PATCH 004/327] add digital ocean (#968) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c2ca15e56..65a12e397 100644 --- a/README.md +++ b/README.md @@ -521,13 +521,14 @@ Examples by: Services to securely store your Docker images. -- [Amazon EC2 Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon EC2 Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. +- [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. - [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/services/container-registry/) - Manage a Docker private registry as a first-class Azure resource - [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans) - [cleanreg](https://github.com/hcguersoy/cleanreg) - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC by [@hcguersoy](https://github.com/hcguersoy) - [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/docker-registry/) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. - [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. - [Cycle.io :heavy_dollar_sign:](https://cycle.io/) - Bare-metal container hosting. +- [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry/) - DigitalOcean Container Registry. - [Dist :heavy_dollar_sign:](https://www.dist.cloud/product/container-registry/) - Private cloud-based Docker container registry - [Docker Hub](https://hub.docker.com/) provided by Docker Inc. - [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content From 5d089b157f50b31e51409df1e62a1ecd2fc1978a Mon Sep 17 00:00:00 2001 From: Angelo Delicato Date: Fri, 14 Jan 2022 17:44:12 +0100 Subject: [PATCH 005/327] Add 'RAUDI' (#970) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 65a12e397..310e6f51f 100644 --- a/README.md +++ b/README.md @@ -475,6 +475,7 @@ Applications designed to help or simplify building **new** images - [packer](https://www.packer.io/docs/builders/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible - [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images by [@duedil-ltd](https://github.com/duedil-ltd) - [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. +- [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi) - [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers by [@lavie](https://github.com/lavie) - [SkinnyWhale](https://github.com/djosephsen/skinnywhale) :skull: - Skinnywhale helps you make smaller (as in megabytes) Docker containers. - [Smith](https://github.com/oracle/smith) - A Micocontainer Builder and can perform multi-stage builds after the image is built [Oracle][oracle] From 4a2abf834dc0fa7a9766491ef3722c180e2e3ba1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 23 Jan 2022 18:17:40 +0100 Subject: [PATCH 006/327] Bump node-fetch from 3.0.0 to 3.1.1 (#972) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.0.0 to 3.1.1. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Changelog](https://github.com/node-fetch/node-fetch/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.0.0...v3.1.1) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 106 +++++++++++++++++++++++++++++++++------------- package.json | 2 +- 2 files changed, 77 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index abc805e6b..e07ce7db2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.0", - "node-fetch": "3.0.0", + "node-fetch": "3.1.1", "rimraf": "3.0.2", "showdown": "^1.9.0" } @@ -153,11 +153,11 @@ } }, "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", "engines": { - "node": ">= 6" + "node": ">= 12" } }, "node_modules/decamelize": { @@ -238,9 +238,9 @@ } }, "node_modules/fetch-blob": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.2.tgz", - "integrity": "sha512-hunJbvy/6OLjCD0uuhLdp0mMPzP/yd2ssd1t2FCJsaA7wkWhpbp9xfuNVpv7Ll4jFhzp6T4LAupSiV9uOeg0VQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", + "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", "funding": [ { "type": "github", @@ -252,6 +252,7 @@ } ], "dependencies": { + "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" }, "engines": { @@ -269,6 +270,17 @@ "node": ">=6" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/fs-extra": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", @@ -393,13 +405,32 @@ "node": "*" } }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, "node_modules/node-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0.tgz", - "integrity": "sha512-bKMI+C7/T/SPU1lKnbQbwxptpCrG9ashG+VkytmXCPZyuM9jB6VU+hY0oi4lC8LxTtAeWdckNCTa3nrGsAdA3Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.1.tgz", + "integrity": "sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg==", "dependencies": { - "data-uri-to-buffer": "^3.0.1", - "fetch-blob": "^3.1.2" + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.3", + "formdata-polyfill": "^4.0.10" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -571,9 +602,9 @@ } }, "node_modules/web-streams-polyfill": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.1.1.tgz", - "integrity": "sha512-Czi3fG883e96T4DLEPRvufrF2ydhOOW1+1a6c3gNjH2aIh50DNFBdfwh2AKoOf1rXvpvavAoA11Qdq9+BKjE0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", + "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", "engines": { "node": ">= 8" } @@ -744,9 +775,9 @@ "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" }, "data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" }, "decamelize": { "version": "1.2.0", @@ -802,10 +833,11 @@ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, "fetch-blob": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.2.tgz", - "integrity": "sha512-hunJbvy/6OLjCD0uuhLdp0mMPzP/yd2ssd1t2FCJsaA7wkWhpbp9xfuNVpv7Ll4jFhzp6T4LAupSiV9uOeg0VQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", + "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", "requires": { + "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" } }, @@ -817,6 +849,14 @@ "locate-path": "^3.0.0" } }, + "formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "requires": { + "fetch-blob": "^3.1.2" + } + }, "fs-extra": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", @@ -911,13 +951,19 @@ "brace-expansion": "^1.1.7" } }, + "node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + }, "node-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0.tgz", - "integrity": "sha512-bKMI+C7/T/SPU1lKnbQbwxptpCrG9ashG+VkytmXCPZyuM9jB6VU+hY0oi4lC8LxTtAeWdckNCTa3nrGsAdA3Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.1.tgz", + "integrity": "sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg==", "requires": { - "data-uri-to-buffer": "^3.0.1", - "fetch-blob": "^3.1.2" + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.3", + "formdata-polyfill": "^4.0.10" } }, "nth-check": { @@ -1040,9 +1086,9 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "web-streams-polyfill": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.1.1.tgz", - "integrity": "sha512-Czi3fG883e96T4DLEPRvufrF2ydhOOW1+1a6c3gNjH2aIh50DNFBdfwh2AKoOf1rXvpvavAoA11Qdq9+BKjE0Q==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", + "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" }, "which-module": { "version": "2.0.0", diff --git a/package.json b/package.json index 278c7cff2..c12aacc8d 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.0", - "node-fetch": "3.0.0", + "node-fetch": "3.1.1", "rimraf": "3.0.2", "showdown": "^1.9.0" } From ecdfedcabd8aa124e43d0c7b5b883212cd563511 Mon Sep 17 00:00:00 2001 From: Devon Blandin Date: Sun, 23 Jan 2022 18:39:07 +0100 Subject: [PATCH 007/327] add artsy/hokusai to Projects > Development with Docker > Wrappers (#973) A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From https://github.com/artsy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 310e6f51f..3403df9d8 100644 --- a/README.md +++ b/README.md @@ -662,6 +662,7 @@ Services to securely store your Docker images. - [dockerized](https://github.com/benzaita/dockerized-cli) - Seamlessly execute commands in a container. - [Dray](https://github.com/CenturyLinkLabs/dray) - An engine for managing the execution of container-based workflows by [@CenturyLinkLabs][centurylinklabs] - [FuGu](https://github.com/mattes/fugu) :skull: - Docker run wrapper without orchestration by [@mattes](https://github.com/mattes) +- [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [@artsy](https://github.com/artsy) - [Shutit](https://github.com/ianmiell/shutit) - Tool for building and maintaining complex Docker deployments by [@ianmiell](https://github.com/ianmiell) - [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker - [T.A.D.S. boilerplate](https://github.com/Thomvaill/tads-boilerplate) - The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By [@Thomvaill](https://github.com/Thomvaill) From f72694f84d5e2c90eee63876fe7229116a36ec4b Mon Sep 17 00:00:00 2001 From: Giovanni Pecoraro Date: Wed, 26 Jan 2022 13:24:38 +0100 Subject: [PATCH 008/327] Added 'RedHerd Framework' (#971) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3403df9d8..523e52735 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker) - [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler by [@hashicorp](https://github.com/hashicorp) - [Panamax](https://github.com/CenturyLinkLabs/panamax-ui) :skull: - An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop by [@CenturyLinkLabs][centurylinklabs]. - [Rancher](https://github.com/rancher/rancher) - An open source project that provides a complete platform for operating Docker in production by [@rancher][rancher]. +- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [@RedHerdProject](https://github.com/redherd-project). - [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [@crazy-max](crazy-max) ### PaaS From 87dde8e31da7790e86c404c74d9cdadd16e5a920 Mon Sep 17 00:00:00 2001 From: Archimedes Trajano Date: Fri, 28 Jan 2022 02:59:15 -0500 Subject: [PATCH 009/327] Updated URL to swarm management (#974) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 523e52735..8e34c3e83 100644 --- a/README.md +++ b/README.md @@ -191,7 +191,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker) - [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [@Hasura](https://github.com/hasura/). - [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas) - [Longshoreman](https://github.com/longshoreman/longshoreman) :skull: - Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By [longshoreman](https://github.com/longshoreman) -- [SwarmManagement](https://github.com/DIPSAS/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. +- [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. - [werf](https://github.com/werf/werf) - werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps by [@flant](https://github.com/flant) ### Monitoring From 680ac2ee23ae89c3b7e91932a2261a7b6df1a574 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Mon, 31 Jan 2022 19:04:42 +0100 Subject: [PATCH 010/327] Create dependabot to update dep --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..8abca405f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" From 12cd0181929ae6f64fa29fe4cea56670f503c426 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jan 2022 19:27:11 +0100 Subject: [PATCH 011/327] Bump node-fetch from 3.1.1 to 3.2.0 (#975) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.1.1 to 3.2.0. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.1.1...v3.2.0) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index e07ce7db2..177e1f005 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.0", - "node-fetch": "3.1.1", + "node-fetch": "3.2.0", "rimraf": "3.0.2", "showdown": "^1.9.0" } @@ -424,12 +424,12 @@ } }, "node_modules/node-fetch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.1.tgz", - "integrity": "sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.0.tgz", + "integrity": "sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==", "dependencies": { "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.3", + "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" }, "engines": { @@ -957,12 +957,12 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.1.1.tgz", - "integrity": "sha512-SMk+vKgU77PYotRdWzqZGTZeuFKlsJ0hu4KPviQKkfY+N3vn2MIzr0rvpnYpR8MtB3IEuhlEcuOLbGvLRlA+yg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.0.tgz", + "integrity": "sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==", "requires": { "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.3", + "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, diff --git a/package.json b/package.json index c12aacc8d..39fd952bc 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.0", - "node-fetch": "3.1.1", + "node-fetch": "3.2.0", "rimraf": "3.0.2", "showdown": "^1.9.0" } From 2a6049224fe3fdc351716b796591b07f838e3a06 Mon Sep 17 00:00:00 2001 From: Enzo Caceres Date: Mon, 7 Feb 2022 08:46:37 +0100 Subject: [PATCH 012/327] Fixed typos (#976) Changed 'Funcitons' to 'Functions' --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8e34c3e83..a86b4f861 100644 --- a/README.md +++ b/README.md @@ -639,7 +639,7 @@ Services to securely store your Docker images. - [Apache OpenWhisk](https://github.com/apache/openwhisk) - a serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache) - [Docker-Lambda](https://github.com/lambci/docker-lambda) - Docker images and test runners that replicate the live AWS Lambda environment. By [@lamb-ci](https://github.com/lambci) - [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [@bfirsh](https://github.com/bfirsh) -- [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Funcitons as a Service) which uses Docker containers to run Any language or AWS Lambda functions +- [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions - [Koyeb](https://www.koyeb.com/) :heavy_dollar_sign: - Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. - [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas) - [SCAR](https://github.com/grycap/scar) - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda) by [@grycap](https://github.com/grycap) From 75c5ed6be0a68db7528c993dc4e4566e872d844a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Feb 2022 17:13:17 +0100 Subject: [PATCH 013/327] Bump showdown from 1.9.1 to 2.0.0 (#977) Bumps [showdown](https://github.com/showdownjs/showdown) from 1.9.1 to 2.0.0. - [Release notes](https://github.com/showdownjs/showdown/releases) - [Changelog](https://github.com/showdownjs/showdown/blob/2.0.0/CHANGELOG.md) - [Commits](https://github.com/showdownjs/showdown/compare/1.9.1...2.0.0) --- updated-dependencies: - dependency-name: showdown dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 466 ++++++++++++++++------------------------------ package.json | 2 +- 2 files changed, 160 insertions(+), 308 deletions(-) diff --git a/package-lock.json b/package-lock.json index 177e1f005..736b90a50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,26 +14,29 @@ "fs-extra": "10.0.0", "node-fetch": "3.2.0", "rimraf": "3.0.2", - "showdown": "^1.9.0" + "showdown": "^2.0.0" } }, "node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/balanced-match": { @@ -55,14 +58,6 @@ "concat-map": "0.0.1" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, "node_modules/cheerio": { "version": "1.0.0-rc.10", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", @@ -99,27 +94,30 @@ } }, "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/concat-map": { "version": "0.0.1", @@ -160,14 +158,6 @@ "node": ">= 12" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/dom-serializer": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", @@ -225,9 +215,9 @@ "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" }, "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/entities": { "version": "2.2.0", @@ -237,6 +227,14 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, "node_modules/fetch-blob": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", @@ -259,17 +257,6 @@ "node": "^12.20 || >= 14.13" } }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -364,11 +351,11 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/jsonfile": { @@ -382,18 +369,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -459,39 +434,6 @@ "wrappy": "1" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -505,14 +447,6 @@ "parse5": "^6.0.1" } }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -529,11 +463,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -548,44 +477,39 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, "node_modules/showdown": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.1.tgz", - "integrity": "sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.0.tgz", + "integrity": "sha512-Gz0wkh/EBFbEH+Nb85nyRSrcRvPecgt8c6fk/ICaOQ2dVsWCvZU5jfViPtBIyLXVYooICO0WTl7vLsoPaIH09w==", "dependencies": { - "yargs": "^14.2" + "yargs": "^17.2.1" }, "bin": { "showdown": "bin/showdown.js" } }, "node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/tslib": { @@ -609,22 +533,20 @@ "node": ">= 8" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrappy": { @@ -633,50 +555,51 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } }, "node_modules/yargs": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", "dependencies": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz", - "integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "engines": { + "node": ">=12" } } }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "balanced-match": { @@ -698,11 +621,6 @@ "concat-map": "0.0.1" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, "cheerio": { "version": "1.0.0-rc.10", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", @@ -730,27 +648,27 @@ } }, "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "concat-map": { "version": "0.0.1", @@ -779,11 +697,6 @@ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, "dom-serializer": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", @@ -823,15 +736,20 @@ "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "fetch-blob": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", @@ -841,14 +759,6 @@ "web-streams-polyfill": "^3.0.3" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, "formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -921,9 +831,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "jsonfile": { "version": "6.1.0", @@ -934,15 +844,6 @@ "universalify": "^2.0.0" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -982,27 +883,6 @@ "wrappy": "1" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -1016,11 +896,6 @@ "parse5": "^6.0.1" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -1031,11 +906,6 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -1044,35 +914,30 @@ "glob": "^7.1.3" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, "showdown": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.1.tgz", - "integrity": "sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.0.tgz", + "integrity": "sha512-Gz0wkh/EBFbEH+Nb85nyRSrcRvPecgt8c6fk/ICaOQ2dVsWCvZU5jfViPtBIyLXVYooICO0WTl7vLsoPaIH09w==", "requires": { - "yargs": "^14.2" + "yargs": "^17.2.1" } }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.1" } }, "tslib": { @@ -1090,19 +955,14 @@ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, "wrappy": { @@ -1111,36 +971,28 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yargs": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" } }, "yargs-parser": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz", - "integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==" } } } diff --git a/package.json b/package.json index 39fd952bc..a805dc188 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,6 @@ "fs-extra": "10.0.0", "node-fetch": "3.2.0", "rimraf": "3.0.2", - "showdown": "^1.9.0" + "showdown": "^2.0.0" } } From 1f9e64072e264c3cc6e1af649bf45d7049f756ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Feb 2022 16:05:13 +0100 Subject: [PATCH 014/327] Bump fs-extra from 10.0.0 to 10.0.1 (#978) Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 10.0.0 to 10.0.1. - [Release notes](https://github.com/jprichardson/node-fs-extra/releases) - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/10.0.0...10.0.1) --- updated-dependencies: - dependency-name: fs-extra dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 736b90a50..cedf8405f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", - "fs-extra": "10.0.0", + "fs-extra": "10.0.1", "node-fetch": "3.2.0", "rimraf": "3.0.2", "showdown": "^2.0.0" @@ -269,9 +269,9 @@ } }, "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -768,9 +768,9 @@ } }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/package.json b/package.json index a805dc188..6b4be76bf 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", - "fs-extra": "10.0.0", + "fs-extra": "10.0.1", "node-fetch": "3.2.0", "rimraf": "3.0.2", "showdown": "^2.0.0" From 57e56335329cc7ea5d34a2aa26d1a620f51c68ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Mar 2022 17:20:42 +0100 Subject: [PATCH 015/327] Bump node-fetch from 3.2.0 to 3.2.1 (#980) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.2.0 to 3.2.1. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.2.0...v3.2.1) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index cedf8405f..e628a3ea2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.1", - "node-fetch": "3.2.0", + "node-fetch": "3.2.1", "rimraf": "3.0.2", "showdown": "^2.0.0" } @@ -399,9 +399,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.0.tgz", - "integrity": "sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.1.tgz", + "integrity": "sha512-Ef3SPFtRWFCDyhvcwCSvacLpkwmYZcD57mmZzAsMiks9TpHpIghe32U9H06tMICnr+X7YCpzH7WvUlUoml2urA==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -858,9 +858,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.0.tgz", - "integrity": "sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.1.tgz", + "integrity": "sha512-Ef3SPFtRWFCDyhvcwCSvacLpkwmYZcD57mmZzAsMiks9TpHpIghe32U9H06tMICnr+X7YCpzH7WvUlUoml2urA==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index 6b4be76bf..e7a35238b 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.1", - "node-fetch": "3.2.0", + "node-fetch": "3.2.1", "rimraf": "3.0.2", "showdown": "^2.0.0" } From abdf5a988a7cbc738b728646d55fbfe1974f45fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Mar 2022 18:35:48 +0100 Subject: [PATCH 016/327] Bump showdown from 2.0.0 to 2.0.1 (#981) Bumps [showdown](https://github.com/showdownjs/showdown) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/showdownjs/showdown/releases) - [Changelog](https://github.com/showdownjs/showdown/blob/master/CHANGELOG.md) - [Commits](https://github.com/showdownjs/showdown/compare/2.0.0...2.0.1) --- updated-dependencies: - dependency-name: showdown dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index e628a3ea2..9bba185c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "fs-extra": "10.0.1", "node-fetch": "3.2.1", "rimraf": "3.0.2", - "showdown": "^2.0.0" + "showdown": "^2.0.1" } }, "node_modules/ansi-regex": { @@ -478,9 +478,9 @@ } }, "node_modules/showdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.0.tgz", - "integrity": "sha512-Gz0wkh/EBFbEH+Nb85nyRSrcRvPecgt8c6fk/ICaOQ2dVsWCvZU5jfViPtBIyLXVYooICO0WTl7vLsoPaIH09w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.1.tgz", + "integrity": "sha512-03JpT+yiQbYJynAkzCPJFZKbGHf4q9nly+oDcD32oiyc00wNII+cd8EuXFYwYWXroUIoSgxPYuts9YPQfGIkIw==", "dependencies": { "yargs": "^17.2.1" }, @@ -915,9 +915,9 @@ } }, "showdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.0.tgz", - "integrity": "sha512-Gz0wkh/EBFbEH+Nb85nyRSrcRvPecgt8c6fk/ICaOQ2dVsWCvZU5jfViPtBIyLXVYooICO0WTl7vLsoPaIH09w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.1.tgz", + "integrity": "sha512-03JpT+yiQbYJynAkzCPJFZKbGHf4q9nly+oDcD32oiyc00wNII+cd8EuXFYwYWXroUIoSgxPYuts9YPQfGIkIw==", "requires": { "yargs": "^17.2.1" } diff --git a/package.json b/package.json index e7a35238b..189381a74 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,6 @@ "fs-extra": "10.0.1", "node-fetch": "3.2.1", "rimraf": "3.0.2", - "showdown": "^2.0.0" + "showdown": "^2.0.1" } } From 83bc96d257afb4137e5d53931e711220acd7b57e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Mar 2022 21:21:13 +0100 Subject: [PATCH 017/327] Bump showdown from 2.0.1 to 2.0.2 (#984) Bumps [showdown](https://github.com/showdownjs/showdown) from 2.0.1 to 2.0.2. - [Release notes](https://github.com/showdownjs/showdown/releases) - [Changelog](https://github.com/showdownjs/showdown/blob/2.0.2/CHANGELOG.md) - [Commits](https://github.com/showdownjs/showdown/compare/2.0.1...2.0.2) --- updated-dependencies: - dependency-name: showdown dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 294 +++------------------------------------------- package.json | 2 +- 2 files changed, 19 insertions(+), 277 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9bba185c1..809a6662a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,29 +14,7 @@ "fs-extra": "10.0.1", "node-fetch": "3.2.1", "rimraf": "3.0.2", - "showdown": "^2.0.1" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "showdown": "^2.0.2" } }, "node_modules/balanced-match": { @@ -93,32 +71,14 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, + "node_modules/commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", "engines": { - "node": ">=7.0.0" + "node": "^12.20.0 || >=14" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -214,11 +174,6 @@ "resolved": "https://registry.npmjs.org/draftlog/-/draftlog-1.0.13.tgz", "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -227,14 +182,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, "node_modules/fetch-blob": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", @@ -286,14 +233,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -350,14 +289,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -455,14 +386,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -478,40 +401,16 @@ } }, "node_modules/showdown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.1.tgz", - "integrity": "sha512-03JpT+yiQbYJynAkzCPJFZKbGHf4q9nly+oDcD32oiyc00wNII+cd8EuXFYwYWXroUIoSgxPYuts9YPQfGIkIw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.2.tgz", + "integrity": "sha512-4z4aAfKk6WdDKGYYpBcdTovTSw/ock6/fg363pR4JECnEMbnFfwSV2B59IfesQQ6hTRVEebx7VXxMm0/KiAUgg==", "dependencies": { - "yargs": "^17.2.1" + "commander": "^9.0.0" }, "bin": { "showdown": "bin/showdown.js" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -533,75 +432,13 @@ "node": ">= 8" } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", - "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", - "engines": { - "node": ">=12" - } } }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -647,28 +484,10 @@ "domutils": "^2.7.0" } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==" }, "concat-map": { "version": "0.0.1", @@ -735,21 +554,11 @@ "resolved": "https://registry.npmjs.org/draftlog/-/draftlog-1.0.13.tgz", "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, "fetch-blob": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", @@ -782,11 +591,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -830,11 +634,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -901,11 +700,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -915,29 +709,11 @@ } }, "showdown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.1.tgz", - "integrity": "sha512-03JpT+yiQbYJynAkzCPJFZKbGHf4q9nly+oDcD32oiyc00wNII+cd8EuXFYwYWXroUIoSgxPYuts9YPQfGIkIw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.2.tgz", + "integrity": "sha512-4z4aAfKk6WdDKGYYpBcdTovTSw/ock6/fg363pR4JECnEMbnFfwSV2B59IfesQQ6hTRVEebx7VXxMm0/KiAUgg==", "requires": { - "yargs": "^17.2.1" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" + "commander": "^9.0.0" } }, "tslib": { @@ -955,44 +731,10 @@ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs": { - "version": "17.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", - "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==" } } } diff --git a/package.json b/package.json index 189381a74..325bb81f7 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,6 @@ "fs-extra": "10.0.1", "node-fetch": "3.2.1", "rimraf": "3.0.2", - "showdown": "^2.0.1" + "showdown": "^2.0.2" } } From 1c897757c6ee0faf3f9662c80f3d26bfe2be118a Mon Sep 17 00:00:00 2001 From: Artem Golub Date: Thu, 3 Mar 2022 22:23:49 +0200 Subject: [PATCH 018/327] add nuxxapp/nuxx to Projects > Container Operations > Container Composition (#982) * add nuxxapp/nuxx to Projects > Container Operations > Container Composition * Alphabetical order fix. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a86b4f861..1b627c28c 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker) - [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker by [@cloud66](https://github.com/cloud66) - [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes - [Maestro](https://github.com/toscanini/maestro) :skull: - Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit by [@tascanini](https://github.com/toscanini) +- [Nuxx](https://github.com/nuxxapp/nuxx) - Visually generate docker-compose.yaml code with drag-n-drop UI. By [@corpulent](https://github.com/corpulent) - [percheron](https://github.com/ashmckenzie/percheron) :skull: - Organise your Docker containers with muscle and intelligence by [@ashmckenzie](https://github.com/ashmckenzie) - [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. - [podman-compose](https://github.com/containers/podman-compose) - a script to run docker-compose.yml using podman by [@containers][containers] From 01cb9068f11ffe924a7c21041ac7436766be75ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rahu=CE=BB=20D=C3=A9?= Date: Thu, 3 Mar 2022 20:27:19 +0000 Subject: [PATCH 019/327] Add contajners, deprecate clj-docker-client (#983) * Add contajners, deprecate clj-docker-client * keep list alphabetically sorted --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1b627c28c..72015d0a3 100644 --- a/README.md +++ b/README.md @@ -553,7 +553,8 @@ Services to securely store your Docker images. ### API Client - [ahab](https://github.com/instacart/ahab) - Docker event handling with Python by [@instacart](https://github.com/instacart) -- [clj-docker-client](https://github.com/into-docker/clj-docker-client) - Idiomatic Clojure client for the Docker remote API. By [@lispyclouds](https://github.com/lispyclouds) +- [clj-docker-client](https://github.com/into-docker/clj-docker-client) :skull: - Idiomatic Clojure client for the Docker remote API. By [@lispyclouds](https://github.com/lispyclouds) +- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [@lispyclouds](https://github.com/lispyclouds) - [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy by [@gesellix][gesellix] - [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [@masaeedu](https://github.com/masaeedu) - [docker-client](https://github.com/spotify/docker-client) :skull: - Java client for the Docker remote API. By [@spotify][spotify] From ece84e82934bb79dc707541eff8dd908a9ac10c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Mar 2022 16:25:49 +0100 Subject: [PATCH 020/327] Bump node-fetch from 3.2.1 to 3.2.2 (#985) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.2.1 to 3.2.2. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.2.1...v3.2.2) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 809a6662a..92b4281ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.1", - "node-fetch": "3.2.1", + "node-fetch": "3.2.2", "rimraf": "3.0.2", "showdown": "^2.0.2" } @@ -330,9 +330,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.1.tgz", - "integrity": "sha512-Ef3SPFtRWFCDyhvcwCSvacLpkwmYZcD57mmZzAsMiks9TpHpIghe32U9H06tMICnr+X7YCpzH7WvUlUoml2urA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.2.tgz", + "integrity": "sha512-Cwhq1JFIoon15wcIkFzubVNFE5GvXGV82pKf4knXXjvGmn7RJKcypeuqcVNZMGDZsAFWyIRya/anwAJr7TWJ7w==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -657,9 +657,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.1.tgz", - "integrity": "sha512-Ef3SPFtRWFCDyhvcwCSvacLpkwmYZcD57mmZzAsMiks9TpHpIghe32U9H06tMICnr+X7YCpzH7WvUlUoml2urA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.2.tgz", + "integrity": "sha512-Cwhq1JFIoon15wcIkFzubVNFE5GvXGV82pKf4knXXjvGmn7RJKcypeuqcVNZMGDZsAFWyIRya/anwAJr7TWJ7w==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index 325bb81f7..d8e0f2cd0 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.1", - "node-fetch": "3.2.1", + "node-fetch": "3.2.2", "rimraf": "3.0.2", "showdown": "^2.0.2" } From 64dbf4f7e4d0edd1ae6124e5650f210f64a57901 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 16:04:04 +0100 Subject: [PATCH 021/327] Bump showdown from 2.0.2 to 2.0.3 (#986) Bumps [showdown](https://github.com/showdownjs/showdown) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/showdownjs/showdown/releases) - [Changelog](https://github.com/showdownjs/showdown/blob/2.0.3/CHANGELOG.md) - [Commits](https://github.com/showdownjs/showdown/compare/2.0.2...2.0.3) --- updated-dependencies: - dependency-name: showdown dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 18 +++++++++++------- package.json | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 92b4281ab..63872019f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "fs-extra": "10.0.1", "node-fetch": "3.2.2", "rimraf": "3.0.2", - "showdown": "^2.0.2" + "showdown": "^2.0.3" } }, "node_modules/balanced-match": { @@ -401,14 +401,18 @@ } }, "node_modules/showdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.2.tgz", - "integrity": "sha512-4z4aAfKk6WdDKGYYpBcdTovTSw/ock6/fg363pR4JECnEMbnFfwSV2B59IfesQQ6hTRVEebx7VXxMm0/KiAUgg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.3.tgz", + "integrity": "sha512-jHytkv5c5YFTAOYIIaTT1zLL/aC+7C1FiP0CIGQozhHnnFSbor1oYkaNqWFL6CpB3zJNPPSxJrAlsHgzN14knQ==", "dependencies": { "commander": "^9.0.0" }, "bin": { "showdown": "bin/showdown.js" + }, + "funding": { + "type": "individual", + "url": "http://example.com/donate" } }, "node_modules/tslib": { @@ -709,9 +713,9 @@ } }, "showdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.2.tgz", - "integrity": "sha512-4z4aAfKk6WdDKGYYpBcdTovTSw/ock6/fg363pR4JECnEMbnFfwSV2B59IfesQQ6hTRVEebx7VXxMm0/KiAUgg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.3.tgz", + "integrity": "sha512-jHytkv5c5YFTAOYIIaTT1zLL/aC+7C1FiP0CIGQozhHnnFSbor1oYkaNqWFL6CpB3zJNPPSxJrAlsHgzN14knQ==", "requires": { "commander": "^9.0.0" } diff --git a/package.json b/package.json index d8e0f2cd0..ebbd75646 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,6 @@ "fs-extra": "10.0.1", "node-fetch": "3.2.2", "rimraf": "3.0.2", - "showdown": "^2.0.2" + "showdown": "^2.0.3" } } From 989dba029d0c656a1d2c315a60ac16f840532020 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Mar 2022 16:27:49 +0100 Subject: [PATCH 022/327] Bump node-fetch from 3.2.2 to 3.2.3 (#987) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.2.2 to 3.2.3. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.2.2...v3.2.3) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 63872019f..6b28ed9d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.1", - "node-fetch": "3.2.2", + "node-fetch": "3.2.3", "rimraf": "3.0.2", "showdown": "^2.0.3" } @@ -330,9 +330,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.2.tgz", - "integrity": "sha512-Cwhq1JFIoon15wcIkFzubVNFE5GvXGV82pKf4knXXjvGmn7RJKcypeuqcVNZMGDZsAFWyIRya/anwAJr7TWJ7w==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.3.tgz", + "integrity": "sha512-AXP18u4pidSZ1xYXRDPY/8jdv3RAozIt/WLNR/MBGZAz+xjtlr90RvCnsvHQRiXyWliZF/CpytExp32UU67/SA==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -661,9 +661,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.2.tgz", - "integrity": "sha512-Cwhq1JFIoon15wcIkFzubVNFE5GvXGV82pKf4knXXjvGmn7RJKcypeuqcVNZMGDZsAFWyIRya/anwAJr7TWJ7w==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.3.tgz", + "integrity": "sha512-AXP18u4pidSZ1xYXRDPY/8jdv3RAozIt/WLNR/MBGZAz+xjtlr90RvCnsvHQRiXyWliZF/CpytExp32UU67/SA==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index ebbd75646..e063d36d1 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.0.1", - "node-fetch": "3.2.2", + "node-fetch": "3.2.3", "rimraf": "3.0.2", "showdown": "^2.0.3" } From 1669261fbadf62e8db772b452ac7752ee5bd00d9 Mon Sep 17 00:00:00 2001 From: theAkito Date: Mon, 4 Apr 2022 09:14:16 +0200 Subject: [PATCH 023/327] Add userdef --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 72015d0a3..146b1636b 100644 --- a/README.md +++ b/README.md @@ -445,7 +445,7 @@ Tools and applications that are either installed inside containers or designed t - [lstags](https://github.com/ivanilves/lstags) - sync Docker images across registries by [@ivanilves](https://github.com/ivanilves) - [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - The NVIDIA Container Runtime for Docker by [@NVIDIA][nvidia] - [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa) -- [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [@theAkito](https://github.com/theAkito) +- [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][Akito] - [supercronic](https://github.com/aptible/supercronic) - crontab-compatible job runner, designed specifically to run in containers by [@aptible](https://github.com/aptible/) - [TrivialRC](https://github.com/vorakl/TrivialRC) - A minimalistic Runtime Configuration system and process manager for containers [@vorakl](https://github.com/vorakl) @@ -481,6 +481,7 @@ Applications designed to help or simplify building **new** images - [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers by [@lavie](https://github.com/lavie) - [SkinnyWhale](https://github.com/djosephsen/skinnywhale) :skull: - Skinnywhale helps you make smaller (as in megabytes) Docker containers. - [Smith](https://github.com/oracle/smith) - A Micocontainer Builder and can perform multi-stage builds after the image is built [Oracle][oracle] +- [userdef](https://github.com/theAkito/userdef) - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][Akito] - [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles by [@P3GLEG](https://github.com/P3GLEG/). - [Whales](https://github.com/Gueils/whales) - A tool to automatically dockerize your applications by [@icalialabs](https://github.com/IcaliaLabs). @@ -839,6 +840,7 @@ Services to securely store your Docker images. [contributing]: https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md +[Akito]: https://github.com/theAkito [calico]: https://github.com/projectcalico/calicoctl [centurylinklabs]: https://github.com/CenturyLinkLabs [containx]: https://github.com/ContainX From c21d88fd02088014ca1e575db17445aa54d14d62 Mon Sep 17 00:00:00 2001 From: Intron014 Date: Mon, 18 Apr 2022 14:52:44 +0200 Subject: [PATCH 024/327] Axibase Collector link fix (#990) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 146b1636b..6e3dd16f7 100644 --- a/README.md +++ b/README.md @@ -198,7 +198,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker) ### Monitoring - [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. -- [Axibase Collector](https://github.com/axibase/atsd-use-cases/tree/master/integrations/docker) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. +- [Axibase Collector](https://github.com/axibase/docker-axibase-collector) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. Created by [@Google][google] - [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics - [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically by [@docker-flow][docker-flow] From b59e13ae6d1e072e13122cb8af72ef8bd282c114 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Apr 2022 19:51:47 +0200 Subject: [PATCH 025/327] Bump fs-extra from 10.0.1 to 10.1.0 (#991) Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 10.0.1 to 10.1.0. - [Release notes](https://github.com/jprichardson/node-fs-extra/releases) - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/10.0.1...10.1.0) --- updated-dependencies: - dependency-name: fs-extra dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6b28ed9d2..d5371b431 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", - "fs-extra": "10.0.1", + "fs-extra": "10.1.0", "node-fetch": "3.2.3", "rimraf": "3.0.2", "showdown": "^2.0.3" @@ -216,9 +216,9 @@ } }, "node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -581,9 +581,9 @@ } }, "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/package.json b/package.json index e063d36d1..d6cf42819 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", - "fs-extra": "10.0.1", + "fs-extra": "10.1.0", "node-fetch": "3.2.3", "rimraf": "3.0.2", "showdown": "^2.0.3" From 4839b3493630001172761f8ecaf31ab7ba401c1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Apr 2022 20:51:11 +0200 Subject: [PATCH 026/327] Bump showdown from 2.0.3 to 2.1.0 (#992) Bumps [showdown](https://github.com/showdownjs/showdown) from 2.0.3 to 2.1.0. - [Release notes](https://github.com/showdownjs/showdown/releases) - [Changelog](https://github.com/showdownjs/showdown/blob/2.1.0/CHANGELOG.md) - [Commits](https://github.com/showdownjs/showdown/compare/2.0.3...2.1.0) --- updated-dependencies: - dependency-name: showdown dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index d5371b431..cfb832d1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "fs-extra": "10.1.0", "node-fetch": "3.2.3", "rimraf": "3.0.2", - "showdown": "^2.0.3" + "showdown": "^2.1.0" } }, "node_modules/balanced-match": { @@ -401,9 +401,9 @@ } }, "node_modules/showdown": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.3.tgz", - "integrity": "sha512-jHytkv5c5YFTAOYIIaTT1zLL/aC+7C1FiP0CIGQozhHnnFSbor1oYkaNqWFL6CpB3zJNPPSxJrAlsHgzN14knQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", + "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==", "dependencies": { "commander": "^9.0.0" }, @@ -412,7 +412,7 @@ }, "funding": { "type": "individual", - "url": "http://example.com/donate" + "url": "https://www.paypal.me/tiviesantos" } }, "node_modules/tslib": { @@ -713,9 +713,9 @@ } }, "showdown": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.0.3.tgz", - "integrity": "sha512-jHytkv5c5YFTAOYIIaTT1zLL/aC+7C1FiP0CIGQozhHnnFSbor1oYkaNqWFL6CpB3zJNPPSxJrAlsHgzN14knQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", + "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==", "requires": { "commander": "^9.0.0" } diff --git a/package.json b/package.json index d6cf42819..0e4800938 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,6 @@ "fs-extra": "10.1.0", "node-fetch": "3.2.3", "rimraf": "3.0.2", - "showdown": "^2.0.3" + "showdown": "^2.1.0" } } From 6a212e728aabd6b49ad5a12f9a4cf278a8fb6217 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Apr 2022 01:23:52 +0200 Subject: [PATCH 027/327] Bump node-fetch from 3.2.3 to 3.2.4 (#994) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.2.3 to 3.2.4. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.2.3...v3.2.4) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index cfb832d1e..bb327c135 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.3", + "node-fetch": "3.2.4", "rimraf": "3.0.2", "showdown": "^2.1.0" } @@ -330,9 +330,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.3.tgz", - "integrity": "sha512-AXP18u4pidSZ1xYXRDPY/8jdv3RAozIt/WLNR/MBGZAz+xjtlr90RvCnsvHQRiXyWliZF/CpytExp32UU67/SA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.4.tgz", + "integrity": "sha512-WvYJRN7mMyOLurFR2YpysQGuwYrJN+qrrpHjJDuKMcSPdfFccRUla/kng2mz6HWSBxJcqPbvatS6Gb4RhOzCJw==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -661,9 +661,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.3.tgz", - "integrity": "sha512-AXP18u4pidSZ1xYXRDPY/8jdv3RAozIt/WLNR/MBGZAz+xjtlr90RvCnsvHQRiXyWliZF/CpytExp32UU67/SA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.4.tgz", + "integrity": "sha512-WvYJRN7mMyOLurFR2YpysQGuwYrJN+qrrpHjJDuKMcSPdfFccRUla/kng2mz6HWSBxJcqPbvatS6Gb4RhOzCJw==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index 0e4800938..d799ebef5 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.10", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.3", + "node-fetch": "3.2.4", "rimraf": "3.0.2", "showdown": "^2.1.0" } From 27ee55f06806af1f5f6700e52c8bfbe04b61cf50 Mon Sep 17 00:00:00 2001 From: Alexandr K Date: Sat, 30 Apr 2022 19:18:44 +0300 Subject: [PATCH 028/327] Add Stevedore (#995) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6e3dd16f7..ce6a96669 100644 --- a/README.md +++ b/README.md @@ -357,6 +357,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station) - [Lifeboat](https://github.com/jplhomer/lifeboat) - An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer) - [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - built on Electron. By [@felixgborrego](https://github.com/felixgborrego/) +- [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [@slonopotamus](https://github.com/slonopotamus) #### Terminal From eb9b91f402a2f76be26af6b221c3c31a1c3f4bf5 Mon Sep 17 00:00:00 2001 From: Pieter Date: Sun, 1 May 2022 11:29:13 +0200 Subject: [PATCH 029/327] Add Docker simplified in 55 seconds (#996) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ce6a96669..da766d54c 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker) - [Docker Documentation](https://docs.docker.com/): the official documentation. - [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. - [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. +- [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: - [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. - [Katacoda](https://www.katacoda.com/courses/docker): Learn Docker using Interactive Browser-Based Labs From edbd2f346a590efb95f472ebf17677eecbd6a834 Mon Sep 17 00:00:00 2001 From: Michal Nowikowski Date: Thu, 12 May 2022 09:01:54 +0200 Subject: [PATCH 030/327] Add Kraken CI (#997) * Add Kraken CI Kraken CI is a CI/CD system. One of its executors is Docker. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da766d54c..317d753ff 100644 --- a/README.md +++ b/README.md @@ -588,6 +588,7 @@ Services to securely store your Docker images. - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. - [GOCD-Docker](https://github.com/gocd/gocd-docker) :skull: - Go Server and Agent in docker containers to provision. +- [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed by [@Kraken-CI](https://github.com/Kraken-CI). - [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) - Continuous deployment of a microservices application. - [mu](https://github.com/stelligent/mu) - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [@Stelligent](https://github.com/stelligent) - [Ouroboros](https://github.com/pyouroboros/ouroboros) :skull: - Automatically update running Docker containers with notifications From f6b4509807c52a2dcaae1332852914aa65829d07 Mon Sep 17 00:00:00 2001 From: skillcombo <104157100+skillcombo@users.noreply.github.com> Date: Tue, 24 May 2022 08:54:52 +0300 Subject: [PATCH 031/327] Add list of free and paid online courses (#998) * Add list of free online courses * Updated text --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 317d753ff..0e2b9fbc7 100644 --- a/README.md +++ b/README.md @@ -804,7 +804,7 @@ Services to securely store your Docker images. - [Performance Analysis of Docker - Jeremy Eder](https://www.youtube.com/watch?v=6f2E6PKYb0w) (1:36:58) - [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615) Free Udacity course - [State of containers: a debate with CoreOS, VMware and Google](https://www.youtube.com/watch?v=IiITP3yIRd8) (27:38) - +- [List of online courses (free and paid) about Docker](https://skillcombo.com/topic/docker/) # Communities and Meetups From 24518200f1d1d7f547d821073c42c4769c30f734 Mon Sep 17 00:00:00 2001 From: Kieran Date: Sun, 5 Jun 2022 22:40:19 +0100 Subject: [PATCH 032/327] Fixed node.js url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e2b9fbc7..8919eae90 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ If this list is not complete, you can [contribute][editreadme] to make it so. He The creators and maintainers of this list do not receive any form of payment to accept a change made by any contributor. This page is not an official Docker product in any way. It is a list of links to projects and is maintained by volunteers. Everybody is welcome to contribute. The goal of this repo is to index open-source projects, not to advertise for profit. -All the links are monitored and tested with a home baked [Node.js script](https://github.com/veggiemonk/awesome-docker/blob/master/pull_request.js) +All the links are monitored and tested with a home baked [Node.js script](https://github.com/veggiemonk/awesome-docker/blob/master/pull_request.mjs) # Contents From f2b483df68f44eab672014e86903a7b63d2ac789 Mon Sep 17 00:00:00 2001 From: Kieran Date: Sun, 5 Jun 2022 22:43:55 +0100 Subject: [PATCH 033/327] rm Dist - Dead Link --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8919eae90..8429ef526 100644 --- a/README.md +++ b/README.md @@ -535,7 +535,6 @@ Services to securely store your Docker images. - [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. - [Cycle.io :heavy_dollar_sign:](https://cycle.io/) - Bare-metal container hosting. - [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry/) - DigitalOcean Container Registry. -- [Dist :heavy_dollar_sign:](https://www.dist.cloud/product/container-registry/) - Private cloud-based Docker container registry - [Docker Hub](https://hub.docker.com/) provided by Docker Inc. - [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content - [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent by [@netvarun](https://github.com/netvarun/) From 9a43c982712799c80a5c400cefb653a539c56d5a Mon Sep 17 00:00:00 2001 From: Kieran Date: Sun, 5 Jun 2022 22:44:59 +0100 Subject: [PATCH 034/327] Rm Dockerfile generator - Dead link --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8429ef526..eb53af2c9 100644 --- a/README.md +++ b/README.md @@ -491,7 +491,6 @@ Applications designed to help or simplify building **new** images - [chaperone-docker](https://github.com/garywiz/chaperone-docker) - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. - [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. -- [Dockerfile Generator](https://jrruethe.github.io/blog/2015/09/20/dockerfile-generator/) - [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. - [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [@PatrickHoefler](https://github.com/patrickhoefler) - [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. Maintained by [@CollageLabs](https://github.com/CollageLabs). From 255fe8db746b88bd416891002af5c9bd7be4ac72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jun 2022 09:29:30 +0200 Subject: [PATCH 035/327] Bump cheerio from 1.0.0-rc.10 to 1.0.0-rc.11 (#999) Bumps [cheerio](https://github.com/cheeriojs/cheerio) from 1.0.0-rc.10 to 1.0.0-rc.11. - [Release notes](https://github.com/cheeriojs/cheerio/releases) - [Changelog](https://github.com/cheeriojs/cheerio/blob/main/History.md) - [Commits](https://github.com/cheeriojs/cheerio/compare/v1.0.0-rc.10...v1.0.0-rc.11) --- updated-dependencies: - dependency-name: cheerio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 307 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 165 insertions(+), 144 deletions(-) diff --git a/package-lock.json b/package-lock.json index bb327c135..2619e9be3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "Apache-2.0", "dependencies": { - "cheerio": "1.0.0-rc.10", + "cheerio": "1.0.0-rc.11", "draftlog": "1.0.13", "fs-extra": "10.1.0", "node-fetch": "3.2.4", @@ -25,7 +25,7 @@ "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -37,17 +37,18 @@ } }, "node_modules/cheerio": { - "version": "1.0.0-rc.10", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", - "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.11.tgz", + "integrity": "sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==", "dependencies": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "tslib": "^2.4.0" }, "engines": { "node": ">= 6" @@ -57,15 +58,16 @@ } }, "node_modules/cheerio-select": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz", - "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dependencies": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" @@ -85,24 +87,24 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "engines": { "node": ">= 6" }, @@ -119,22 +121,22 @@ } }, "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "funding": [ { "type": "github", @@ -143,11 +145,11 @@ ] }, "node_modules/domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dependencies": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" @@ -157,13 +159,13 @@ } }, "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -175,9 +177,12 @@ "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" }, "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", + "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", + "engines": { + "node": ">=0.12" + }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -258,9 +263,9 @@ "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -269,10 +274,10 @@ } ], "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" } }, "node_modules/inflight": { @@ -347,9 +352,9 @@ } }, "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dependencies": { "boolbase": "^1.0.0" }, @@ -366,16 +371,26 @@ } }, "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "dependencies": { + "entities": "^4.3.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "dependencies": { - "parse5": "^6.0.1" + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/path-is-absolute": { @@ -416,9 +431,9 @@ } }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/universalify": { "version": "2.0.0", @@ -451,7 +466,7 @@ "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "brace-expansion": { "version": "1.1.11", @@ -463,29 +478,31 @@ } }, "cheerio": { - "version": "1.0.0-rc.10", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", - "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.11.tgz", + "integrity": "sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==", "requires": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "tslib": "^2.4.0" } }, "cheerio-select": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz", - "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "requires": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" } }, "commander": { @@ -499,21 +516,21 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "requires": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" } }, "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, "data-uri-to-buffer": { "version": "4.0.0", @@ -521,36 +538,36 @@ "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" }, "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" } }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "requires": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" } }, "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" } }, "draftlog": { @@ -559,9 +576,9 @@ "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" }, "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", + "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==" }, "fetch-blob": { "version": "3.1.4", @@ -614,14 +631,14 @@ "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" } }, "inflight": { @@ -671,9 +688,9 @@ } }, "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "requires": { "boolbase": "^1.0.0" } @@ -687,16 +704,20 @@ } }, "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "requires": { + "entities": "^4.3.0" + } }, "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "requires": { - "parse5": "^6.0.1" + "domhandler": "^5.0.2", + "parse5": "^7.0.0" } }, "path-is-absolute": { @@ -721,9 +742,9 @@ } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "universalify": { "version": "2.0.0", diff --git a/package.json b/package.json index d799ebef5..2ad40eb9b 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "homepage": "https://github.com/veggiemonk/awesome-docker#readme", "dependencies": { - "cheerio": "1.0.0-rc.10", + "cheerio": "1.0.0-rc.11", "draftlog": "1.0.13", "fs-extra": "10.1.0", "node-fetch": "3.2.4", From 1148a05ad3faf6ef08eb531729b7f74ed2206ffd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jun 2022 09:30:18 +0200 Subject: [PATCH 036/327] Bump node-fetch from 3.2.4 to 3.2.5 (#1000) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.2.4 to 3.2.5. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.2.4...v3.2.5) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2619e9be3..a07e7be21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.11", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.4", + "node-fetch": "3.2.5", "rimraf": "3.0.2", "showdown": "^2.1.0" } @@ -335,9 +335,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.4.tgz", - "integrity": "sha512-WvYJRN7mMyOLurFR2YpysQGuwYrJN+qrrpHjJDuKMcSPdfFccRUla/kng2mz6HWSBxJcqPbvatS6Gb4RhOzCJw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.5.tgz", + "integrity": "sha512-u7zCHdJp8JXBwF09mMfo2CL6kp37TslDl1KP3hRGTlCInBtag+UO3LGVy+NF0VzvnL3PVMpA2hXh1EtECFnyhQ==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -678,9 +678,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.4.tgz", - "integrity": "sha512-WvYJRN7mMyOLurFR2YpysQGuwYrJN+qrrpHjJDuKMcSPdfFccRUla/kng2mz6HWSBxJcqPbvatS6Gb4RhOzCJw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.5.tgz", + "integrity": "sha512-u7zCHdJp8JXBwF09mMfo2CL6kp37TslDl1KP3hRGTlCInBtag+UO3LGVy+NF0VzvnL3PVMpA2hXh1EtECFnyhQ==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index 2ad40eb9b..e423c064a 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.11", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.4", + "node-fetch": "3.2.5", "rimraf": "3.0.2", "showdown": "^2.1.0" } From c4d0048feb535ef1715f3e7d2a090a9e9c626186 Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Mon, 6 Jun 2022 16:01:58 +0200 Subject: [PATCH 037/327] fix: redirected links now work again (#1003) Twitter refuses to answer to crawlers other than 404 Youtube still redirects to consent.youtube.com for its services and requires a cookie not present for our crawler https://www.meetup.com/en-AU/Docker-Online-Meetup/ still uses a cookie check --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index eb53af2c9..f16dd74c3 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ All the links are monitored and tested with a home baked [Node.js script](https: > Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud. -_Source:_ [What is Docker](https://www.docker.com/why-docker) +_Source:_ [What is Docker](https://www.docker.com/why-docker/) # Where to start @@ -126,7 +126,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker) - [Build And Run Your First Docker Windows Server Container](https://www.docker.com/blog/build-your-first-docker-windows-server-container/) Walkthrough installing Docker on Windows 10, building a Docker image and running a Windows container - [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [@kaitoedter](https://twitter.com/kaitoedter) - [Docker Quick Tutorial](https://vegibit.com/docker-quick-tutorial/) Introduces you to the official Getting Started Tutorial using Windows 10 and Hyper-V. -- [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://success.mirantis.com/article/modernizing-traditional-dot-net-applications) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. +- [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. - [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker - [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] - [Running a Legacy ASP.NET App in a Windows Container](https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container/) Steps for Dockerizing a legacy ASP.NET app and running as a Windows container @@ -207,7 +207,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker) - [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. - [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by [@stefanprodan](https://github.com/stefanprodan) - [Dozzle](https://github.com/amir20/dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) -- [Dynatrace](https://www.dynatrace.com/technologies/docker-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands +- [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands - [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] - [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor by [@vegasbrianc][vegasbrianc] @@ -352,7 +352,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker) Native desktop applications for managing and montoring docker hosts and clusters -- [Docker Desktop](https://www.docker.com/products/docker-desktop) - Official native app. Only for Windows and MacOS +- [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS - [Dockeron](https://github.com/dockeron/dockeron) - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) - [DockerStacks](http://docker-stacks.com/) - Local LAMP/LEMP Development Studio [@sfx101](https://github.com/sfx101) - [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station) @@ -476,7 +476,7 @@ Applications designed to help or simplify building **new** images - [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder by [@genuinetools][genuinetools] - [kaniko](https://github.com/GoogleContainerTools/kaniko) - Build Container Images In Kubernetes. By [@GoogleContainerTools][googlecontainertools] - [makisu](https://github.com/uber/makisu) - Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber) -- [packer](https://www.packer.io/docs/builders/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible +- [packer](https://www.packer.io/plugins/builders/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible - [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images by [@duedil-ltd](https://github.com/duedil-ltd) - [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. - [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi) @@ -533,7 +533,7 @@ Services to securely store your Docker images. - [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/docker-registry/) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. - [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. - [Cycle.io :heavy_dollar_sign:](https://cycle.io/) - Bare-metal container hosting. -- [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry/) - DigitalOcean Container Registry. +- [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. - [Docker Hub](https://hub.docker.com/) provided by Docker Inc. - [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content - [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent by [@netvarun](https://github.com/netvarun/) @@ -546,7 +546,7 @@ Services to securely store your Docker images. - [Quay.io :heavy_dollar_sign:](https://quay.io/) (part of CoreOS) - Secure hosting for private Docker repositories - [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry - [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source) by [@noteed](https://github.com/noteed) -- [Sonatype Nexus](https://www.sonatype.com/products/repository-oss) - Repository with Universal Support, also for Docker images +- [Sonatype Nexus Repository](https://www.sonatype.com/products/nexus-repository) - Manage binaries and build artifacts across your software supply chain. - [TreeScale](https://github.com/treescale) - Build and Distribute container based applications. By [@tigranbs](https://github.com/tigranbs) ## Development with Docker @@ -554,8 +554,8 @@ Services to securely store your Docker images. ### API Client - [ahab](https://github.com/instacart/ahab) - Docker event handling with Python by [@instacart](https://github.com/instacart) -- [clj-docker-client](https://github.com/into-docker/clj-docker-client) :skull: - Idiomatic Clojure client for the Docker remote API. By [@lispyclouds](https://github.com/lispyclouds) -- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [@lispyclouds](https://github.com/lispyclouds) +- [clj-docker-client](https://github.com/into-docker/clj-docker-client) :skull: - Idiomatic Clojure client for the Docker remote API. By [@lispyclouds][lispyclouds] +- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [@lispyclouds][lispyclouds] - [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy by [@gesellix][gesellix] - [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [@masaeedu](https://github.com/masaeedu) - [docker-client](https://github.com/spotify/docker-client) :skull: - Java client for the Docker remote API. By [@spotify][spotify] @@ -685,7 +685,6 @@ Services to securely store your Docker images. - [CodeShip](https://www.cloudbees.com/products/codeship) :heavy_dollar_sign: - Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. - [ConcourseCI](https://concourse-ci.org) :heavy_dollar_sign: - A CI SaaS platform for developers and DevOps teams pipeline oriented. - [Semaphore CI](https://semaphoreci.com/) :heavy_dollar_sign: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. -- [Shippable](https://app.shippable.com/) :heavy_dollar_sign: - A SaaS platform for developers and DevOps teams that significantly reduces the time taken for code to be built, tested and deployed to production. - [TravisCI](https://travis-ci.org/) :heavy_dollar_sign: - A Free github projects continuous integration Saas platform for developers and Devops. ### CaaS @@ -697,12 +696,12 @@ Services to securely store your Docker images. - [Dockhero](https://dockhero.io/) :heavy_dollar_sign: - Dockhero is a Heroku add-on which turns a Docker image into a microservice attached to the Heroku app. Currently in beta. - [Giant Swarm](https://www.giantswarm.io/) :heavy_dollar_sign: - Simple microservice infrastructure. Deploy your containers in seconds. - [Google Container Engine](https://cloud.google.com/kubernetes-engine/docs/) :heavy_dollar_sign: - Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. -- [Jelastic Cloud](https://jelastic.cloud/) :heavy_dollar_sign: - "Easy-to-use" container hosting platfrom with automatic vertical and horizontal scaling. Available over 50+ hosting providers worldwide. - [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) :heavy_dollar_sign: - Integrated platform for data and containers built on Apache Mesos by [@mesosphere](https://d2iq.com) - [Red Hat CodeReady Workspaces](https://developers.redhat.com/products/codeready-workspaces/overview) - A collaborative Kubernetes-native solution for rapid application development that delivers consistent developer environments on Red Hat OpenShift to allow anyone with a browser to contribute code in under two minutes. -- [Red Hat OpenShift Dedicated](https://cloud.redhat.com/products/dedicated/) :heavy_dollar_sign: - Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud +- [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) :heavy_dollar_sign: - Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud - [Sloppy.io](https://sloppy.io/en/) :heavy_dollar_sign: - all-in-one solution for container deployment and hosting – made and hosted in Germany - [Triton](https://www.joyent.com/) :heavy_dollar_sign: - Elastic container-native infrastructure by Joyent. +- [Virtuozzo Application Platform](https://www.virtuozzo.com/application-platform-partners/) :heavy_dollar_sign: - Deploy and manage your projects with turnkey PaaS across a wide network of reliable service providers ### Monitoring Services @@ -725,10 +724,10 @@ Services to securely store your Docker images. - [Docker dev bookmarks](https://www.codever.land/search?q=docker) - use the tag [docker](https://www.codever.land/bookmarks/t/docker) - [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) - [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) -- [Docker Newsletter](https://www.docker.com/newsletter-subscription) Docker newsletter for regular updates +- [Docker Newsletter](https://www.docker.com/newsletter-subscription/) Docker newsletter for regular updates - [Docker packaging guide for Python](https://pythonspeed.com/docker/) - a series of detailed articles on the specifics of Docker packaging for Python. - [Learn Docker in a Month of Lunches](https://www.manning.com/books/learn-docker-in-a-month-of-lunches) -- [Learn Docker](https://blog.coursesity.com/best-docker-tutorials/) - Learn Docker - curated list of the top online docker tutorials and courses. +- [Learn Docker](https://coursesity.com/blog/best-docker-tutorials/) - Learn Docker - curated list of the top online docker tutorials and courses. - [Programming Community Curated Resources for learning Docker](https://hackr.io/tutorials/learn-docker) @@ -817,9 +816,9 @@ Services to securely store your Docker images. ## English -- [Docker Community](https://www.docker.com/docker-community) -- [Docker Events](https://www.docker.com/events) -- [Docker On Line Meetup](https://www.meetup.com/Docker-Online-Meetup/) +- [Docker Community](https://www.docker.com/community/) +- [Docker Events](https://www.docker.com/events/) +- [Docker Online Meetup](https://www.meetup.com/en-AU/Docker-Online-Meetup/) - [Docker Reddit Community](https://www.reddit.com/r/docker/) ## Russian @@ -837,7 +836,7 @@ Services to securely store your Docker images. ## Contributor over time -[![Contributor over time](https://contributor-graph-api.apiseven.com/contributors-svg?chart=contributorOverTime&repo=veggiemonk/awesome-docker)](https://www.apiseven.com/en/contributor-graph?chart=contributorOverTime&repo=veggiemonk/awesome-docker) +[![Contributor over time](https://api7.ai/contributor-graph?chart=contributorOverTime&repo=veggiemonk/awesome-docker) [contributing]: https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md @@ -867,6 +866,7 @@ Services to securely store your Docker images. [jpetazzo]: https://github.com/jpetazzo [jwilder]: https://github.com/jwilder [kubernetes]: https://kubernetes.io +[lispyclouds]: https://github.com/lispyclouds [nvidia]: https://github.com/nvidia [nginxproxy]: https://github.com/nginx-proxy/nginx-proxy [openshift]: https://www.okd.io From ab0892b3239de2a3524fbd926d35c471570105a6 Mon Sep 17 00:00:00 2001 From: knrdl <35548889+knrdl@users.noreply.github.com> Date: Mon, 6 Jun 2022 18:43:06 +0200 Subject: [PATCH 038/327] Add CASA (Container as a Service Admin) (#1002) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f16dd74c3..4673f61bf 100644 --- a/README.md +++ b/README.md @@ -407,6 +407,7 @@ Native desktop applications for managing and montoring docker hosts and clusters #### Web - [Admiral](https://github.com/vmware/admiral) Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By [VMWare] +- [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers, by [@knrdl](https://github.com/knrdl) - [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [@wrfly](https://github.com/wrfly) - [Docker Compose UI](https://github.com/francescou/docker-compose-ui) - Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI - [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2 by [@klausmeyer](https://github.com/klausmeyer) From eae16719762f81e6b8999dc0276d8fd702fb3953 Mon Sep 17 00:00:00 2001 From: Kieran <32241933+KieranRobson@users.noreply.github.com> Date: Tue, 14 Jun 2022 07:21:49 +0100 Subject: [PATCH 039/327] Link Cleanup (#1006) --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4673f61bf..18d757cd6 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ If this list is not complete, you can [contribute][editreadme] to make it so. He The creators and maintainers of this list do not receive any form of payment to accept a change made by any contributor. This page is not an official Docker product in any way. It is a list of links to projects and is maintained by volunteers. Everybody is welcome to contribute. The goal of this repo is to index open-source projects, not to advertise for profit. -All the links are monitored and tested with a home baked [Node.js script](https://github.com/veggiemonk/awesome-docker/blob/master/pull_request.mjs) +All the links are monitored and tested with a home baked [Node.js script](https://github.com/veggiemonk/awesome-docker/blob/master/.github/workflows/pull_request.yml) # Contents @@ -283,7 +283,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [@jc21](https://github.com/jc21) - [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [@jwilder][jwilder] - [Swarm Ingress Router](https://github.com/tpbowden/swarm-ingress-router) :skull: - Route DNS names to Swarm services based on labels. By [@tpbowden](https://github.com/tpbowden/) -- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [@flavioaiello](https://twitter.com/flavioaiello) +- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [@flavioaiello](https://github.com/flavioaiello) - [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [@EmileVauge](https://github.com/emilevauge) ### Runtime @@ -354,7 +354,6 @@ Native desktop applications for managing and montoring docker hosts and clusters - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS - [Dockeron](https://github.com/dockeron/dockeron) - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) -- [DockerStacks](http://docker-stacks.com/) - Local LAMP/LEMP Development Studio [@sfx101](https://github.com/sfx101) - [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station) - [Lifeboat](https://github.com/jplhomer/lifeboat) - An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer) - [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - built on Electron. By [@felixgborrego](https://github.com/felixgborrego/) @@ -750,7 +749,6 @@ Services to securely store your Docker images. ## Good Tips -- [Dealing with linked containers dependency in docker-compose](http://brunorocha.org/python/dealing-with-linked-containers-dependency-in-docker-compose.html) by [@rochacbruno](https://github.com/rochacbruno) - [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** - [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [@jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015 - [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/cloud/docker-vs-vms-combining-both-for-cloud-portability-nirvana/) From 0a9a9e0087a865d3f1b1e3f87eef78cf29e98c8b Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Mon, 13 Jun 2022 23:22:07 -0700 Subject: [PATCH 040/327] docs: add coder to Development Environment (#1005) Co-authored-by: Julien Bisconti --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 18d757cd6..6c4268c0b 100644 --- a/README.md +++ b/README.md @@ -601,6 +601,7 @@ Services to securely store your Docker images. - [batect](https://github.com/batect/batect) - build and testing environments as code tool: Dockerised build and testing environments made easy by [@charleskorn](https://github.com/charleskorn) - [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [@TechnologyAdvice](https://github.com/TechnologyAdvice)) - [Boot2Docker](https://github.com/boot2docker/boot2docker) :skull: - Docker for OSX and Windows +- [coder](https://github.com/coder/coder) - remote development machines powered by Terraform or Docker by [@coder] - [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment by [@lstephen](https://github.com/lstephen) - [Crashcart](https://github.com/oracle/crashcart) - Sideload Linux binaries into a running container for troubleshooting by [@Oracle][oracle] - [dde](https://github.com/whatwedo/dde) :construction: - Local development environment toolset based on Docker. By [@whatwedo](https://github.com/whatwedo) From bc078ffe7f2833610c665fe11ab1109ff7eb0078 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jun 2022 08:24:54 +0200 Subject: [PATCH 041/327] Bump node-fetch from 3.2.5 to 3.2.6 (#1004) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index a07e7be21..a0689c07f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.11", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.5", + "node-fetch": "3.2.6", "rimraf": "3.0.2", "showdown": "^2.1.0" } @@ -335,9 +335,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.5.tgz", - "integrity": "sha512-u7zCHdJp8JXBwF09mMfo2CL6kp37TslDl1KP3hRGTlCInBtag+UO3LGVy+NF0VzvnL3PVMpA2hXh1EtECFnyhQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.6.tgz", + "integrity": "sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -678,9 +678,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.5.tgz", - "integrity": "sha512-u7zCHdJp8JXBwF09mMfo2CL6kp37TslDl1KP3hRGTlCInBtag+UO3LGVy+NF0VzvnL3PVMpA2hXh1EtECFnyhQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.6.tgz", + "integrity": "sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index e423c064a..eb6023ad0 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.11", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.5", + "node-fetch": "3.2.6", "rimraf": "3.0.2", "showdown": "^2.1.0" } From 53beddb837e7a9ced4a44749d6b53d4071a9eb1f Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Wed, 15 Jun 2022 14:43:55 -0700 Subject: [PATCH 042/327] Update README.md (#1007) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c4268c0b..ea588aec9 100644 --- a/README.md +++ b/README.md @@ -601,7 +601,7 @@ Services to securely store your Docker images. - [batect](https://github.com/batect/batect) - build and testing environments as code tool: Dockerised build and testing environments made easy by [@charleskorn](https://github.com/charleskorn) - [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [@TechnologyAdvice](https://github.com/TechnologyAdvice)) - [Boot2Docker](https://github.com/boot2docker/boot2docker) :skull: - Docker for OSX and Windows -- [coder](https://github.com/coder/coder) - remote development machines powered by Terraform or Docker by [@coder] +- [coder](https://github.com/coder/coder) - remote development machines powered by Terraform or Docker by [@coder](https://github.com/coder) - [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment by [@lstephen](https://github.com/lstephen) - [Crashcart](https://github.com/oracle/crashcart) - Sideload Linux binaries into a running container for troubleshooting by [@Oracle][oracle] - [dde](https://github.com/whatwedo/dde) :construction: - Local development environment toolset based on Docker. By [@whatwedo](https://github.com/whatwedo) From af9ea7a7cc9b679d9090492a29af81c74ecb6559 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jun 2022 19:39:49 +0200 Subject: [PATCH 043/327] Bump cheerio from 1.0.0-rc.11 to 1.0.0-rc.12 (#1008) Bumps [cheerio](https://github.com/cheeriojs/cheerio) from 1.0.0-rc.11 to 1.0.0-rc.12. - [Release notes](https://github.com/cheeriojs/cheerio/releases) - [Changelog](https://github.com/cheeriojs/cheerio/blob/main/History.md) - [Commits](https://github.com/cheeriojs/cheerio/compare/v1.0.0-rc.11...v1.0.0-rc.12) --- updated-dependencies: - dependency-name: cheerio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 30 +++++++++--------------------- package.json | 2 +- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index a0689c07f..983e7c85b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "Apache-2.0", "dependencies": { - "cheerio": "1.0.0-rc.11", + "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", "node-fetch": "3.2.6", @@ -37,9 +37,9 @@ } }, "node_modules/cheerio": { - "version": "1.0.0-rc.11", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.11.tgz", - "integrity": "sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==", + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -47,8 +47,7 @@ "domutils": "^3.0.1", "htmlparser2": "^8.0.1", "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0", - "tslib": "^2.4.0" + "parse5-htmlparser2-tree-adapter": "^7.0.0" }, "engines": { "node": ">= 6" @@ -430,11 +429,6 @@ "url": "https://www.paypal.me/tiviesantos" } }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -478,9 +472,9 @@ } }, "cheerio": { - "version": "1.0.0-rc.11", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.11.tgz", - "integrity": "sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==", + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", "requires": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -488,8 +482,7 @@ "domutils": "^3.0.1", "htmlparser2": "^8.0.1", "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0", - "tslib": "^2.4.0" + "parse5-htmlparser2-tree-adapter": "^7.0.0" } }, "cheerio-select": { @@ -741,11 +734,6 @@ "commander": "^9.0.0" } }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", diff --git a/package.json b/package.json index eb6023ad0..9572180cf 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "homepage": "https://github.com/veggiemonk/awesome-docker#readme", "dependencies": { - "cheerio": "1.0.0-rc.11", + "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", "node-fetch": "3.2.6", From b0bbaa2123afbd5ceb6fb14901b0a09f4cc45eda Mon Sep 17 00:00:00 2001 From: amerkurev Date: Fri, 1 Jul 2022 15:24:16 +0300 Subject: [PATCH 044/327] add Doku (Docker disk usage dashboard) (#1009) * add Doku (Docker disk usage dashboard) * remove unnecessary new line --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ea588aec9..041ad27e3 100644 --- a/README.md +++ b/README.md @@ -206,6 +206,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Dockerana](https://github.com/dockerana/dockerana) :skull: - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. - [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. - [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by [@stefanprodan](https://github.com/stefanprodan) +- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [@amerkurev](https://github.com/amerkurev) - [Dozzle](https://github.com/amir20/dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) - [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands - [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) From 794aa87224a7b73d6d18fde0a713459a35a767bc Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Wed, 13 Jul 2022 10:08:15 +0200 Subject: [PATCH 045/327] Fix dead links and PR tests (#1011) --- README.md | 1243 ++++++++++++++++++------------------ tests/exclude_in_test.json | 4 +- 2 files changed, 622 insertions(+), 625 deletions(-) diff --git a/README.md b/README.md index 041ad27e3..a33f201d3 100644 --- a/README.md +++ b/README.md @@ -21,73 +21,73 @@ All the links are monitored and tested with a home baked [Node.js script](https: -- [Legend](#legend) -- [What is Docker](#what-is-docker) -- [Where to start](#where-to-start) -- [Where to start (Windows)](#where-to-start-windows) -- [Projects](#projects) - - [Container Operations](#container-operations) - - [Container Composition](#container-composition) - - [Deployment and Infrastructure](#deployment-and-infrastructure) - - [Monitoring](#monitoring) - - [Networking](#networking) - - [Orchestration](#orchestration) - - [PaaS](#paas) - - [Reverse Proxy](#reverse-proxy) - - [Runtime](#runtime) - - [Security](#security) - - [Service Discovery](#service-discovery) - - [Volume Management / Data](#volume-management--data) - - [User Interface](#user-interface) - - [IDE integrations](#ide-integrations) - - [Desktop](#desktop) - - [Terminal](#terminal) - - [Terminal UI](#terminal-ui) - - [CLI tools](#cli-tools) - - [Other](#other) - - [Web](#web) - - [Docker Images](#docker-images) - - [Base Tools](#base-tools) - - [Builder](#builder) - - [Dockerfile](#dockerfile) - - [Linter](#linter) - - [Metadata](#metadata) - - [Registry](#registry) - - [Development with Docker](#development-with-docker) - - [API Client](#api-client) - - [CI/CD](#cicd) - - [Development Environment](#development-environment) - - [Garbage Collection](#garbage-collection) - - [Serverless](#serverless) - - [Testing](#testing) - - [Wrappers](#wrappers) - - [Services based on Docker (mostly :heavy_dollar_sign:)](#services-based-on-docker-mostly-heavy_dollar_sign) - - [CI Services](#ci-services) - - [CaaS](#caas) - - [Monitoring Services](#monitoring-services) -- [Useful Resources](#useful-resources) - - [Awesome Lists](#awesome-lists) - - [Demos and Examples](#demos-and-examples) - - [Good Tips](#good-tips) - - [Raspberry Pi & ARM](#raspberry-pi--arm) - - [Security](#security-1) - - [Videos](#videos) -- [Communities and Meetups](#communities-and-meetups) - - [Brazilian](#brazilian) - - [Chinese](#chinese) - - [English](#english) - - [Russian](#russian) - - [Spanish](#spanish) - - [Stargazers over time](#stargazers-over-time) - - [Contributor over time](#contributor-over-time) +- [Legend](#legend) +- [What is Docker](#what-is-docker) +- [Where to start](#where-to-start) +- [Where to start (Windows)](#where-to-start-windows) +- [Projects](#projects) + - [Container Operations](#container-operations) + - [Container Composition](#container-composition) + - [Deployment and Infrastructure](#deployment-and-infrastructure) + - [Monitoring](#monitoring) + - [Networking](#networking) + - [Orchestration](#orchestration) + - [PaaS](#paas) + - [Reverse Proxy](#reverse-proxy) + - [Runtime](#runtime) + - [Security](#security) + - [Service Discovery](#service-discovery) + - [Volume Management / Data](#volume-management--data) + - [User Interface](#user-interface) + - [IDE integrations](#ide-integrations) + - [Desktop](#desktop) + - [Terminal](#terminal) + - [Terminal UI](#terminal-ui) + - [CLI tools](#cli-tools) + - [Other](#other) + - [Web](#web) + - [Docker Images](#docker-images) + - [Base Tools](#base-tools) + - [Builder](#builder) + - [Dockerfile](#dockerfile) + - [Linter](#linter) + - [Metadata](#metadata) + - [Registry](#registry) + - [Development with Docker](#development-with-docker) + - [API Client](#api-client) + - [CI/CD](#cicd) + - [Development Environment](#development-environment) + - [Garbage Collection](#garbage-collection) + - [Serverless](#serverless) + - [Testing](#testing) + - [Wrappers](#wrappers) + - [Services based on Docker (mostly :heavy_dollar_sign:)](#services-based-on-docker-mostly-heavy_dollar_sign) + - [CI Services](#ci-services) + - [CaaS](#caas) + - [Monitoring Services](#monitoring-services) +- [Useful Resources](#useful-resources) + - [Awesome Lists](#awesome-lists) + - [Demos and Examples](#demos-and-examples) + - [Good Tips](#good-tips) + - [Raspberry Pi & ARM](#raspberry-pi--arm) + - [Security](#security-1) + - [Videos](#videos) +- [Communities and Meetups](#communities-and-meetups) + - [Brazilian](#brazilian) + - [Chinese](#chinese) + - [English](#english) + - [Russian](#russian) + - [Spanish](#spanish) + - [Stargazers over time](#stargazers-over-time) + - [Contributor over time](#contributor-over-time) # Legend -- Abandoned :skull: -- Beta :construction: -- Monetized :heavy_dollar_sign: +- Abandoned :skull: +- Beta :construction: +- Monetized :heavy_dollar_sign: # What is Docker @@ -97,336 +97,334 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) # Where to start -- [Benefits of using Docker](https://semaphoreci.com/blog/docker-benefits) for development and delivery, with a practical roadmap for adoption. -- [Bootstrapping Microservices](https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform) by [Ashley Davis](https://twitter.com/ashleydavis75) - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster. -- [Docker Curriculum](https://github.com/prakhar1989/docker-curriculum): A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service. -- [Docker Documentation](https://docs.docker.com/): the official documentation. -- [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. -- [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. -- [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. -- [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: -- [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. -- [Katacoda](https://www.katacoda.com/courses/docker): Learn Docker using Interactive Browser-Based Labs -- [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) -- [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. -- [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This spanish guide contains the use of basic docker commands with real life examples. -- [Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology. -- [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. +- [Benefits of using Docker](https://semaphoreci.com/blog/docker-benefits) for development and delivery, with a practical roadmap for adoption. +- [Bootstrapping Microservices](https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform) by [Ashley Davis](https://twitter.com/ashleydavis75) - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster. +- [Docker Curriculum](https://github.com/prakhar1989/docker-curriculum): A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service. +- [Docker Documentation](https://docs.docker.com/): the official documentation. +- [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. +- [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. +- [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. +- [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: +- [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. +- [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) +- [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. +- [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This spanish guide contains the use of basic docker commands with real life examples. +- [Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology. +- [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. **Cheatsheets** by -- [@eon01](https://github.com/eon01/DockerCheatSheet) -- [@dimonomid](https://github.com/dimonomid/docker-quick-ref) (PDF) -- [@JensPiegsa](https://github.com/JensPiegsa/docker-cheat-sheet) -- [@wsargent](https://github.com/wsargent/docker-cheat-sheet) (Most popular) +- [@eon01](https://github.com/eon01/DockerCheatSheet) +- [@dimonomid](https://github.com/dimonomid/docker-quick-ref) (PDF) +- [@JensPiegsa](https://github.com/JensPiegsa/docker-cheat-sheet) +- [@wsargent](https://github.com/wsargent/docker-cheat-sheet) (Most popular) # Where to start (Windows) -- [A Comparative Study of Docker Engine on Windows Server vs Linux Platform](https://collabnix.com/a-comparative-study-of-docker-engine-on-windows-server-vs-linux-platform/) Comparing the feature sets and implementations of Docker on Windows and Linux -- [Build And Run Your First Docker Windows Server Container](https://www.docker.com/blog/build-your-first-docker-windows-server-container/) Walkthrough installing Docker on Windows 10, building a Docker image and running a Windows container -- [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [@kaitoedter](https://twitter.com/kaitoedter) -- [Docker Quick Tutorial](https://vegibit.com/docker-quick-tutorial/) Introduces you to the official Getting Started Tutorial using Windows 10 and Hyper-V. -- [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. -- [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker -- [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] -- [Running a Legacy ASP.NET App in a Windows Container](https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container/) Steps for Dockerizing a legacy ASP.NET app and running as a Windows container -- [Windows Containers and Docker: The 101](https://www.youtube.com/watch?v=N7SG2wEyQtM) :movie_camera: - A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps -- [Windows Containers Quick Start](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/) Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016 +- [A Comparative Study of Docker Engine on Windows Server vs Linux Platform](https://collabnix.com/a-comparative-study-of-docker-engine-on-windows-server-vs-linux-platform/) Comparing the feature sets and implementations of Docker on Windows and Linux +- [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [@kaitoedter](https://twitter.com/kaitoedter) +- [Docker Quick Tutorial](https://vegibit.com/docker-quick-tutorial/) Introduces you to the official Getting Started Tutorial using Windows 10 and Hyper-V. +- [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. +- [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker +- [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] +- [Running a Legacy ASP.NET App in a Windows Container](https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container/) Steps for Dockerizing a legacy ASP.NET app and running as a Windows container +- [Windows Containers and Docker: The 101](https://www.youtube.com/watch?v=N7SG2wEyQtM) :movie_camera: - A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps +- [Windows Containers Quick Start](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/) Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016 --- # Projects -- Moby = open source development -- Docker CE = free product release based on Moby -- Docker EE = commercial product release based on Docker CE. +- Moby = open source development +- Docker CE = free product release based on Moby +- Docker EE = commercial product release based on Docker CE. > Docker EE is on the same code base as Docker CE, so also built from Moby, with commercial components added, such as "docker data center / universal control plane" -- [Moby](https://github.com/moby/moby) -- [Docker Images](https://hub.docker.com) -- [Docker Compose](https://github.com/docker/compose/) (Define and run multi-container applications with Docker) -- [Docker Machine](https://github.com/docker/machine) (Machine management for a container-centric world) -- [Docker Registry][distribution] (The Docker toolset to pack, ship, store, and deliver content) -- [Docker Swarm](https://github.com/docker/swarm) (Swarm: a Docker-native clustering system) +- [Moby](https://github.com/moby/moby) +- [Docker Images](https://hub.docker.com) +- [Docker Compose](https://github.com/docker/compose/) (Define and run multi-container applications with Docker) +- [Docker Machine](https://github.com/docker/machine) (Machine management for a container-centric world) +- [Docker Registry][distribution] (The Docker toolset to pack, ship, store, and deliver content) +- [Docker Swarm](https://github.com/docker/swarm) (Swarm: a Docker-native clustering system) ## Container Operations ### Container Composition -- [bocker](https://github.com/icy/bocker) (2) :skull: - Write Dockerfile completely in Bash. Extensible and simple. --> Reusable by [@icy](https://github.com/icy) -- [bocker](https://github.com/p8952/bocker) (1) :skull: - Docker implemented in 100 lines of bash by [p8952](https://github.com/p8952) -- [box](https://github.com/box-builder/box) - Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation -- [Capitan](https://github.com/byrnedo/capitan) - Composable docker orchestration with added scripting support by [@byrnedo]. -- [compose_plantuml](https://github.com/funkwerk/compose_plantuml) :skull: - Generate Plantuml graphs from docker-compose files by [@funkwerk](https://github.com/funkwerk) -- [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files -- [crowdr](https://github.com/polonskiy/crowdr) - Tool for managing multiple Docker containers (`docker-compose` alternative) by [@polonskiy](https://github.com/polonskiy/) -- [docker-compose-graphviz](https://github.com/abesto/docker-compose-graphviz) :skull: - Turn a docker-compose.yml files into Graphviz .dot files by [@abesto](https://github.com/abesto) -- [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) - Utility to update docker configs and secrets for deploying in a compose file by [@sudo-bmitch](https://github.com/sudo-bmitch) -- [draw-compose](https://github.com/Alexis-benoist/draw-compose) :skull: - Utility to draw a schema of a docker compose by [@Alexis-benoist](https://github.com/Alexis-benoist) -- [elsy](https://github.com/cisco/elsy) - An opinionated, multi-language, build tool based on Docker and Docker Compose -- [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker by [@cloud66](https://github.com/cloud66) -- [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes -- [Maestro](https://github.com/toscanini/maestro) :skull: - Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit by [@tascanini](https://github.com/toscanini) -- [Nuxx](https://github.com/nuxxapp/nuxx) - Visually generate docker-compose.yaml code with drag-n-drop UI. By [@corpulent](https://github.com/corpulent) -- [percheron](https://github.com/ashmckenzie/percheron) :skull: - Organise your Docker containers with muscle and intelligence by [@ashmckenzie](https://github.com/ashmckenzie) -- [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. -- [podman-compose](https://github.com/containers/podman-compose) - a script to run docker-compose.yml using podman by [@containers][containers] -- [rocker-compose](https://github.com/grammarly/rocker-compose) :skull: - Docker composition tool with idempotency features for deploying apps composed of multiple containers. By[@grammarly](grammarly). -- [rocker](https://github.com/grammarly/rocker) :skull: - Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by [@grammarly](grammarly). -- [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [@roquie](https://github.com/roquie) -- [Stacker](https://github.com/stacker/stacker-cli) :skull: - Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience). -- [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [@alexaandrov](https://github.com/alexaandrov) -- [Zodiac](https://github.com/CenturyLinkLabs/zodiac) :skull: - A lightweight tool for easy deployment and rollback of dockerized applications. By [@CenturyLinkLabs][centurylinklabs] +- [bocker](https://github.com/icy/bocker) (2) :skull: - Write Dockerfile completely in Bash. Extensible and simple. --> Reusable by [@icy](https://github.com/icy) +- [bocker](https://github.com/p8952/bocker) (1) :skull: - Docker implemented in 100 lines of bash by [p8952](https://github.com/p8952) +- [box](https://github.com/box-builder/box) - Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation +- [Capitan](https://github.com/byrnedo/capitan) - Composable docker orchestration with added scripting support by [@byrnedo]. +- [compose_plantuml](https://github.com/funkwerk/compose_plantuml) :skull: - Generate Plantuml graphs from docker-compose files by [@funkwerk](https://github.com/funkwerk) +- [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files +- [crowdr](https://github.com/polonskiy/crowdr) - Tool for managing multiple Docker containers (`docker-compose` alternative) by [@polonskiy](https://github.com/polonskiy/) +- [docker-compose-graphviz](https://github.com/abesto/docker-compose-graphviz) :skull: - Turn a docker-compose.yml files into Graphviz .dot files by [@abesto](https://github.com/abesto) +- [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) - Utility to update docker configs and secrets for deploying in a compose file by [@sudo-bmitch](https://github.com/sudo-bmitch) +- [draw-compose](https://github.com/Alexis-benoist/draw-compose) :skull: - Utility to draw a schema of a docker compose by [@Alexis-benoist](https://github.com/Alexis-benoist) +- [elsy](https://github.com/cisco/elsy) - An opinionated, multi-language, build tool based on Docker and Docker Compose +- [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker by [@cloud66](https://github.com/cloud66) +- [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes +- [Maestro](https://github.com/toscanini/maestro) :skull: - Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit by [@tascanini](https://github.com/toscanini) +- [Nuxx](https://github.com/nuxxapp/nuxx) - Visually generate docker-compose.yaml code with drag-n-drop UI. By [@corpulent](https://github.com/corpulent) +- [percheron](https://github.com/ashmckenzie/percheron) :skull: - Organise your Docker containers with muscle and intelligence by [@ashmckenzie](https://github.com/ashmckenzie) +- [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. +- [podman-compose](https://github.com/containers/podman-compose) - a script to run docker-compose.yml using podman by [@containers][containers] +- [rocker-compose](https://github.com/grammarly/rocker-compose) :skull: - Docker composition tool with idempotency features for deploying apps composed of multiple containers. By[@grammarly](grammarly). +- [rocker](https://github.com/grammarly/rocker) :skull: - Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by [@grammarly](grammarly). +- [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [@roquie](https://github.com/roquie) +- [Stacker](https://github.com/stacker/stacker-cli) :skull: - Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience). +- [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [@alexaandrov](https://github.com/alexaandrov) +- [Zodiac](https://github.com/CenturyLinkLabs/zodiac) :skull: - A lightweight tool for easy deployment and rollback of dockerized applications. By [@CenturyLinkLabs][centurylinklabs] ### Deployment and Infrastructure -- [awesome-stacks](https://github.com/ethibox/awesome-stacks) - Deploy 80+ open-source web apps with one Docker command -- [blackfish](https://gitlab.com/blackfish/blackfish) - a CoreOS VM to build swarm clusters for Dev & Production by [@blackfish](https://gitlab.com/blackfish/) -- [BosnD](https://gitlab.com/n0r1sk/bosnd) - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments. -- [Centurion](https://github.com/newrelic/centurion) - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [@newrelic](https://github.com/newrelic) -- [Clocker](https://github.com/brooklyncentral/clocker) - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [@brooklyncentral](https://github.com/brooklyncentral) -- [Conduit](https://github.com/ehazlett/conduit) - Experimental deployment system for Docker by [@ehazlett](https://github.com/ehazlett) -- [depcon](https://github.com/ContainX/depcon) - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [@ContainX][containx] -- [deploy](https://github.com/ttiny/deploy) :skull: - Git and Docker deployment tool. A middle ground between simple Docker composition tools and full blown cluster orchestration by [@ttiny](https://github.com/ttiny) -- [dockit](https://github.com/humblec/dockit) :skull: - Do docker actions and Deploy gluster containers! By [@humblec](https://github.com/humblec) -- [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [@Hasura](https://github.com/hasura/). -- [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas) -- [Longshoreman](https://github.com/longshoreman/longshoreman) :skull: - Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By [longshoreman](https://github.com/longshoreman) -- [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. -- [werf](https://github.com/werf/werf) - werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps by [@flant](https://github.com/flant) +- [awesome-stacks](https://github.com/ethibox/awesome-stacks) - Deploy 80+ open-source web apps with one Docker command +- [blackfish](https://gitlab.com/blackfish/blackfish) - a CoreOS VM to build swarm clusters for Dev & Production by [@blackfish](https://gitlab.com/blackfish/) +- [BosnD](https://gitlab.com/n0r1sk/bosnd) - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments. +- [Centurion](https://github.com/newrelic/centurion) - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [@newrelic](https://github.com/newrelic) +- [Clocker](https://github.com/brooklyncentral/clocker) - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [@brooklyncentral](https://github.com/brooklyncentral) +- [Conduit](https://github.com/ehazlett/conduit) - Experimental deployment system for Docker by [@ehazlett](https://github.com/ehazlett) +- [depcon](https://github.com/ContainX/depcon) - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [@ContainX][containx] +- [deploy](https://github.com/ttiny/deploy) :skull: - Git and Docker deployment tool. A middle ground between simple Docker composition tools and full blown cluster orchestration by [@ttiny](https://github.com/ttiny) +- [dockit](https://github.com/humblec/dockit) :skull: - Do docker actions and Deploy gluster containers! By [@humblec](https://github.com/humblec) +- [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [@Hasura](https://github.com/hasura/). +- [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas) +- [Longshoreman](https://github.com/longshoreman/longshoreman) :skull: - Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By [longshoreman](https://github.com/longshoreman) +- [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. +- [werf](https://github.com/werf/werf) - werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps by [@flant](https://github.com/flant) ### Monitoring -- [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. -- [Axibase Collector](https://github.com/axibase/docker-axibase-collector) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. -- [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. Created by [@Google][google] -- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics -- [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically by [@docker-flow][docker-flow] -- [Dockerana](https://github.com/dockerana/dockerana) :skull: - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. -- [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. -- [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by [@stefanprodan](https://github.com/stefanprodan) -- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [@amerkurev](https://github.com/amerkurev) -- [Dozzle](https://github.com/amir20/dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) -- [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands -- [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) -- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] -- [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor by [@vegasbrianc][vegasbrianc] -- [LogJam](https://github.com/gocardless/logjam) - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by [@gocardless](https://github.com/gocardless) -- [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs by [@gliderlabs][gliderlabs] -- [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus] -- [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes by [@Nexclipper](https://github.com/NexClipper) -- [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. -- [SuperVisor CPM](https://t0xic0der.medium.com/simply-accessible-container-performance-monitoring-with-supervisor-7fb47f925f3b) [Frontend Service](https://github.com/t0xic0der/supervisor-frontend-service/) and [Driver Service](https://github.com/t0xic0der/supervisor-driver-service/) :construction: - A simple and accessible FOSS container performance monitoring service written in Python by [@t0xic0der](https://github.com/t0xic0der/) -- [SwarmAlert](https://github.com/gpulido/SwarmAlert) - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. -- [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. -- [Zabbix Docker](https://github.com/gomex/docker-zabbix) - Monitor containers automatically using zabbix LLD feature. +- [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. +- [Axibase Collector](https://github.com/axibase/docker-axibase-collector) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. +- [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. Created by [@Google][google] +- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics +- [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically by [@docker-flow][docker-flow] +- [Dockerana](https://github.com/dockerana/dockerana) :skull: - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. +- [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. +- [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by [@stefanprodan](https://github.com/stefanprodan) +- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [@amerkurev](https://github.com/amerkurev) +- [Dozzle](https://github.com/amir20/dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) +- [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands +- [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) +- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] +- [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor by [@vegasbrianc][vegasbrianc] +- [LogJam](https://github.com/gocardless/logjam) - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by [@gocardless](https://github.com/gocardless) +- [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs by [@gliderlabs][gliderlabs] +- [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus] +- [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes by [@Nexclipper](https://github.com/NexClipper) +- [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. +- [SuperVisor CPM](https://t0xic0der.medium.com/simply-accessible-container-performance-monitoring-with-supervisor-7fb47f925f3b) [Frontend Service](https://github.com/t0xic0der/supervisor-frontend-service/) and [Driver Service](https://github.com/t0xic0der/supervisor-driver-service/) :construction: - A simple and accessible FOSS container performance monitoring service written in Python by [@t0xic0der](https://github.com/t0xic0der/) +- [SwarmAlert](https://github.com/gpulido/SwarmAlert) - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. +- [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. +- [Zabbix Docker](https://github.com/gomex/docker-zabbix) - Monitor containers automatically using zabbix LLD feature. ### Networking -- [Calico-Docker][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. -- [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [@coreos][coreos] -- [Freeflow](https://github.com/Microsoft/Freeflow) - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [@Microsoft](https://github.com/Microsoft) -- [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues by [@nicolaka](https://github.com/nicolaka) -- [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [@jpetazzo][jpetazzo] -- [Weave][weave] (The Docker network) - Weave creates a virtual network that connects Docker containers deployed across multiple hosts. +- [Calico-Docker][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. +- [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [@coreos][coreos] +- [Freeflow](https://github.com/Microsoft/Freeflow) - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [@Microsoft](https://github.com/Microsoft) +- [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues by [@nicolaka](https://github.com/nicolaka) +- [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [@jpetazzo][jpetazzo] +- [Weave][weave] (The Docker network) - Weave creates a virtual network that connects Docker containers deployed across multiple hosts. ### Orchestration -- [athena](https://github.com/athena-oss/athena) - An automation platform with a plugin architecture that allows you to easily create and share services. -- [blimp](https://github.com/tubesandlube/blimp) :skull: - Uses Docker Machine to easily move a container from one Docker host to another, show containers running against all of your hosts, replicate a container across multiple hosts and more by [@defermat](https://github.com/defermat) and [@schvin](https://github.com/schvin) -- [CloudSlang](https://github.com/CloudSlang/cloud-slang) - CloudSlang is a workflow engine to create Docker process automation -- [clusterdock](https://github.com/clusterdock/clusterdock) - Docker container orchestration to enable the testing of long-running cluster deployments -- [Crane](https://github.com/Dataman-Cloud/crane) - Control plane based on docker built-in swarm [@Dataman-Cloud](https://github.com/Dataman-Cloud) -- [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [@docker-flow][docker-flow] -- [gantryd](https://github.com/DevTable/gantryd) :skull: - A framework for easy management of docker-based components across machines by [@DevTable](https://github.com/DevTable) -- [Haven](https://github.com/codeabovelab/haven-platform) - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [@codeabovelab](https://github.com/codeabovelab) -- [Helios](https://github.com/spotify/helios) :skull: - A simple platform for deploying and managing containers across an entire fleet of servers by [@spotify][spotify] -- [Kontena](https://github.com/kontena/kontena) :skull: - The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use. -- [Kubernetes](https://github.com/kubernetes/kubernetes) - Open source orchestration system for Docker containers by Google -- [ManageIQ](https://github.com/ManageIQ/manageiq) - Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ) -- [Mantl](https://github.com/mantl/mantl) - Mantl is a modern platform for rapidly deploying globally distributed services -- [Marathon](https://github.com/mesosphere/marathon) - Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on" -- [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [@apache](https://mesos.apache.org/) -- [Nebula](https://github.com/nebula-orchestrator) - A Docker orchestration tool designed to manage massive scale distributed clusters. -- [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler by [@hashicorp](https://github.com/hashicorp) -- [Panamax](https://github.com/CenturyLinkLabs/panamax-ui) :skull: - An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop by [@CenturyLinkLabs][centurylinklabs]. -- [Rancher](https://github.com/rancher/rancher) - An open source project that provides a complete platform for operating Docker in production by [@rancher][rancher]. -- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [@RedHerdProject](https://github.com/redherd-project). -- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [@crazy-max](crazy-max) +- [athena](https://github.com/athena-oss/athena) - An automation platform with a plugin architecture that allows you to easily create and share services. +- [blimp](https://github.com/tubesandlube/blimp) :skull: - Uses Docker Machine to easily move a container from one Docker host to another, show containers running against all of your hosts, replicate a container across multiple hosts and more by [@defermat](https://github.com/defermat) and [@schvin](https://github.com/schvin) +- [CloudSlang](https://github.com/CloudSlang/cloud-slang) - CloudSlang is a workflow engine to create Docker process automation +- [clusterdock](https://github.com/clusterdock/clusterdock) - Docker container orchestration to enable the testing of long-running cluster deployments +- [Crane](https://github.com/Dataman-Cloud/crane) - Control plane based on docker built-in swarm [@Dataman-Cloud](https://github.com/Dataman-Cloud) +- [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [@docker-flow][docker-flow] +- [gantryd](https://github.com/DevTable/gantryd) :skull: - A framework for easy management of docker-based components across machines by [@DevTable](https://github.com/DevTable) +- [Haven](https://github.com/codeabovelab/haven-platform) - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [@codeabovelab](https://github.com/codeabovelab) +- [Helios](https://github.com/spotify/helios) :skull: - A simple platform for deploying and managing containers across an entire fleet of servers by [@spotify][spotify] +- [Kontena](https://github.com/kontena/kontena) :skull: - The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use. +- [Kubernetes](https://github.com/kubernetes/kubernetes) - Open source orchestration system for Docker containers by Google +- [ManageIQ](https://github.com/ManageIQ/manageiq) - Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ) +- [Mantl](https://github.com/mantl/mantl) - Mantl is a modern platform for rapidly deploying globally distributed services +- [Marathon](https://github.com/mesosphere/marathon) - Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on" +- [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [@apache](https://mesos.apache.org/) +- [Nebula](https://github.com/nebula-orchestrator) - A Docker orchestration tool designed to manage massive scale distributed clusters. +- [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler by [@hashicorp](https://github.com/hashicorp) +- [Panamax](https://github.com/CenturyLinkLabs/panamax-ui) :skull: - An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop by [@CenturyLinkLabs][centurylinklabs]. +- [Rancher](https://github.com/rancher/rancher) - An open source project that provides a complete platform for operating Docker in production by [@rancher][rancher]. +- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [@RedHerdProject](https://github.com/redherd-project). +- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [@crazy-max](crazy-max) ### PaaS -- [Atlantis](https://github.com/ooyala/atlantis) :skull: - Atlantis is an Open Source PaaS for HTTP applications built on Docker and written in Go -- [caprover](https://github.com/caprover/caprover) - [previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids -- [Convox Rack](https://github.com/convox/rack) - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. -- [Dcw](https://github.com/pbertera/dcw) - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels. -- [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [@progrium][progrium]) -- [Empire](https://github.com/remind101/empire) - A PaaS built on top of Amazon EC2 Container Service (ECS) -- [Exoframe](https://github.com/exoframejs/exoframe) - A self-hosted tool that allows simple one-command deployments using Docker -- [Flynn](https://github.com/flynn/flynn) - A next generation open source platform as a service -- [Hephy Workflow](https://github.com/teamhephy/workflow) - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow) -- [Krane](https://github.com/krane/krane) - Toolset for managing container workloads on remote servers -- [Nanobox](https://github.com/nanobox-io/nanobox) :heavy_dollar_sign: - An application development platform that creates local environments that can then be deployed and scaled in the cloud. -- [OpenShift][openshift] - An open source PaaS built on [Kubernetes][kubernetes] and optimized for Dockerized app development and deployment by [Red Hat](https://www.redhat.com/en) -- [Tsuru](https://github.com/tsuru/tsuru) - Tsuru is an extensible and open source Platform as a Service software +- [Atlantis](https://github.com/ooyala/atlantis) :skull: - Atlantis is an Open Source PaaS for HTTP applications built on Docker and written in Go +- [caprover](https://github.com/caprover/caprover) - [previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids +- [Convox Rack](https://github.com/convox/rack) - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. +- [Dcw](https://github.com/pbertera/dcw) - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels. +- [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [@progrium][progrium]) +- [Empire](https://github.com/remind101/empire) - A PaaS built on top of Amazon EC2 Container Service (ECS) +- [Exoframe](https://github.com/exoframejs/exoframe) - A self-hosted tool that allows simple one-command deployments using Docker +- [Flynn](https://github.com/flynn/flynn) - A next generation open source platform as a service +- [Hephy Workflow](https://github.com/teamhephy/workflow) - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow) +- [Krane](https://github.com/krane/krane) - Toolset for managing container workloads on remote servers +- [Nanobox](https://github.com/nanobox-io/nanobox) :heavy_dollar_sign: - An application development platform that creates local environments that can then be deployed and scaled in the cloud. +- [OpenShift][openshift] - An open source PaaS built on [Kubernetes][kubernetes] and optimized for Dockerized app development and deployment by [Red Hat](https://www.redhat.com/en) +- [Tsuru](https://github.com/tsuru/tsuru) - Tsuru is an extensible and open source Platform as a Service software ### Reverse Proxy -- [bunkerized-nginx](https://github.com/bunkerity/bunkerized-nginx) - Web app hosting and reverse proxy secure by default. By [@bunkerity](https://github.com/bunkerity) -- [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. -- [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [@docker-flow][docker-flow] -- [docker-proxy](https://github.com/silarsis/docker-proxy) :skull: - Transparent proxy for docker containers, run in a docker container. By [@silarsis](https://github.com/silarsis) -- [fabio](https://github.com/fabiolb/fabio) - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [@magiconair](https://github.com/magiconair) (Frank Schroeder) -- [h2o-proxy](https://github.com/zchee/h2o-proxy) :skull: - Automated H2O reverse proxy for Docker containers. An alternative to [jwilder/nginx-proxy][nginxproxy] by [@zchee](https://github.com/zchee) -- [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [@JrCs](https://github.com/JrCs) -- [muguet](https://github.com/mattallty/muguet) :skull: - DNS Server & Reverse proxy for Docker environments. By [@mattallty](https://github.com/mattallty) -- [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [@jc21](https://github.com/jc21) -- [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [@jwilder][jwilder] -- [Swarm Ingress Router](https://github.com/tpbowden/swarm-ingress-router) :skull: - Route DNS names to Swarm services based on labels. By [@tpbowden](https://github.com/tpbowden/) -- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [@flavioaiello](https://github.com/flavioaiello) -- [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [@EmileVauge](https://github.com/emilevauge) +- [bunkerized-nginx](https://github.com/bunkerity/bunkerized-nginx) - Web app hosting and reverse proxy secure by default. By [@bunkerity](https://github.com/bunkerity) +- [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. +- [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [@docker-flow][docker-flow] +- [docker-proxy](https://github.com/silarsis/docker-proxy) :skull: - Transparent proxy for docker containers, run in a docker container. By [@silarsis](https://github.com/silarsis) +- [fabio](https://github.com/fabiolb/fabio) - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [@magiconair](https://github.com/magiconair) (Frank Schroeder) +- [h2o-proxy](https://github.com/zchee/h2o-proxy) :skull: - Automated H2O reverse proxy for Docker containers. An alternative to [jwilder/nginx-proxy][nginxproxy] by [@zchee](https://github.com/zchee) +- [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [@JrCs](https://github.com/JrCs) +- [muguet](https://github.com/mattallty/muguet) :skull: - DNS Server & Reverse proxy for Docker environments. By [@mattallty](https://github.com/mattallty) +- [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [@jc21](https://github.com/jc21) +- [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [@jwilder][jwilder] +- [Swarm Ingress Router](https://github.com/tpbowden/swarm-ingress-router) :skull: - Route DNS names to Swarm services based on labels. By [@tpbowden](https://github.com/tpbowden/) +- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [@flavioaiello](https://github.com/flavioaiello) +- [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [@EmileVauge](https://github.com/emilevauge) ### Runtime -- [aind](https://github.com/aind-containers/aind) - AinD launches Android apps in Docker, by nesting Anbox containers inside Docker by [@aind-containers](https://github.com/aind-containers) -- [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o) -- [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers -- [podman](https://github.com/containers/libpod) - libpod is a library used to create container pods. Home of Podman by [@containers][containers] -- [rlxc](https://github.com/brauner/rlxc) - LXC binary written in Rust by [@brauner](https://github.com/brauner) -- [runtime-tools](https://github.com/opencontainers/runtime-tools) - oci-runtime-tool is a collection of tools for working with the OCI runtime specification by [@opencontainers](https://github.com/opencontainers) +- [aind](https://github.com/aind-containers/aind) - AinD launches Android apps in Docker, by nesting Anbox containers inside Docker by [@aind-containers](https://github.com/aind-containers) +- [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o) +- [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers +- [podman](https://github.com/containers/libpod) - libpod is a library used to create container pods. Home of Podman by [@containers][containers] +- [rlxc](https://github.com/brauner/rlxc) - LXC binary written in Rust by [@brauner](https://github.com/brauner) +- [runtime-tools](https://github.com/opencontainers/runtime-tools) - oci-runtime-tool is a collection of tools for working with the OCI runtime specification by [@opencontainers](https://github.com/opencontainers) ### Security -- [Anchor Engine](https://github.com/anchore/anchore) - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore) -- [Aqua Security](https://www.aquasec.com) :heavy_dollar_sign: - Securing container-based applications from Dev to Production on any platform -- [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers by [@genuinetools][genuinetools] -- [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [@dev-sec](https://github.com/dev-sec) -- [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [@coreos][coreos] -- [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [@eliasgranderubio](https://github.com/eliasgranderubio) -- [Deepfence Enterprise](https://deepfence.io) :heavy_dollar_sign: - Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [@deepfence](deepfence) -- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [@deepfence](deepfence) -- [docker-bench-security](https://github.com/docker/docker-bench-security) - script that checks for dozens of common best-practices around deploying Docker containers in production. By [@docker][docker] -- [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions by [@Google][google] -- [docker-lock](https://github.com/safe-waters/docker-lock) - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By [@safe-waters][safe-waters] -- [KICS](https://github.com/checkmarx/kics) - an infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx) -- [notary](https://github.com/theupdateframework/notary) - a server and a client for running and interacting with trusted collections. By [@TUF](https://github.com/theupdateframework) -- [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP) -- [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) :heavy_dollar_sign: - (previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. -- [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. -- [Sysdig Secure](https://sysdig.com/products/secure/runtime-security/) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. -- [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) :heavy_dollar_sign: - Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. -- [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). +- [Anchor Engine](https://github.com/anchore/anchore) - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore) +- [Aqua Security](https://www.aquasec.com) :heavy_dollar_sign: - Securing container-based applications from Dev to Production on any platform +- [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers by [@genuinetools][genuinetools] +- [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [@dev-sec](https://github.com/dev-sec) +- [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [@coreos][coreos] +- [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [@eliasgranderubio](https://github.com/eliasgranderubio) +- [Deepfence Enterprise](https://deepfence.io) :heavy_dollar_sign: - Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [@deepfence](deepfence) +- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [@deepfence](deepfence) +- [docker-bench-security](https://github.com/docker/docker-bench-security) - script that checks for dozens of common best-practices around deploying Docker containers in production. By [@docker][docker] +- [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions by [@Google][google] +- [docker-lock](https://github.com/safe-waters/docker-lock) - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By [@safe-waters][safe-waters] +- [KICS](https://github.com/checkmarx/kics) - an infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx) +- [notary](https://github.com/theupdateframework/notary) - a server and a client for running and interacting with trusted collections. By [@TUF](https://github.com/theupdateframework) +- [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP) +- [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) :heavy_dollar_sign: - (previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. +- [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. +- [Sysdig Secure](https://sysdig.com/products/secure/runtime-security/) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. +- [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) :heavy_dollar_sign: - Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. +- [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). ### Service Discovery -- [docker-consul](https://github.com/gliderlabs/docker-consul) by [@progrium][progrium] -- [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [@etcd-io](https://github.com/etcd-io) (former part of CoreOS) -- [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices by [@IstioMesh](istio) -- [proxy](https://github.com/factorish/proxy) :skull: - lightweight nginx based load balancer self using service discovery provided by registrator. by [@factorish](https://github.com/factorish) -- [registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker by [@gliderlabs][gliderlabs] and [@progrium][progrium] +- [docker-consul](https://github.com/gliderlabs/docker-consul) by [@progrium][progrium] +- [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [@etcd-io](https://github.com/etcd-io) (former part of CoreOS) +- [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices by [@IstioMesh](istio) +- [proxy](https://github.com/factorish/proxy) :skull: - lightweight nginx based load balancer self using service discovery provided by registrator. by [@factorish](https://github.com/factorish) +- [registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker by [@gliderlabs][gliderlabs] and [@progrium][progrium] ### Volume Management / Data -- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [@blockbridge](https://github.com/blockbridge) -- [Convoy](https://github.com/rancher/convoy) - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher] -- [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) Activates NFS for an existing boot2docker box created through Docker Machine on OS X. -- [Docker Unison](https://github.com/leighmcculloch/docker-unison) A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch) -- [Local Persist](https://github.com/MatchbookLab/local-persist) Specify a mountpoint for your local volumes (created via `docker volume create`) so that files will always persist and so you can mount to different directories in different containers. -- [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers -- [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [@ContainX][containx] -- [portworx](https://portworx.com) :heavy_dollar_sign: - Decentralized storage solution for persistent, shared and replicated volumes. -- [quobyte](https://www.quobyte.com/) :heavy_dollar_sign: - fully fault-tolerant distributed file system with a docker volume driver -- [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By[@thecodeteam](https://github.com/thecodeteam) (DELL Technologies) -- [Storidge](https://github.com/Storidge/quick-start) :heavy_dollar_sign: - Software-defined Persistent Storage for Kubernetes and Docker Swarm +- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [@blockbridge](https://github.com/blockbridge) +- [Convoy](https://github.com/rancher/convoy) - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher] +- [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) Activates NFS for an existing boot2docker box created through Docker Machine on OS X. +- [Docker Unison](https://github.com/leighmcculloch/docker-unison) A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch) +- [Local Persist](https://github.com/MatchbookLab/local-persist) Specify a mountpoint for your local volumes (created via `docker volume create`) so that files will always persist and so you can mount to different directories in different containers. +- [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers +- [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [@ContainX][containx] +- [portworx](https://portworx.com) :heavy_dollar_sign: - Decentralized storage solution for persistent, shared and replicated volumes. +- [quobyte](https://www.quobyte.com/) :heavy_dollar_sign: - fully fault-tolerant distributed file system with a docker volume driver +- [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By[@thecodeteam](https://github.com/thecodeteam) (DELL Technologies) +- [Storidge](https://github.com/Storidge/quick-start) :heavy_dollar_sign: - Software-defined Persistent Storage for Kubernetes and Docker Swarm ### User Interface #### IDE integrations -- JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) -- Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) -- [docker.vim](https://github.com/skanehira/docker.vim) - Manage docker containers and images in Vim. By [@skanehira] -- [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [@Silex](https://github.com/Silex) +- JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) +- Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) +- [docker.vim](https://github.com/skanehira/docker.vim) - Manage docker containers and images in Vim. By [@skanehira] +- [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [@Silex](https://github.com/Silex) #### Desktop Native desktop applications for managing and montoring docker hosts and clusters -- [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS -- [Dockeron](https://github.com/dockeron/dockeron) - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) -- [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station) -- [Lifeboat](https://github.com/jplhomer/lifeboat) - An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer) -- [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - built on Electron. By [@felixgborrego](https://github.com/felixgborrego/) -- [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [@slonopotamus](https://github.com/slonopotamus) +- [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS +- [Dockeron](https://github.com/dockeron/dockeron) - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) +- [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station) +- [Lifeboat](https://github.com/jplhomer/lifeboat) - An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer) +- [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - built on Electron. By [@felixgborrego](https://github.com/felixgborrego/) +- [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [@slonopotamus](https://github.com/slonopotamus) #### Terminal ##### Terminal UI -- [ctop (1)](https://github.com/yadutaf/ctop) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python) by [@yadutaf](https://github.com/yadutaf) -- [ctop (2)](https://github.com/bcicen/ctop) - Top-like interface for container metrics (Golang) by [@bcicen](https://github.com/bcicen/) -- [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). -- [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [@byrnedo] -- [Docker-mon](https://github.com/icecrime/docker-mon) :skull: - Console-based Docker monitoring by [@icecrime](https://github.com/icecrime) -- [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers by [@lirantal](https://github.com/lirantal) -- [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters) -- [docui](https://github.com/skanehira/docui) - An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira] -- [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) -- [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) -- [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine, by [@TomasTomecek][tomastomecek] +- [ctop (1)](https://github.com/yadutaf/ctop) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python) by [@yadutaf](https://github.com/yadutaf) +- [ctop (2)](https://github.com/bcicen/ctop) - Top-like interface for container metrics (Golang) by [@bcicen](https://github.com/bcicen/) +- [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). +- [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [@byrnedo] +- [Docker-mon](https://github.com/icecrime/docker-mon) :skull: - Console-based Docker monitoring by [@icecrime](https://github.com/icecrime) +- [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers by [@lirantal](https://github.com/lirantal) +- [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters) +- [docui](https://github.com/skanehira/docui) - An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira] +- [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) +- [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) +- [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine, by [@TomasTomecek][tomastomecek] ##### CLI tools -- [captain](https://github.com/jenssegers/captain) - Easily start and stop docker compose projects from any directory. By [@jenssegers](https://github.com/jenssegers) -- [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [@Falldog](https://github.com/Falldog) -- [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries by [@mayflower](https://github.com/mayflower) -- [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck) -- [dockersql](https://github.com/crosbymichael/dockersql) - A command line interface to query Docker using SQL by [@crosbymichael](https://github.com/crosbymichael) -- [DVM](https://github.com/howtowhale/dvm) - Docker version manager by [@howtowhale](https://github.com/howtowhale) -- [goinside](https://github.com/iamsoorena/goinside) - Get inside a running docker container easily. by [@iamsoorena](https://github.com/iamsoorena) -- [ns-enter](https://github.com/jpetazzo/nsenter) - :skull: no more ssh, enter name spaces of container by [@jpetazzo][jpetazzo] -- [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects by [@g31s](g31s) -- [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. by [@shiwaforce](https://github.com/shiwaforce) -- [reg](https://github.com/genuinetools/reg) - Docker registry v2 command line client by [@genuinetools][genuinetools] -- [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments, by [@JonathonReinhart](https://github.com/JonathonReinhart) -- [skopeo](https://github.com/containers/skopeo) - Work with remote images registries - retrieving information, images, signing content by [@containers][containers] -- [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [@segersniels](https://github.com/segersniels) -- [tsaotun](https://github.com/qazbnm456/tsaotun) - Python based Assistance for Docker by [@qazbnm456](https://github.com/qazbnm456) -- [wharfee](https://github.com/j-bennet/wharfee) - Autocompletion and syntax highlighting for Docker commands. by [@j-bennet](https://github.com/j-bennet) +- [captain](https://github.com/jenssegers/captain) - Easily start and stop docker compose projects from any directory. By [@jenssegers](https://github.com/jenssegers) +- [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [@Falldog](https://github.com/Falldog) +- [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries by [@mayflower](https://github.com/mayflower) +- [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck) +- [dockersql](https://github.com/crosbymichael/dockersql) - A command line interface to query Docker using SQL by [@crosbymichael](https://github.com/crosbymichael) +- [DVM](https://github.com/howtowhale/dvm) - Docker version manager by [@howtowhale](https://github.com/howtowhale) +- [goinside](https://github.com/iamsoorena/goinside) - Get inside a running docker container easily. by [@iamsoorena](https://github.com/iamsoorena) +- [ns-enter](https://github.com/jpetazzo/nsenter) - :skull: no more ssh, enter name spaces of container by [@jpetazzo][jpetazzo] +- [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects by [@g31s](g31s) +- [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. by [@shiwaforce](https://github.com/shiwaforce) +- [reg](https://github.com/genuinetools/reg) - Docker registry v2 command line client by [@genuinetools][genuinetools] +- [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments, by [@JonathonReinhart](https://github.com/JonathonReinhart) +- [skopeo](https://github.com/containers/skopeo) - Work with remote images registries - retrieving information, images, signing content by [@containers][containers] +- [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [@segersniels](https://github.com/segersniels) +- [tsaotun](https://github.com/qazbnm456/tsaotun) - Python based Assistance for Docker by [@qazbnm456](https://github.com/qazbnm456) +- [wharfee](https://github.com/j-bennet/wharfee) - Autocompletion and syntax highlighting for Docker commands. by [@j-bennet](https://github.com/j-bennet) ##### Other -- [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) - Search the Docker Registry with the Dext smart launcher. By [@vutran](https://github.com/vutran) -- [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) - SSH Server for Docker containers ~ Because every container should be accessible. By [@jeroenpeeters](https://github.com/jeroenpeeters) -- [dockercraft](https://github.com/docker/dockercraft) - Docker + Minecraft = Dockercraft by [@docker][docker] -- [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [@spotify][spotify] -- [MultiDocker](https://github.com/marty90/multidocker) - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. -- [Powerline-Docker](https://github.com/adrianmo/powerline-docker) - A Powerline segment for showing the status of Docker containers by [@adrianmo](https://github.com/adrianmo) +- [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) - Search the Docker Registry with the Dext smart launcher. By [@vutran](https://github.com/vutran) +- [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) - SSH Server for Docker containers ~ Because every container should be accessible. By [@jeroenpeeters](https://github.com/jeroenpeeters) +- [dockercraft](https://github.com/docker/dockercraft) - Docker + Minecraft = Dockercraft by [@docker][docker] +- [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [@spotify][spotify] +- [MultiDocker](https://github.com/marty90/multidocker) - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. +- [Powerline-Docker](https://github.com/adrianmo/powerline-docker) - A Powerline segment for showing the status of Docker containers by [@adrianmo](https://github.com/adrianmo) #### Web -- [Admiral](https://github.com/vmware/admiral) Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By [VMWare] -- [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers, by [@knrdl](https://github.com/knrdl) -- [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [@wrfly](https://github.com/wrfly) -- [Docker Compose UI](https://github.com/francescou/docker-compose-ui) - Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI -- [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2 by [@klausmeyer](https://github.com/klausmeyer) -- [Docker Registry UI (Joxit)](https://github.com/Joxit/docker-registry-ui) - The simplest and cleanest UI for private registries by [@Joxit](https://github.com/Joxit) -- [Docker Registry UI](https://github.com/atcol/docker-registry-ui) - A web UI for easy private/local Docker Registry integration by [@atcol](https://github.com/atcol) -- [docker-registry-web](https://github.com/mkuchin/docker-registry-web) - Web UI, authentication service and event recorder for private docker registry v2 by [@mkuchin](https://github.com/mkuchin) -- [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). -- [dockering-on-rails](https://github.com/Electrofenster/dockerding-on-rails) :skull: - Simple Web-Interface for Docker with a lot of features by [@Electrofenster](https://github.com/Electrofenster/) -- [DockerSurfer](https://github.com/Simone-Erba/DockerSurfer) :skull: - A web service for analyze and browse dependencies between Docker images in the Docker registry, by [@Simone-Erba](https://github.com/Simone-Erba/) -- [Kubevious](https://github.com/kubevious/kubevious) - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way by [@rubenhak](https://github.com/rubenhak). -- [netdata](https://github.com/netdata/netdata) - Real-time performance monitoring -- [OctoLinker](https://github.com/OctoLinker/OctoLinker) - A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. -- [Portainer](https://github.com/portainer/portainer) - A lightweight management UI for managing your Docker hosts or Docker Swarm clusters by [@portainer](https://github.com/portainer) -- [Rapid Dashboard](https://github.com/ozlerhakan/rapid) - A simple query dashboard to use Docker Remote API by [@ozlerhakan](https://github.com/ozlerhakan/) -- [Seagull](https://github.com/tobegit3hub/seagull) - Friendly Web UI to monitor docker daemon. by [@tobegit3hub](https://github.com/tobegit3hub) -- [Swarmpit](https://github.com/swarmpit/swarmpit) - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. -- [Swirl](https://github.com/cuigh/swirl) - Swirl is a web management tool for Docker, focused on swarm cluster By [@cuigh](https://github.com/cuigh/) -- [Theia](https://github.com/eclipse-theia/theia) - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. -- [Yacht](https://github.com/SelfhostedPro/Yacht) :construction: - A Web UI for docker that focuses on templates and ease of use in order to make deployments as easy as possible. By [@SelfhostedPro](https://github.com/SelfhostedPro) +- [Admiral](https://github.com/vmware/admiral) Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By [VMWare][vmware] +- [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers, by [@knrdl](https://github.com/knrdl) +- [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [@wrfly](https://github.com/wrfly) +- [Docker Compose UI](https://github.com/francescou/docker-compose-ui) - Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI +- [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2 by [@klausmeyer](https://github.com/klausmeyer) +- [Docker Registry UI (Joxit)](https://github.com/Joxit/docker-registry-ui) - The simplest and cleanest UI for private registries by [@Joxit](https://github.com/Joxit) +- [Docker Registry UI](https://github.com/atcol/docker-registry-ui) - A web UI for easy private/local Docker Registry integration by [@atcol](https://github.com/atcol) +- [docker-registry-web](https://github.com/mkuchin/docker-registry-web) - Web UI, authentication service and event recorder for private docker registry v2 by [@mkuchin](https://github.com/mkuchin) +- [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). +- [dockering-on-rails](https://github.com/Electrofenster/dockerding-on-rails) :skull: - Simple Web-Interface for Docker with a lot of features by [@Electrofenster](https://github.com/Electrofenster/) +- [DockerSurfer](https://github.com/Simone-Erba/DockerSurfer) :skull: - A web service for analyze and browse dependencies between Docker images in the Docker registry, by [@Simone-Erba](https://github.com/Simone-Erba/) +- [Kubevious](https://github.com/kubevious/kubevious) - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way by [@rubenhak](https://github.com/rubenhak). +- [netdata](https://github.com/netdata/netdata) - Real-time performance monitoring +- [OctoLinker](https://github.com/OctoLinker/OctoLinker) - A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. +- [Portainer](https://github.com/portainer/portainer) - A lightweight management UI for managing your Docker hosts or Docker Swarm clusters by [@portainer](https://github.com/portainer) +- [Rapid Dashboard](https://github.com/ozlerhakan/rapid) - A simple query dashboard to use Docker Remote API by [@ozlerhakan](https://github.com/ozlerhakan/) +- [Seagull](https://github.com/tobegit3hub/seagull) - Friendly Web UI to monitor docker daemon. by [@tobegit3hub](https://github.com/tobegit3hub) +- [Swarmpit](https://github.com/swarmpit/swarmpit) - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. +- [Swirl](https://github.com/cuigh/swirl) - Swirl is a web management tool for Docker, focused on swarm cluster By [@cuigh](https://github.com/cuigh/) +- [Theia](https://github.com/eclipse-theia/theia) - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. +- [Yacht](https://github.com/SelfhostedPro/Yacht) :construction: - A Web UI for docker that focuses on templates and ease of use in order to make deployments as easy as possible. By [@SelfhostedPro](https://github.com/SelfhostedPro) ## Docker Images @@ -434,402 +432,400 @@ Native desktop applications for managing and montoring docker hosts and clusters Tools and applications that are either installed inside containers or designed to be run as a [sidecar](https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar) -- [amicontained](https://github.com/genuinetools/amicontained) - Container introspection tool. Find out what container runtime is being used as well as features available by [@genuinetools][genuinetools] -- [autodock](https://github.com/prologic/autodock) - Daemon for Docker Automation by [@prologic](https://github.com/prologic) -- [Chaperone](https://github.com/garywiz/chaperone) - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. by [@garywiz](https://github.com/garywiz) -- [ckron](https://github.com/nicomt/ckron) - A cron-style job scheduler for docker, by [@nicomt](https://github.com/nicomt) -- [CoreOS][coreos] - Linux for Massive Server Deployments -- [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system, by [@GoogleContainerTools][googlecontainertools] -- [docker-alpine](https://github.com/gliderlabs/docker-alpine) - A super small Docker base image _(5MB)_ using Alpine Linux by [@gliderlabs][gliderlabs] -- [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data by [@jwilder][jwilder] -- [dockerize](https://github.com/jwilder/dockerize) - Utility to simplify running applications in docker containers by [@jwilder][jwilder] -- [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool) by [@tianon](https://github.com/tianon) -- [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container by [@sindresorhus][sindresorhus] -- [lstags](https://github.com/ivanilves/lstags) - sync Docker images across registries by [@ivanilves](https://github.com/ivanilves) -- [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - The NVIDIA Container Runtime for Docker by [@NVIDIA][nvidia] -- [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa) -- [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][Akito] -- [supercronic](https://github.com/aptible/supercronic) - crontab-compatible job runner, designed specifically to run in containers by [@aptible](https://github.com/aptible/) -- [TrivialRC](https://github.com/vorakl/TrivialRC) - A minimalistic Runtime Configuration system and process manager for containers [@vorakl](https://github.com/vorakl) +- [amicontained](https://github.com/genuinetools/amicontained) - Container introspection tool. Find out what container runtime is being used as well as features available by [@genuinetools][genuinetools] +- [autodock](https://github.com/prologic/autodock) - Daemon for Docker Automation by [@prologic](https://github.com/prologic) +- [Chaperone](https://github.com/garywiz/chaperone) - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. by [@garywiz](https://github.com/garywiz) +- [ckron](https://github.com/nicomt/ckron) - A cron-style job scheduler for docker, by [@nicomt](https://github.com/nicomt) +- [CoreOS][coreos] - Linux for Massive Server Deployments +- [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system, by [@GoogleContainerTools][googlecontainertools] +- [docker-alpine](https://github.com/gliderlabs/docker-alpine) - A super small Docker base image _(5MB)_ using Alpine Linux by [@gliderlabs][gliderlabs] +- [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data by [@jwilder][jwilder] +- [dockerize](https://github.com/jwilder/dockerize) - Utility to simplify running applications in docker containers by [@jwilder][jwilder] +- [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool) by [@tianon](https://github.com/tianon) +- [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container by [@sindresorhus][sindresorhus] +- [lstags](https://github.com/ivanilves/lstags) - sync Docker images across registries by [@ivanilves](https://github.com/ivanilves) +- [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - The NVIDIA Container Runtime for Docker by [@NVIDIA][nvidia] +- [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa) +- [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito] +- [supercronic](https://github.com/aptible/supercronic) - crontab-compatible job runner, designed specifically to run in containers by [@aptible](https://github.com/aptible/) +- [TrivialRC](https://github.com/vorakl/TrivialRC) - A minimalistic Runtime Configuration system and process manager for containers [@vorakl](https://github.com/vorakl) ### Builder Applications designed to help or simplify building **new** images -- [ansible-bender](https://github.com/ansible-community/ansible-bender) - A tool utilising `ansible` and `buildah` by [@TomasTomecek][tomastomecek] -- [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images by [@containers][containers] -- [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit by [@moby project](https://github.com/moby) -- [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines by [@cekit](https://github.com/cekit). -- [container-diff](https://github.com/GoogleContainerTools/container-diff) - An image tool for comparing and analyzing container images by [@GoogleContainerTools][googlecontainertools] -- [container-factory](https://github.com/mutable/container-factory) - Produces Docker images from tarballs of application source code by [@mutable](https://github.com/mutable) -- [copy-docker-image](https://github.com/mdlavin/copy-docker-image) - Copy a Docker image between registries without a full Docker installation by [@mdlavin](https://github.com/mdlavin) -- [Derrick](https://github.com/alibaba/derrick) - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [@alibaba](https://github.com/alibaba). -- [dlayer](https://github.com/orisano/dlayer) - docker layer analyzer by [@orisano](https://github.com/orisano) -- [docker-companion](https://github.com/mudler/docker-companion) - A command line tool written in Golang to squash and unpack docker images by [@mudler](https://github.com/mudler/) -- [docker-make](https://github.com/CtripCloud/docker-make) - Build, tag,and push a bunch of related docker images via a single command. -- [docker-replay](https://github.com/bcicen/docker-replay) - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen) -- [DockerMake](https://github.com/avirshup/DockerMake) - A reproducible Docker image build system for complex software stacks. By [@avirshup](https://github.com/avirshup) -- [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. -- [Dockly](https://github.com/swipely/dockly) - Dockly is a gem made to ease the pain of packaging an application in Docker by [@swipely](https://github.com/swipely/) -- [dockramp](https://github.com/jlhawn/dockramp) :skull: - Proof of Concept: A Client Driven Docker Image Builder by [@jlhawn](https://github.com/jlhawn) -- [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [@jamesbrink](https://github.com/jamesbrink) -- [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components by [@NVIDIA][nvidia] -- [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder by [@genuinetools][genuinetools] -- [kaniko](https://github.com/GoogleContainerTools/kaniko) - Build Container Images In Kubernetes. By [@GoogleContainerTools][googlecontainertools] -- [makisu](https://github.com/uber/makisu) - Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber) -- [packer](https://www.packer.io/plugins/builders/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible -- [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images by [@duedil-ltd](https://github.com/duedil-ltd) -- [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. -- [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi) -- [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers by [@lavie](https://github.com/lavie) -- [SkinnyWhale](https://github.com/djosephsen/skinnywhale) :skull: - Skinnywhale helps you make smaller (as in megabytes) Docker containers. -- [Smith](https://github.com/oracle/smith) - A Micocontainer Builder and can perform multi-stage builds after the image is built [Oracle][oracle] -- [userdef](https://github.com/theAkito/userdef) - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][Akito] -- [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles by [@P3GLEG](https://github.com/P3GLEG/). -- [Whales](https://github.com/Gueils/whales) - A tool to automatically dockerize your applications by [@icalialabs](https://github.com/IcaliaLabs). +- [ansible-bender](https://github.com/ansible-community/ansible-bender) - A tool utilising `ansible` and `buildah` by [@TomasTomecek][tomastomecek] +- [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images by [@containers][containers] +- [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit by [@moby project](https://github.com/moby) +- [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines by [@cekit](https://github.com/cekit). +- [container-diff](https://github.com/GoogleContainerTools/container-diff) - An image tool for comparing and analyzing container images by [@GoogleContainerTools][googlecontainertools] +- [container-factory](https://github.com/mutable/container-factory) - Produces Docker images from tarballs of application source code by [@mutable](https://github.com/mutable) +- [copy-docker-image](https://github.com/mdlavin/copy-docker-image) - Copy a Docker image between registries without a full Docker installation by [@mdlavin](https://github.com/mdlavin) +- [Derrick](https://github.com/alibaba/derrick) - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [@alibaba](https://github.com/alibaba). +- [dlayer](https://github.com/orisano/dlayer) - docker layer analyzer by [@orisano](https://github.com/orisano) +- [docker-companion](https://github.com/mudler/docker-companion) - A command line tool written in Golang to squash and unpack docker images by [@mudler](https://github.com/mudler/) +- [docker-make](https://github.com/CtripCloud/docker-make) - Build, tag,and push a bunch of related docker images via a single command. +- [docker-replay](https://github.com/bcicen/docker-replay) - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen) +- [DockerMake](https://github.com/avirshup/DockerMake) - A reproducible Docker image build system for complex software stacks. By [@avirshup](https://github.com/avirshup) +- [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. +- [Dockly](https://github.com/swipely/dockly) - Dockly is a gem made to ease the pain of packaging an application in Docker by [@swipely](https://github.com/swipely/) +- [dockramp](https://github.com/jlhawn/dockramp) :skull: - Proof of Concept: A Client Driven Docker Image Builder by [@jlhawn](https://github.com/jlhawn) +- [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [@jamesbrink](https://github.com/jamesbrink) +- [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components by [@NVIDIA][nvidia] +- [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder by [@genuinetools][genuinetools] +- [kaniko](https://github.com/GoogleContainerTools/kaniko) - Build Container Images In Kubernetes. By [@GoogleContainerTools][googlecontainertools] +- [makisu](https://github.com/uber/makisu) - Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber) +- [packer](https://www.packer.io/plugins/builders/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible +- [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images by [@duedil-ltd](https://github.com/duedil-ltd) +- [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. +- [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi) +- [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers by [@lavie](https://github.com/lavie) +- [SkinnyWhale](https://github.com/djosephsen/skinnywhale) :skull: - Skinnywhale helps you make smaller (as in megabytes) Docker containers. +- [Smith](https://github.com/oracle/smith) - A Micocontainer Builder and can perform multi-stage builds after the image is built [Oracle][oracle] +- [userdef](https://github.com/theAkito/userdef) - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito] +- [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles by [@P3GLEG](https://github.com/P3GLEG/). +- [Whales](https://github.com/Gueils/whales) - A tool to automatically dockerize your applications by [@icalialabs](https://github.com/IcaliaLabs). ### Dockerfile -- [chaperone-docker](https://github.com/garywiz/chaperone-docker) - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. -- [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. -- [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. -- [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [@PatrickHoefler](https://github.com/patrickhoefler) -- [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. Maintained by [@CollageLabs](https://github.com/CollageLabs). -- [dockmoor](https://github.com/MeneDev/dockmoor) :construction: - Manage docker image references and help to create reproducible builds with Docker. By [@MeneDev](https://github.com/MeneDev) -- [Vektorcloud](https://github.com/vektorcloud) - A collection of minimal, Alpine-based Docker images +- [chaperone-docker](https://github.com/garywiz/chaperone-docker) - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. +- [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. +- [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. +- [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [@PatrickHoefler](https://github.com/patrickhoefler) +- [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. Maintained by [@CollageLabs](https://github.com/CollageLabs). +- [dockmoor](https://github.com/MeneDev/dockmoor) :construction: - Manage docker image references and help to create reproducible builds with Docker. By [@MeneDev](https://github.com/MeneDev) +- [Vektorcloud](https://github.com/vektorcloud) - A collection of minimal, Alpine-based Docker images Examples by: -- [@arun-gupta](https://github.com/arun-gupta/docker-images) -- [@awesome-startup](https://github.com/awesome-startup/docker-compose) -- [@crosbymichael](https://github.com/crosbymichael/Dockerfiles) -- [@jessfraz](https://github.com/jessfraz/dockerfiles) -- [@komljen](https://github.com/komljen/dockerfile-examples) -- [@kstaken](https://github.com/kstaken/dockerfile-examples) -- [@ondrejmo](https://github.com/ondrejmo/Dockerfiles) -- [@pandrew](https://gitlab.com/pandrew/dockerfiles) -- [@vimagick](https://github.com/vimagick/dockerfiles) +- [@arun-gupta](https://github.com/arun-gupta/docker-images) +- [@awesome-startup](https://github.com/awesome-startup/docker-compose) +- [@crosbymichael](https://github.com/crosbymichael/Dockerfiles) +- [@jessfraz](https://github.com/jessfraz/dockerfiles) +- [@komljen](https://github.com/komljen/dockerfile-examples) +- [@kstaken](https://github.com/kstaken/dockerfile-examples) +- [@ondrejmo](https://github.com/ondrejmo/Dockerfiles) +- [@pandrew](https://gitlab.com/pandrew/dockerfiles) +- [@vimagick](https://github.com/vimagick/dockerfiles) ### Linter -- [docker-image-size-limit](https://github.com/wemake-services/docker-image-size-limit) - A tool to keep an eye on your docker images size. -- [Dockerfile Linter action](https://github.com/buddy-works/dockerfile-linter) - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. -- [dockfmt](https://github.com/jessfraz/dockfmt) :construction: - Dockerfile formatter and parser by [@jessfraz][jessfraz] -- [FROM:latest](https://github.com/replicatedhq/dockerfilelint) - An opinionated Dockerfile linter by [@replicatedhq](https://github.com/replicatedhq) -- [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions; by [@lukasmartinelli](https://github.com/lukasmartinelli) -- [Whale-linter](https://github.com/jeromepin/whale-linter) - A simple and small Dockerfile linter written in Python3+ without dependencies by [@jeromepin](https://github.com/jeromepin) +- [docker-image-size-limit](https://github.com/wemake-services/docker-image-size-limit) - A tool to keep an eye on your docker images size. +- [Dockerfile Linter action](https://github.com/buddy-works/dockerfile-linter) - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. +- [dockfmt](https://github.com/jessfraz/dockfmt) :construction: - Dockerfile formatter and parser by [@jessfraz][jessfraz] +- [FROM:latest](https://github.com/replicatedhq/dockerfilelint) - An opinionated Dockerfile linter by [@replicatedhq](https://github.com/replicatedhq) +- [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions; by [@lukasmartinelli](https://github.com/lukasmartinelli) +- [Whale-linter](https://github.com/jeromepin/whale-linter) - A simple and small Dockerfile linter written in Python3+ without dependencies by [@jeromepin](https://github.com/jeromepin) ### Metadata -- [opencontainer](https://github.com/opencontainers/image-spec/blob/master/annotations.md) - A convention and shared namespace for Docker labels defined by OCI Image Spec. +- [opencontainer](https://github.com/opencontainers/image-spec/blob/master/annotations.md) - A convention and shared namespace for Docker labels defined by OCI Image Spec. ### Registry Services to securely store your Docker images. -- [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. -- [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/services/container-registry/) - Manage a Docker private registry as a first-class Azure resource -- [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans) -- [cleanreg](https://github.com/hcguersoy/cleanreg) - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC by [@hcguersoy](https://github.com/hcguersoy) -- [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/docker-registry/) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. -- [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. -- [Cycle.io :heavy_dollar_sign:](https://cycle.io/) - Bare-metal container hosting. -- [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. -- [Docker Hub](https://hub.docker.com/) provided by Docker Inc. -- [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content -- [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent by [@netvarun](https://github.com/netvarun/) -- [GCE Container Registry :heavy_dollar_sign:](https://cloud.google.com/container-registry/) Fast, private Docker image storage on Google Cloud Platform -- [GitLab Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/) - Registry focused on using its images in GitLab CI -- [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](Sandbox) formerly [VMWare] -- [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well -- [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. -- [Portus](https://github.com/SUSE/Portus) - Authorization service and frontend for Docker registry (v2) by [@SUSE](https://github.com/SUSE) -- [Quay.io :heavy_dollar_sign:](https://quay.io/) (part of CoreOS) - Secure hosting for private Docker repositories -- [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry -- [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source) by [@noteed](https://github.com/noteed) -- [Sonatype Nexus Repository](https://www.sonatype.com/products/nexus-repository) - Manage binaries and build artifacts across your software supply chain. -- [TreeScale](https://github.com/treescale) - Build and Distribute container based applications. By [@tigranbs](https://github.com/tigranbs) +- [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. +- [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/services/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource +- [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans) +- [cleanreg](https://github.com/hcguersoy/cleanreg) - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC by [@hcguersoy](https://github.com/hcguersoy) +- [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/docker-registry/) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. +- [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. +- [Cycle.io :heavy_dollar_sign:](https://cycle.io/) - Bare-metal container hosting. +- [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. +- [Docker Hub](https://hub.docker.com/) provided by Docker Inc. +- [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content +- [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent by [@netvarun](https://github.com/netvarun/) +- [GCE Container Registry :heavy_dollar_sign:](https://cloud.google.com/container-registry/) Fast, private Docker image storage on Google Cloud Platform +- [GitLab Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/) - Registry focused on using its images in GitLab CI +- [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](Sandbox) formerly [VMWare][vmware] +- [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well +- [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. +- [Portus](https://github.com/SUSE/Portus) - Authorization service and frontend for Docker registry (v2) by [@SUSE](https://github.com/SUSE) +- [Quay.io :heavy_dollar_sign:](https://quay.io/) (part of CoreOS) - Secure hosting for private Docker repositories +- [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry +- [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source) by [@noteed](https://github.com/noteed) +- [Sonatype Nexus Repository](https://www.sonatype.com/products/nexus-repository) - Manage binaries and build artifacts across your software supply chain. +- [TreeScale](https://github.com/treescale) - Build and Distribute container based applications. By [@tigranbs](https://github.com/tigranbs) ## Development with Docker ### API Client -- [ahab](https://github.com/instacart/ahab) - Docker event handling with Python by [@instacart](https://github.com/instacart) -- [clj-docker-client](https://github.com/into-docker/clj-docker-client) :skull: - Idiomatic Clojure client for the Docker remote API. By [@lispyclouds][lispyclouds] -- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [@lispyclouds][lispyclouds] -- [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy by [@gesellix][gesellix] -- [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [@masaeedu](https://github.com/masaeedu) -- [docker-client](https://github.com/spotify/docker-client) :skull: - Java client for the Docker remote API. By [@spotify][spotify] -- [docker-it-scala](https://github.com/whisklabs/docker-it-scala) - Docker integration testing kit with Scala by [@whisklabs](https://github.com/whisklabs) -- [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [@amihaiemil](https://github.com/amihaiemil) -- [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images by [@fabric8io](https://github.com/fabric8io) -- [Docker-PowerShell](https://github.com/Microsoft/Docker-PowerShell) - PowerShell Module for Docker -- [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API by [@ahmetalpbalkan](ahmetalpbalkan) -- [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [@rquackenbush](https://github.com/rquackenbush) -- [dockerfile-maven](https://github.com/spotify/dockerfile-maven) - A Maven plugin for building and pushing Docker images by [@spotify][spotify] -- [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module by [@apocas](https://github.com/apocas) -- [DoMonit](https://github.com/eon01/DoMonit) - A simple Docker Monitoring wrapper For Docker API -- [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API by [@fsouza](https://github.com/fsouza/) -- [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle by [@gesellix][gesellix] -- [libcompose](https://github.com/docker/libcompose) - Go library for Docker Compose. -- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) :construction: - Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [@greenled](https://github.com/greenled). -- [sbt-docker-compose](https://github.com/Tapad/sbt-docker-compose) - Integrates Docker Compose functionality into sbt by [@kurtkopchik](https://github.com/kurtkopchik/) -- [sbt-docker](https://github.com/marcuslonnberg/sbt-docker) - Create Docker images directly from sbt by [@marcuslonnberg](https://github.com/marcuslonnberg) +- [ahab](https://github.com/instacart/ahab) - Docker event handling with Python by [@instacart](https://github.com/instacart) +- [clj-docker-client](https://github.com/into-docker/clj-docker-client) :skull: - Idiomatic Clojure client for the Docker remote API. By [@lispyclouds][lispyclouds] +- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [@lispyclouds][lispyclouds] +- [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy by [@gesellix][gesellix] +- [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [@masaeedu](https://github.com/masaeedu) +- [docker-client](https://github.com/spotify/docker-client) :skull: - Java client for the Docker remote API. By [@spotify][spotify] +- [docker-it-scala](https://github.com/whisklabs/docker-it-scala) - Docker integration testing kit with Scala by [@whisklabs](https://github.com/whisklabs) +- [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [@amihaiemil](https://github.com/amihaiemil) +- [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images by [@fabric8io](https://github.com/fabric8io) +- [Docker-PowerShell](https://github.com/Microsoft/Docker-PowerShell) - PowerShell Module for Docker +- [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API by [@ahmetalpbalkan](ahmetalpbalkan) +- [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [@rquackenbush](https://github.com/rquackenbush) +- [dockerfile-maven](https://github.com/spotify/dockerfile-maven) - A Maven plugin for building and pushing Docker images by [@spotify][spotify] +- [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module by [@apocas](https://github.com/apocas) +- [DoMonit](https://github.com/eon01/DoMonit) - A simple Docker Monitoring wrapper For Docker API +- [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API by [@fsouza](https://github.com/fsouza/) +- [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle by [@gesellix][gesellix] +- [libcompose](https://github.com/docker/libcompose) - Go library for Docker Compose. +- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) :construction: - Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [@greenled](https://github.com/greenled). +- [sbt-docker-compose](https://github.com/Tapad/sbt-docker-compose) - Integrates Docker Compose functionality into sbt by [@kurtkopchik](https://github.com/kurtkopchik/) +- [sbt-docker](https://github.com/marcuslonnberg/sbt-docker) - Create Docker images directly from sbt by [@marcuslonnberg](https://github.com/marcuslonnberg) ### CI/CD -- [Buddy :heavy_dollar_sign:](https://buddy.works) - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. -- [Captain](https://github.com/harbur/captain) - Convert your Git workflow to Docker containers ready for Continuous Delivery by [@harbur](https://github.com/harbur). -- [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources by [@caicloud](https://github.com/caicloud). -- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max](crazy-max). -- [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. -- [Dockupdater](https://github.com/dockupdater/dockupdater) - Automatically keep your docker services and your docker containers up-to-date -- [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. -- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. -- [GOCD-Docker](https://github.com/gocd/gocd-docker) :skull: - Go Server and Agent in docker containers to provision. -- [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed by [@Kraken-CI](https://github.com/Kraken-CI). -- [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) - Continuous deployment of a microservices application. -- [mu](https://github.com/stelligent/mu) - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [@Stelligent](https://github.com/stelligent) -- [Ouroboros](https://github.com/pyouroboros/ouroboros) :skull: - Automatically update running Docker containers with notifications -- [Popper](https://github.com/systemslab/popper) - Github actions workflow (HCL syntax) execution engine. -- [Screwdriver :heavy_dollar_sign:](https://screwdriver.cd/) - Yahoo's OpenSource buildplatform designed for Continous Delivery. -- [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository by [@Stratoscale](https://github.com/Stratoscale) -- [SwarmCI](https://github.com/ghostsquad/swarmci) - Create a distributed, isolated task pipeline in your Docker Swarm. -- [Watchtower](https://github.com/containrrr/watchtower) - Automatically update running Docker containers +- [Buddy :heavy_dollar_sign:](https://buddy.works) - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. +- [Captain](https://github.com/harbur/captain) - Convert your Git workflow to Docker containers ready for Continuous Delivery by [@harbur](https://github.com/harbur). +- [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources by [@caicloud](https://github.com/caicloud). +- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max](crazy-max). +- [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. +- [Dockupdater](https://github.com/dockupdater/dockupdater) - Automatically keep your docker services and your docker containers up-to-date +- [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. +- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. +- [GOCD-Docker](https://github.com/gocd/gocd-docker) :skull: - Go Server and Agent in docker containers to provision. +- [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed by [@Kraken-CI](https://github.com/Kraken-CI). +- [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) - Continuous deployment of a microservices application. +- [mu](https://github.com/stelligent/mu) - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [@Stelligent](https://github.com/stelligent) +- [Ouroboros](https://github.com/pyouroboros/ouroboros) :skull: - Automatically update running Docker containers with notifications +- [Popper](https://github.com/systemslab/popper) - Github actions workflow (HCL syntax) execution engine. +- [Screwdriver :heavy_dollar_sign:](https://screwdriver.cd/) - Yahoo's OpenSource buildplatform designed for Continous Delivery. +- [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository by [@Stratoscale](https://github.com/Stratoscale) +- [SwarmCI](https://github.com/ghostsquad/swarmci) - Create a distributed, isolated task pipeline in your Docker Swarm. +- [Watchtower](https://github.com/containrrr/watchtower) - Automatically update running Docker containers ### Development Environment -- [batect](https://github.com/batect/batect) - build and testing environments as code tool: Dockerised build and testing environments made easy by [@charleskorn](https://github.com/charleskorn) -- [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [@TechnologyAdvice](https://github.com/TechnologyAdvice)) -- [Boot2Docker](https://github.com/boot2docker/boot2docker) :skull: - Docker for OSX and Windows -- [coder](https://github.com/coder/coder) - remote development machines powered by Terraform or Docker by [@coder](https://github.com/coder) -- [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment by [@lstephen](https://github.com/lstephen) -- [Crashcart](https://github.com/oracle/crashcart) - Sideload Linux binaries into a running container for troubleshooting by [@Oracle][oracle] -- [dde](https://github.com/whatwedo/dde) :construction: - Local development environment toolset based on Docker. By [@whatwedo](https://github.com/whatwedo) -- [Devstep](https://github.com/fgrehm/devstep) :skull: - Development environments powered by Docker and buildpacks by [@fgrehm][fgrehm] -- [Dinghy](https://github.com/codekitchen/dinghy) - An alternative way to use Docker on Mac OS X using Docker Machine with virtualbox, vmware, xhyve or parallels -- [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [@bibendi](https://github.com/bibendi) -- [DLite](https://github.com/nlf/dlite) :skull: - Simplest way to use Docker on OSX, no VM needed. By [@nlf](https://github.com/nlf) -- [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [@dnephin](https://github.com/dnephin) -- [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [@NandoQuintana](https://github.com/nandoquintana). -- [Docker osx dev](https://github.com/brikis98/docker-osx-dev) :skull: - A productive development environment with Docker on OS X by [@brikis98](https://github.com/brikis98) -- [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [@Ph3nol](https://github.com/ph3nol) -- [docker-setup](https://github.com/nicholasdille/docker-setup) - Install, configure and update container tools. By [@nicholasdille](https://twitter.com/nicholasdille) -- [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer) -- [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant) by [@shyiko](https://github.com/shyiko) -- [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. -- [Dusty](https://github.com/gamechanger/dusty) - Managed Docker development environments on OS X -- [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE -- [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [@EnvCLI](https://github.com/EnvCLI) -- [footloose](https://github.com/weaveworks/footloose) - Spin containers that look like Virtual Machines - By [@dlespiau](https://github.com/dlespiau) -- [forward2docker](https://github.com/bsideup/forward2docker) :skull: - Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM by [@bsideup](https://github.com/bsideup) -- [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. -- [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://thinktandem.io/) -- [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments by [@tailhook](https://github.com/tailhook/) -- [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com) +- [batect](https://github.com/batect/batect) - build and testing environments as code tool: Dockerised build and testing environments made easy by [@charleskorn](https://github.com/charleskorn) +- [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [@TechnologyAdvice](https://github.com/TechnologyAdvice)) +- [Boot2Docker](https://github.com/boot2docker/boot2docker) :skull: - Docker for OSX and Windows +- [coder](https://github.com/coder/coder) - remote development machines powered by Terraform or Docker by [@coder](https://github.com/coder) +- [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment by [@lstephen](https://github.com/lstephen) +- [Crashcart](https://github.com/oracle/crashcart) - Sideload Linux binaries into a running container for troubleshooting by [@Oracle][oracle] +- [dde](https://github.com/whatwedo/dde) :construction: - Local development environment toolset based on Docker. By [@whatwedo](https://github.com/whatwedo) +- [Devstep](https://github.com/fgrehm/devstep) :skull: - Development environments powered by Docker and buildpacks by [@fgrehm][fgrehm] +- [Dinghy](https://github.com/codekitchen/dinghy) - An alternative way to use Docker on Mac OS X using Docker Machine with virtualbox, vmware, xhyve or parallels +- [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [@bibendi](https://github.com/bibendi) +- [DLite](https://github.com/nlf/dlite) :skull: - Simplest way to use Docker on OSX, no VM needed. By [@nlf](https://github.com/nlf) +- [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [@dnephin](https://github.com/dnephin) +- [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [@NandoQuintana](https://github.com/nandoquintana). +- [Docker osx dev](https://github.com/brikis98/docker-osx-dev) :skull: - A productive development environment with Docker on OS X by [@brikis98](https://github.com/brikis98) +- [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [@Ph3nol](https://github.com/ph3nol) +- [docker-setup](https://github.com/nicholasdille/docker-setup) - Install, configure and update container tools. By [@nicholasdille](https://twitter.com/nicholasdille) +- [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer) +- [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant) by [@shyiko](https://github.com/shyiko) +- [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. +- [Dusty](https://github.com/gamechanger/dusty) - Managed Docker development environments on OS X +- [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE +- [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [@EnvCLI](https://github.com/EnvCLI) +- [footloose](https://github.com/weaveworks/footloose) - Spin containers that look like Virtual Machines - By [@dlespiau](https://github.com/dlespiau) +- [forward2docker](https://github.com/bsideup/forward2docker) :skull: - Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM by [@bsideup](https://github.com/bsideup) +- [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. +- [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://thinktandem.io/) +- [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments by [@tailhook](https://github.com/tailhook/) +- [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com) ### Garbage Collection -- [caduc](https://github.com/tjamet/caduc) - A docker garbage collector cleaning stuff you did not use recently -- [Docker Clean](https://github.com/ZZROTDesign/docker-clean) - A script that cleans Docker containers, images and volumes by [@zzrotdesign](https://github.com/ZZROTDesign) -- [docker_gc](https://github.com/pdacity/docker_gc) - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service by [@pdacity](https://github.com/pdacity) -- [Docker-cleanup](https://github.com/meltwater/docker-cleanup) :skull: - Automatic Docker image, container and volume cleanup by [@meltwater](https://github.com/meltwater) -- [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [@Yelp](https://github.com/Yelp) -- [docker-garby](https://github.com/konstruktoid/docker-garby) - Docker garbage collection script by [@konstruktoid](https://github.com/konstruktoid). -- [docker-gc](https://github.com/spotify/docker-gc) :skull: - A cron job that will delete old stopped containers and unused images by [@spotify][spotify] -- [sherdock](https://github.com/rancher/sherdock) :skull: - Automatic GC of images based on regexp by [@rancher][rancher] +- [caduc](https://github.com/tjamet/caduc) - A docker garbage collector cleaning stuff you did not use recently +- [Docker Clean](https://github.com/ZZROTDesign/docker-clean) - A script that cleans Docker containers, images and volumes by [@zzrotdesign](https://github.com/ZZROTDesign) +- [docker_gc](https://github.com/pdacity/docker_gc) - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service by [@pdacity](https://github.com/pdacity) +- [Docker-cleanup](https://github.com/meltwater/docker-cleanup) :skull: - Automatic Docker image, container and volume cleanup by [@meltwater](https://github.com/meltwater) +- [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [@Yelp](https://github.com/Yelp) +- [docker-garby](https://github.com/konstruktoid/docker-garby) - Docker garbage collection script by [@konstruktoid](https://github.com/konstruktoid). +- [docker-gc](https://github.com/spotify/docker-gc) :skull: - A cron job that will delete old stopped containers and unused images by [@spotify][spotify] +- [sherdock](https://github.com/rancher/sherdock) :skull: - Automatic GC of images based on regexp by [@rancher][rancher] ### Serverless -- [AMP](https://github.com/appcelerator-archive/amp) :skull: - The open source unified CaaS/FaaS platform for Docker, batteries included. By [@Appcelerator](https://github.com/appcelerator-archive) -- [Apache OpenWhisk](https://github.com/apache/openwhisk) - a serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache) -- [Docker-Lambda](https://github.com/lambci/docker-lambda) - Docker images and test runners that replicate the live AWS Lambda environment. By [@lamb-ci](https://github.com/lambci) -- [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [@bfirsh](https://github.com/bfirsh) -- [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions -- [Koyeb](https://www.koyeb.com/) :heavy_dollar_sign: - Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. -- [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas) -- [SCAR](https://github.com/grycap/scar) - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda) by [@grycap](https://github.com/grycap) +- [AMP](https://github.com/appcelerator-archive/amp) :skull: - The open source unified CaaS/FaaS platform for Docker, batteries included. By [@Appcelerator](https://github.com/appcelerator-archive) +- [Apache OpenWhisk](https://github.com/apache/openwhisk) - a serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache) +- [Docker-Lambda](https://github.com/lambci/docker-lambda) - Docker images and test runners that replicate the live AWS Lambda environment. By [@lamb-ci](https://github.com/lambci) +- [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [@bfirsh](https://github.com/bfirsh) +- [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions +- [Koyeb](https://www.koyeb.com/) :heavy_dollar_sign: - Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. +- [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas) +- [SCAR](https://github.com/grycap/scar) - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda) by [@grycap](https://github.com/grycap) ### Testing -- [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [@GoogleContainerTools][googlecontainertools] -- [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. -- [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [@zuazo](https://github.com/zuazo) -- [Dockunit](https://github.com/dockunit/platform) :skull: - Docker based integration tests. A simple Node based utility for running Docker based unit tests. By [@dockunit](https://github.com/dockunit) -- [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [@chef](https://github.com/chef) -- [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. -- [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [@alexei-led](https://github.com/alexei-led) +- [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [@GoogleContainerTools][googlecontainertools] +- [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. +- [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [@zuazo](https://github.com/zuazo) +- [Dockunit](https://github.com/dockunit/platform) :skull: - Docker based integration tests. A simple Node based utility for running Docker based unit tests. By [@dockunit](https://github.com/dockunit) +- [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [@chef](https://github.com/chef) +- [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. +- [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [@alexei-led](https://github.com/alexei-led) ### Wrappers -- [Ansible](https://docs.ansible.com/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat -- [Azk](https://github.com/azukiapp/azk) - Orchestrate development environments on your local machine by [@azukiapp](https://github.com/azukiapp) -- [Beluga](https://github.com/cortexmedia/Beluga) :skull: - CLI to deploy docker containers on a single server or low amount of servers. By [@cortextmedia](https://github.com/cortexmedia) -- [dexec](https://github.com/docker-exec/dexec) - Command line interface written in Go for running code with Docker Exec images. -- [dockerized](https://github.com/benzaita/dockerized-cli) - Seamlessly execute commands in a container. -- [Dray](https://github.com/CenturyLinkLabs/dray) - An engine for managing the execution of container-based workflows by [@CenturyLinkLabs][centurylinklabs] -- [FuGu](https://github.com/mattes/fugu) :skull: - Docker run wrapper without orchestration by [@mattes](https://github.com/mattes) -- [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [@artsy](https://github.com/artsy) -- [Shutit](https://github.com/ianmiell/shutit) - Tool for building and maintaining complex Docker deployments by [@ianmiell](https://github.com/ianmiell) -- [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker -- [T.A.D.S. boilerplate](https://github.com/Thomvaill/tads-boilerplate) - The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By [@Thomvaill](https://github.com/Thomvaill) -- [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM -- [Turbo](https://github.com/ramitsurana/turbo) - Simple and Powerful utility for docker. By [@ramitsurana][ramitsurana] -- [udocker](https://github.com/indigo-dc/udocker) - A tool to execute simple docker containers in batch or interactive systems without root privileges by [@inidigo-dc](https://github.com/indigo-dc) -- [Vagrant - Docker provider](https://www.vagrantup.com/docs/providers/docker/basics) - Good starting point is [vagrant-docker-example](https://github.com/bubenkoff/vagrant-docker-example) by [@bubenkoff](https://github.com/bubenkoff) +- [Ansible](https://docs.ansible.com/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat +- [Azk](https://github.com/azukiapp/azk) - Orchestrate development environments on your local machine by [@azukiapp](https://github.com/azukiapp) +- [Beluga](https://github.com/cortexmedia/Beluga) :skull: - CLI to deploy docker containers on a single server or low amount of servers. By [@cortextmedia](https://github.com/cortexmedia) +- [dexec](https://github.com/docker-exec/dexec) - Command line interface written in Go for running code with Docker Exec images. +- [dockerized](https://github.com/benzaita/dockerized-cli) - Seamlessly execute commands in a container. +- [Dray](https://github.com/CenturyLinkLabs/dray) - An engine for managing the execution of container-based workflows by [@CenturyLinkLabs][centurylinklabs] +- [FuGu](https://github.com/mattes/fugu) :skull: - Docker run wrapper without orchestration by [@mattes](https://github.com/mattes) +- [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [@artsy](https://github.com/artsy) +- [Shutit](https://github.com/ianmiell/shutit) - Tool for building and maintaining complex Docker deployments by [@ianmiell](https://github.com/ianmiell) +- [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker +- [T.A.D.S. boilerplate](https://github.com/Thomvaill/tads-boilerplate) - The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By [@Thomvaill](https://github.com/Thomvaill) +- [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM +- [Turbo](https://github.com/ramitsurana/turbo) - Simple and Powerful utility for docker. By [@ramitsurana][ramitsurana] +- [udocker](https://github.com/indigo-dc/udocker) - A tool to execute simple docker containers in batch or interactive systems without root privileges by [@inidigo-dc](https://github.com/indigo-dc) +- [Vagrant - Docker provider](https://www.vagrantup.com/docs/providers/docker/basics) - Good starting point is [vagrant-docker-example](https://github.com/bubenkoff/vagrant-docker-example) by [@bubenkoff](https://github.com/bubenkoff) ## Services based on Docker (mostly :heavy_dollar_sign:) ### CI Services -- [CircleCI](https://circleci.com/) :heavy_dollar_sign: - Push or pull Docker images from your build environment, or build and run containers right on CircleCI. -- [CodeFresh](https://codefresh.io) :heavy_dollar_sign: - Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. -- [CodeShip](https://www.cloudbees.com/products/codeship) :heavy_dollar_sign: - Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. -- [ConcourseCI](https://concourse-ci.org) :heavy_dollar_sign: - A CI SaaS platform for developers and DevOps teams pipeline oriented. -- [Semaphore CI](https://semaphoreci.com/) :heavy_dollar_sign: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. -- [TravisCI](https://travis-ci.org/) :heavy_dollar_sign: - A Free github projects continuous integration Saas platform for developers and Devops. +- [CircleCI](https://circleci.com/) :heavy_dollar_sign: - Push or pull Docker images from your build environment, or build and run containers right on CircleCI. +- [CodeFresh](https://codefresh.io) :heavy_dollar_sign: - Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. +- [CodeShip](https://www.cloudbees.com/products/codeship) :heavy_dollar_sign: - Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. +- [ConcourseCI](https://concourse-ci.org) :heavy_dollar_sign: - A CI SaaS platform for developers and DevOps teams pipeline oriented. +- [Semaphore CI](https://semaphoreci.com/) :heavy_dollar_sign: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. +- [TravisCI](https://www.travis-ci.com/) :heavy_dollar_sign: - A Free github projects continuous integration Saas platform for developers and Devops. ### CaaS -- [Amazon ECS](https://aws.amazon.com/ecs/) :heavy_dollar_sign: - A management service on EC2 that supports Docker containers. -- [Appfleet](https://appfleet.com/) :heavy_dollar_sign: - Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency. -- [Azure AKS](https://azure.microsoft.com/en-us/services/kubernetes-service/) :heavy_dollar_sign: - Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. -- [Cloud 66](https://www.cloud66.com) :heavy_dollar_sign: - Full-stack hosted container management as a service -- [Dockhero](https://dockhero.io/) :heavy_dollar_sign: - Dockhero is a Heroku add-on which turns a Docker image into a microservice attached to the Heroku app. Currently in beta. -- [Giant Swarm](https://www.giantswarm.io/) :heavy_dollar_sign: - Simple microservice infrastructure. Deploy your containers in seconds. -- [Google Container Engine](https://cloud.google.com/kubernetes-engine/docs/) :heavy_dollar_sign: - Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. -- [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) :heavy_dollar_sign: - Integrated platform for data and containers built on Apache Mesos by [@mesosphere](https://d2iq.com) -- [Red Hat CodeReady Workspaces](https://developers.redhat.com/products/codeready-workspaces/overview) - A collaborative Kubernetes-native solution for rapid application development that delivers consistent developer environments on Red Hat OpenShift to allow anyone with a browser to contribute code in under two minutes. -- [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) :heavy_dollar_sign: - Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud -- [Sloppy.io](https://sloppy.io/en/) :heavy_dollar_sign: - all-in-one solution for container deployment and hosting – made and hosted in Germany -- [Triton](https://www.joyent.com/) :heavy_dollar_sign: - Elastic container-native infrastructure by Joyent. -- [Virtuozzo Application Platform](https://www.virtuozzo.com/application-platform-partners/) :heavy_dollar_sign: - Deploy and manage your projects with turnkey PaaS across a wide network of reliable service providers +- [Amazon ECS](https://aws.amazon.com/ecs/) :heavy_dollar_sign: - A management service on EC2 that supports Docker containers. +- [Appfleet](https://appfleet.com/) :heavy_dollar_sign: - Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency. +- [Azure AKS](https://azure.microsoft.com/en-us/services/kubernetes-service/) :heavy_dollar_sign: - Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. +- [Cloud 66](https://www.cloud66.com) :heavy_dollar_sign: - Full-stack hosted container management as a service +- [Dockhero](https://dockhero.io/) :heavy_dollar_sign: - Dockhero is a Heroku add-on which turns a Docker image into a microservice attached to the Heroku app. Currently in beta. +- [Giant Swarm](https://www.giantswarm.io/) :heavy_dollar_sign: - Simple microservice infrastructure. Deploy your containers in seconds. +- [Google Container Engine](https://cloud.google.com/kubernetes-engine/docs/) :heavy_dollar_sign: - Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. +- [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) :heavy_dollar_sign: - Integrated platform for data and containers built on Apache Mesos by [@mesosphere](https://d2iq.com) +- [Red Hat CodeReady Workspaces](https://developers.redhat.com/products/openshift-dev-spaces/overview) - A collaborative Kubernetes-native solution for rapid application development that delivers consistent developer environments on Red Hat OpenShift to allow anyone with a browser to contribute code in under two minutes. +- [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) :heavy_dollar_sign: - Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud +- [Sloppy.io](https://sloppy.io/en/) :heavy_dollar_sign: - all-in-one solution for container deployment and hosting – made and hosted in Germany +- [Triton](https://www.joyent.com/) :heavy_dollar_sign: - Elastic container-native infrastructure by Joyent. +- [Virtuozzo Application Platform](https://www.virtuozzo.com/application-platform-partners/) :heavy_dollar_sign: - Deploy and manage your projects with turnkey PaaS across a wide network of reliable service providers ### Monitoring Services -- [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. -- [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) :heavy_dollar_sign: - Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies) -- [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) -- [Datadog](https://www.datadoghq.com/) :heavy_dollar_sign: - Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. -- [Prometheus](https://prometheus.io/) :heavy_dollar_sign: - Open-source service monitoring system and time series database -- [Site24x7](https://www.site24x7.com/docker-monitoring.html) :heavy_dollar_sign: - Docker Monitoring for DevOps and IT is a SaaS Pay per Host model -- [SPM for Docker](https://github.com/sematext/sematext-agent-docker) :heavy_dollar_sign: - Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [@sematext](https://github.com/sematext) -- [Sysdig Monitor](https://sysdig.com/products/monitor/) :heavy_dollar_sign: - Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. +- [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. +- [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) :heavy_dollar_sign: - Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies) +- [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) +- [Datadog](https://www.datadoghq.com/) :heavy_dollar_sign: - Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. +- [Prometheus](https://prometheus.io/) :heavy_dollar_sign: - Open-source service monitoring system and time series database +- [Site24x7](https://www.site24x7.com/docker-monitoring.html) :heavy_dollar_sign: - Docker Monitoring for DevOps and IT is a SaaS Pay per Host model +- [SPM for Docker](https://github.com/sematext/sematext-agent-docker) :heavy_dollar_sign: - Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [@sematext](https://github.com/sematext) +- [Sysdig Monitor](https://sysdig.com/products/monitor/) :heavy_dollar_sign: - Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. # Useful Resources -- **[Valuable Docker Links](http://nane.kratzke.pages.mylab.th-luebeck.de/about/blog/2014/08/24/valuable-docker-links/)** High quality articles about docker! **MUST SEE** -- [Become a Docker Power User with Visual Studio Code](https://www.thebyte.io/become-docker-power-user-with-vs-code) - :heavy_dollar_sign: A training course to help you become a Docker Power user with Visual Studio Code -- [Cloud Native Landscape](https://github.com/cncf/landscape) -- [Docker Certification](https://intellipaat.com/docker-training-course/) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. -- [Docker Community on Hashnode](https://hashnode.com/n/docker) -- [Docker dev bookmarks](https://www.codever.land/search?q=docker) - use the tag [docker](https://www.codever.land/bookmarks/t/docker) -- [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) -- [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) -- [Docker Newsletter](https://www.docker.com/newsletter-subscription/) Docker newsletter for regular updates -- [Docker packaging guide for Python](https://pythonspeed.com/docker/) - a series of detailed articles on the specifics of Docker packaging for Python. -- [Learn Docker in a Month of Lunches](https://www.manning.com/books/learn-docker-in-a-month-of-lunches) -- [Learn Docker](https://coursesity.com/blog/best-docker-tutorials/) - Learn Docker - curated list of the top online docker tutorials and courses. -- [Programming Community Curated Resources for learning Docker](https://hackr.io/tutorials/learn-docker) - +- **[Valuable Docker Links](http://nane.kratzke.pages.mylab.th-luebeck.de/about/blog/2014/08/24/valuable-docker-links/)** High quality articles about docker! **MUST SEE** +- [Become a Docker Power User with Visual Studio Code](https://www.thebyte.io/become-docker-power-user-with-vs-code) - :heavy_dollar_sign: A training course to help you become a Docker Power user with Visual Studio Code +- [Cloud Native Landscape](https://github.com/cncf/landscape) +- [Docker Certification](https://intellipaat.com/docker-training-course/) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. +- [Docker Community on Hashnode](https://hashnode.com/n/docker) +- [Docker dev bookmarks](https://www.codever.land/search?q=docker) - use the tag [docker](https://www.codever.land/bookmarks/t/docker) +- [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) +- [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) +- [Docker Newsletter](https://www.docker.com/newsletter-subscription/) Docker newsletter for regular updates +- [Docker packaging guide for Python](https://pythonspeed.com/docker/) - a series of detailed articles on the specifics of Docker packaging for Python. +- [Learn Docker in a Month of Lunches](https://www.manning.com/books/learn-docker-in-a-month-of-lunches) +- [Learn Docker](https://coursesity.com/blog/best-docker-tutorials/) - Learn Docker - curated list of the top online docker tutorials and courses. +- [Programming Community Curated Resources for learning Docker](https://hackr.io/tutorials/learn-docker) ## Awesome Lists -- [Awesome CI/CD](https://github.com/cicdops/awesome-ciandcd) - Not specific to docker but relevant. -- [Awesome Compose](https://github.com/docker/awesome-compose) - Docker Compose samples -- [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) by [@ramitsurana][ramitsurana] -- [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo, by [@Friz-zy](https://github.com/Friz-zy). -- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. By [@Kickball](https://github.com/Kickball) -- [Awesome Sysadmin](https://github.com/n1trux/awesome-sysadmin) by [@n1trux](https://github.com/n1trux) -- [ToolsOfTheTrade](https://github.com/cjbarber/ToolsOfTheTrade) a list of SaaS and On premise applications by [@cjbarber](https://github.com/cjbarber) +- [Awesome CI/CD](https://github.com/cicdops/awesome-ciandcd) - Not specific to docker but relevant. +- [Awesome Compose](https://github.com/docker/awesome-compose) - Docker Compose samples +- [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) by [@ramitsurana][ramitsurana] +- [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo, by [@Friz-zy](https://github.com/Friz-zy). +- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. By [@Kickball](https://github.com/Kickball) +- [Awesome Sysadmin](https://github.com/n1trux/awesome-sysadmin) by [@n1trux](https://github.com/n1trux) +- [ToolsOfTheTrade](https://github.com/cjbarber/ToolsOfTheTrade) a list of SaaS and On premise applications by [@cjbarber](https://github.com/cjbarber) ## Demos and Examples -- [An Annotated Docker Config for Frontend Web Development](https://nystudio107.com/blog/an-annotated-docker-config-for-frontend-web-development) A local development environment with Docker allows you to shrink-wrap the devops your project needs as config, making onboarding frictionless. -- [Local Docker DB](https://github.com/alexmacarthur/local-docker-db) a list of docker-compose samples for a lot of databases by [@alexmacarthur](https://github.com/alexmacarthur) -- [Webstack-micro](https://github.com/ferbs/webstack-micro) Demo web app showing how Docker Compose might be used to set up an API Gateway, centralized authentication, background workers, and WebSockets as containerized services. +- [An Annotated Docker Config for Frontend Web Development](https://nystudio107.com/blog/an-annotated-docker-config-for-frontend-web-development) A local development environment with Docker allows you to shrink-wrap the devops your project needs as config, making onboarding frictionless. +- [Local Docker DB](https://github.com/alexmacarthur/local-docker-db) a list of docker-compose samples for a lot of databases by [@alexmacarthur](https://github.com/alexmacarthur) +- [Webstack-micro](https://github.com/ferbs/webstack-micro) Demo web app showing how Docker Compose might be used to set up an API Gateway, centralized authentication, background workers, and WebSockets as containerized services. ## Good Tips -- [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** -- [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [@jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015 -- [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/cloud/docker-vs-vms-combining-both-for-cloud-portability-nirvana/) -- [Dockerfile best practices](https://github.com/hexops/dockerfile) - This repository has best-practices for writing Dockerfiles -- [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [@King Chung Huang](https://github.com/kinghuang) -- [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [@fgrehm][fgrehm] +- [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** +- [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [@jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015 +- [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/cloud/docker-vs-vms-combining-both-for-cloud-portability-nirvana/) +- [Dockerfile best practices](https://github.com/hexops/dockerfile) - This repository has best-practices for writing Dockerfiles +- [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [@King Chung Huang](https://github.com/kinghuang) +- [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [@fgrehm][fgrehm] ## Raspberry Pi & ARM -- [Docker Pirates ARMed with explosive stuff](https://blog.hypriot.com/) Huge resource on clustering, swarm, docker, pre-installed image for SD card on Raspberry Pi -- [Get Docker up and running on the RaspberryPi in three steps](https://github.com/umiddelb/armhf/wiki/Get-Docker-up-and-running-on-the-RaspberryPi-%28ARMv6%29-in-three-steps) -- [git push docker containers to linux devices](https://www.balena.io) Modern DevOps for IoT, leveraging git and Docker. -- [Installing, running, using Docker on armhf (ARMv7) devices](https://github.com/umiddelb/armhf/wiki/Installing,-running,-using-docker-on-armhf-%28ARMv7%29-devices) +- [Docker Pirates ARMed with explosive stuff](https://blog.hypriot.com/) Huge resource on clustering, swarm, docker, pre-installed image for SD card on Raspberry Pi +- [Get Docker up and running on the RaspberryPi in three steps](https://github.com/umiddelb/armhf/wiki/Get-Docker-up-and-running-on-the-RaspberryPi-%28ARMv6%29-in-three-steps) +- [git push docker containers to linux devices](https://www.balena.io) Modern DevOps for IoT, leveraging git and Docker. +- [Installing, running, using Docker on armhf (ARMv7) devices](https://github.com/umiddelb/armhf/wiki/Installing,-running,-using-docker-on-armhf-%28ARMv7%29-devices) ## Security -- [Bringing new security features to Docker](https://opensource.com/business/14/9/security-for-docker) -- [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) by [@tomwillfixit](https://twitter.com/tomwillfixit) -- [Docker Secure Deployment Guidelines](https://github.com/AonCyberLabs/Docker-Secure-Deployment-Guidelines) -- [Docker Security - Quick Reference](https://binarymist.io/publication/docker-security/) -- [Docker Security Cheat Sheet](https://github.com/konstruktoid/Docker/blob/master/Security/CheatSheet.adoc) -- [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://fr.slideshare.net/MichaelBoelen/docker-security-are-your-containers-tightly-secured-to-the-ship) -- [How CVE's are handled on Offical Docker Images](https://github.com/docker-library/official-images/issues/1448) -- [Lynis is an open source security auditing tool including Docker auditing](https://cisofy.com/lynis/) -- [Security Best Practices for Building Docker Images](https://linux-audit.com/tag/docker/) -- [Software Engineering Radio interview of Docker Security Team Lead (Diogo Mónica)](https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security/) -- [Ten Docker Image Security Best Practices Cheat Sheet](https://snyk.io/blog/10-docker-image-security-best-practices/) -- [Top ten most popular docker images each contain at least 30 vulnerabilities](https://snyk.io/blog/top-ten-most-popular-docker-images-each-contain-at-least-30-vulnerabilities/) -- [Tuning Docker with the newest security enhancements](https://opensource.com/business/15/3/docker-security-tuning) +- [Bringing new security features to Docker](https://opensource.com/business/14/9/security-for-docker) +- [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) by [@tomwillfixit](https://twitter.com/tomwillfixit) +- [Docker Secure Deployment Guidelines](https://github.com/AonCyberLabs/Docker-Secure-Deployment-Guidelines) +- [Docker Security - Quick Reference](https://binarymist.io/publication/docker-security/) +- [Docker Security Cheat Sheet](https://github.com/konstruktoid/Docker/blob/master/Security/CheatSheet.adoc) +- [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://fr.slideshare.net/MichaelBoelen/docker-security-are-your-containers-tightly-secured-to-the-ship) +- [How CVE's are handled on Offical Docker Images](https://github.com/docker-library/official-images/issues/1448) +- [Lynis is an open source security auditing tool including Docker auditing](https://cisofy.com/lynis/) +- [Security Best Practices for Building Docker Images](https://linux-audit.com/tag/docker/) +- [Software Engineering Radio interview of Docker Security Team Lead (Diogo Mónica)](https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security/) +- [Ten Docker Image Security Best Practices Cheat Sheet](https://snyk.io/blog/10-docker-image-security-best-practices/) +- [Top ten most popular docker images each contain at least 30 vulnerabilities](https://snyk.io/blog/top-ten-most-popular-docker-images-each-contain-at-least-30-vulnerabilities/) +- [Tuning Docker with the newest security enhancements](https://opensource.com/business/15/3/docker-security-tuning) ## Videos -- [Contributing to Docker by Andrew "Tianon" Page (InfoSiftr)](https://www.youtube.com/watch?v=1jwo8-1HYYg) (34:31) -- [Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic](https://www.youtube.com/watch?v=GpHMTR7P2Ms) (3:11:06) by [@jpetazzo][jpetazzo] -- [Docker and SELinux by Daniel Walsh from Red Hat](https://www.youtube.com/watch?v=zWGFqMuEHdw) (40:23) -- [Docker Course](https://www.youtube.com/watch?v=UZpyvK6UGFo) (Spanish) by [@pablokbs](https://github.com/pablokbs) -- [Docker for Developers](https://www.youtube.com/watch?v=FdkNAjjO5yQ) (54:26) by [@jpetazzo][jpetazzo] <== Good introduction, context, demo -- [Docker from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxD-btrjrqdEfQHbkZnQrmqE) (1:22:01) on YouTube by Paris Nakita Kejser -- [Docker: How to Use Your Own Private Registry](https://www.youtube.com/watch?v=CAewZCBT4PI) (15:01) -- [Docker in Production](https://www.youtube.com/watch?v=Glk5d5WP6MI) by [@jpetazzo][jpetazzo] (36:05) -- [Docker Primer to Docker Compose](https://www.youtube.com/watch?v=G-s2GXGAjTk) (1:56:45) on YouTube by LoginRadius -- [Docker Registry from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAz3d4Fj3edq7UcxEhdTCBm) (44:40) on YouTube by Paris Nakita Kejser -- [Docker Swarm from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAY4gZd1Wl-GsLvg-e9Ap1e) (1:41:28) on YouTube by Paris Nakita Kejser -- [Extending Docker with Plugins](https://vimeo.com/110835013) (15:21) -- [From Local Docker Development to Production Deployments](https://www.youtube.com/watch?v=7CZFpHUPqXw) by [@jpetazzo][jpetazzo] @ AWS re:Invent 2015 -- [Immutable Infrastructure with Docker and EC2 by Michael Bryzek (Gilt)](https://www.youtube.com/watch?v=GaHzdqFithc) (42:04) -- [Introduction to Docker and containers](https://www.youtube.com/watch?v=ZVaRK10HBjo) (3:09:00) by [@jpetazzo][jpetazzo] -- [Logging on Docker: What You Need to Know](https://vimeo.com/123341629) (51:27) -- [Performance Analysis of Docker - Jeremy Eder](https://www.youtube.com/watch?v=6f2E6PKYb0w) (1:36:58) -- [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615) Free Udacity course -- [State of containers: a debate with CoreOS, VMware and Google](https://www.youtube.com/watch?v=IiITP3yIRd8) (27:38) -- [List of online courses (free and paid) about Docker](https://skillcombo.com/topic/docker/) +- [Contributing to Docker by Andrew "Tianon" Page (InfoSiftr)](https://www.youtube.com/watch?v=1jwo8-1HYYg) (34:31) +- [Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic](https://www.youtube.com/watch?v=GpHMTR7P2Ms) (3:11:06) by [@jpetazzo][jpetazzo] +- [Docker and SELinux by Daniel Walsh from Red Hat](https://www.youtube.com/watch?v=zWGFqMuEHdw) (40:23) +- [Docker Course](https://www.youtube.com/watch?v=UZpyvK6UGFo) (Spanish) by [@pablokbs](https://github.com/pablokbs) +- [Docker for Developers](https://www.youtube.com/watch?v=FdkNAjjO5yQ) (54:26) by [@jpetazzo][jpetazzo] <== Good introduction, context, demo +- [Docker from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxD-btrjrqdEfQHbkZnQrmqE) (1:22:01) on YouTube by Paris Nakita Kejser +- [Docker: How to Use Your Own Private Registry](https://www.youtube.com/watch?v=CAewZCBT4PI) (15:01) +- [Docker in Production](https://www.youtube.com/watch?v=Glk5d5WP6MI) by [@jpetazzo][jpetazzo] (36:05) +- [Docker Primer to Docker Compose](https://www.youtube.com/watch?v=G-s2GXGAjTk) (1:56:45) on YouTube by LoginRadius +- [Docker Registry from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAz3d4Fj3edq7UcxEhdTCBm) (44:40) on YouTube by Paris Nakita Kejser +- [Docker Swarm from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAY4gZd1Wl-GsLvg-e9Ap1e) (1:41:28) on YouTube by Paris Nakita Kejser +- [Extending Docker with Plugins](https://vimeo.com/110835013) (15:21) +- [From Local Docker Development to Production Deployments](https://www.youtube.com/watch?v=7CZFpHUPqXw) by [@jpetazzo][jpetazzo] @ AWS re:Invent 2015 +- [Immutable Infrastructure with Docker and EC2 by Michael Bryzek (Gilt)](https://www.youtube.com/watch?v=GaHzdqFithc) (42:04) +- [Introduction to Docker and containers](https://www.youtube.com/watch?v=ZVaRK10HBjo) (3:09:00) by [@jpetazzo][jpetazzo] +- [Logging on Docker: What You Need to Know](https://vimeo.com/123341629) (51:27) +- [Performance Analysis of Docker - Jeremy Eder](https://www.youtube.com/watch?v=6f2E6PKYb0w) (1:36:58) +- [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615) Free Udacity course +- [State of containers: a debate with CoreOS, VMware and Google](https://www.youtube.com/watch?v=IiITP3yIRd8) (27:38) +- [List of online courses (free and paid) about Docker](https://skillcombo.com/topic/docker/) # Communities and Meetups ## Brazilian -- [Docker BR on Slack](http://docker-br.herokuapp.com) - Auto invite url -- [Docker BR on Telegram](https://telegram.me/dockerbr) +- [Docker BR on Slack](http://docker-br.herokuapp.com) - Auto invite url +- [Docker BR on Telegram](https://telegram.me/dockerbr) ## Chinese -- [DockerOne](http://dockone.io/) Docker Community (in Chinese) by [@LiYingJie](http://dockone.io/people/%E6%9D%8E%E9%A2%96%E6%9D%B0) +- [DockerOne](http://dockone.io/) Docker Community (in Chinese) by [@LiYingJie](http://dockone.io/people/%E6%9D%8E%E9%A2%96%E6%9D%B0) ## English -- [Docker Community](https://www.docker.com/community/) -- [Docker Events](https://www.docker.com/events/) -- [Docker Online Meetup](https://www.meetup.com/en-AU/Docker-Online-Meetup/) -- [Docker Reddit Community](https://www.reddit.com/r/docker/) +- [Docker Community](https://www.docker.com/community/) +- [Docker Events](https://www.docker.com/events/) +- [Docker Online Meetup](https://www.meetup.com/en-AU/Docker-Online-Meetup/) +- [Docker Reddit Community](https://www.reddit.com/r/docker/) ## Russian -- [Docker Russian-speaking Community](https://t.me/docker_ru) +- [Docker Russian-speaking Community](https://t.me/docker_ru) ## Spanish -- [Docker Tips](https://dockertips.com/) - +- [Docker Tips](https://dockertips.com/) ## Stargazers over time @@ -839,9 +835,8 @@ Services to securely store your Docker images. [![Contributor over time](https://api7.ai/contributor-graph?chart=contributorOverTime&repo=veggiemonk/awesome-docker) - [contributing]: https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md -[Akito]: https://github.com/theAkito +[akito]: https://github.com/theAkito [calico]: https://github.com/projectcalico/calicoctl [centurylinklabs]: https://github.com/CenturyLinkLabs [containx]: https://github.com/ContainX @@ -881,6 +876,6 @@ Services to securely store your Docker images. [tomastomecek]: https://github.com/TomasTomecek [vegasbrianc]: https://github.com/vegasbrianc [weave]: https://github.com/weaveworks/weave -[VMWare]: https://github.com/vmware +[vmware]: https://github.com/vmware [@byrnedo]: https://github.com/byrnedo [@skanehira]: https://github.com/skanehira diff --git a/tests/exclude_in_test.json b/tests/exclude_in_test.json index d6673a324..2a1160dc6 100644 --- a/tests/exclude_in_test.json +++ b/tests/exclude_in_test.json @@ -2,9 +2,11 @@ "https://vimeo.com", "https://travis-ci.org/veggiemonk/awesome-docker.svg", "https://github.com/apps/", + "https://twitter.com", + "https://www.meetup.com/", "https://cycle.io/", "https://www.manning.com/", "https://deepfence.io", "https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg", "https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security" -] +] \ No newline at end of file From d00ae4cc08419d66a66e6a6320d22b901485f879 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Jul 2022 10:08:48 +0200 Subject: [PATCH 046/327] Bump node-fetch from 3.2.6 to 3.2.7 (#1010) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.2.6 to 3.2.7. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.2.6...v3.2.7) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 983e7c85b..8e323d8ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.6", + "node-fetch": "3.2.7", "rimraf": "3.0.2", "showdown": "^2.1.0" } @@ -334,9 +334,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.6.tgz", - "integrity": "sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.7.tgz", + "integrity": "sha512-xRYIBUEoMvzvLt0FT2mAKAGXps1Wm0GpswR63pPJC4Hp5EubeigGYJJge34f3mPApap4+2B3sTKyUygsZrkmyg==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -671,9 +671,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.6.tgz", - "integrity": "sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.7.tgz", + "integrity": "sha512-xRYIBUEoMvzvLt0FT2mAKAGXps1Wm0GpswR63pPJC4Hp5EubeigGYJJge34f3mPApap4+2B3sTKyUygsZrkmyg==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index 9572180cf..d181777e1 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.6", + "node-fetch": "3.2.7", "rimraf": "3.0.2", "showdown": "^2.1.0" } From ae353c830c233e2734420829aeb9569844bd50dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Jul 2022 17:17:31 +0200 Subject: [PATCH 047/327] Bump node-fetch from 3.2.7 to 3.2.8 (#1012) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8e323d8ca..ec4cd68e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.7", + "node-fetch": "3.2.8", "rimraf": "3.0.2", "showdown": "^2.1.0" } @@ -334,9 +334,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.7.tgz", - "integrity": "sha512-xRYIBUEoMvzvLt0FT2mAKAGXps1Wm0GpswR63pPJC4Hp5EubeigGYJJge34f3mPApap4+2B3sTKyUygsZrkmyg==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.8.tgz", + "integrity": "sha512-KtpD1YhGszhntMpBDyp5lyagk8KIMopC1LEb7cQUAh7zcosaX5uK8HnbNb2i3NTQK3sIawCItS0uFC3QzcLHdg==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -671,9 +671,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.7.tgz", - "integrity": "sha512-xRYIBUEoMvzvLt0FT2mAKAGXps1Wm0GpswR63pPJC4Hp5EubeigGYJJge34f3mPApap4+2B3sTKyUygsZrkmyg==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.8.tgz", + "integrity": "sha512-KtpD1YhGszhntMpBDyp5lyagk8KIMopC1LEb7cQUAh7zcosaX5uK8HnbNb2i3NTQK3sIawCItS0uFC3QzcLHdg==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index d181777e1..1596fdad6 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.7", + "node-fetch": "3.2.8", "rimraf": "3.0.2", "showdown": "^2.1.0" } From 0359f0a17e00dfc3e263bb639f85adf41a5a132b Mon Sep 17 00:00:00 2001 From: meator Date: Sat, 16 Jul 2022 13:37:34 +0200 Subject: [PATCH 048/327] Mark docui as abandoned (#1013) The docui repository is now marked as read-only. The author recommends to switch to lazydocker. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a33f201d3..d3292c110 100644 --- a/README.md +++ b/README.md @@ -369,7 +369,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [Docker-mon](https://github.com/icecrime/docker-mon) :skull: - Console-based Docker monitoring by [@icecrime](https://github.com/icecrime) - [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers by [@lirantal](https://github.com/lirantal) - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters) -- [docui](https://github.com/skanehira/docui) - An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira] +- [docui](https://github.com/skanehira/docui) - :skull: An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira] - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) - [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine, by [@TomasTomecek][tomastomecek] From c95ba995d70aef88d2172664274b6e7f9d6a362e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Jul 2022 18:52:16 +0200 Subject: [PATCH 049/327] Bump node-fetch from 3.2.8 to 3.2.9 (#1014) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.2.8 to 3.2.9. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.2.8...v3.2.9) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec4cd68e7..1e8625504 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.8", + "node-fetch": "3.2.9", "rimraf": "3.0.2", "showdown": "^2.1.0" } @@ -334,9 +334,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.8.tgz", - "integrity": "sha512-KtpD1YhGszhntMpBDyp5lyagk8KIMopC1LEb7cQUAh7zcosaX5uK8HnbNb2i3NTQK3sIawCItS0uFC3QzcLHdg==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz", + "integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -671,9 +671,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.8.tgz", - "integrity": "sha512-KtpD1YhGszhntMpBDyp5lyagk8KIMopC1LEb7cQUAh7zcosaX5uK8HnbNb2i3NTQK3sIawCItS0uFC3QzcLHdg==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz", + "integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index 1596fdad6..b44695e9d 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.8", + "node-fetch": "3.2.9", "rimraf": "3.0.2", "showdown": "^2.1.0" } From e40cfd86e1fad79bf1e9b196dbf5e666f0242290 Mon Sep 17 00:00:00 2001 From: Dominik <16338782+TeraNovaLP@users.noreply.github.com> Date: Wed, 20 Jul 2022 16:40:48 +0200 Subject: [PATCH 050/327] Update convoy (#1015) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d3292c110..7ebdd9ff9 100644 --- a/README.md +++ b/README.md @@ -327,7 +327,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Volume Management / Data - [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [@blockbridge](https://github.com/blockbridge) -- [Convoy](https://github.com/rancher/convoy) - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher] +- [Convoy](https://github.com/rancher/convoy) :skull: - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher] - [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) Activates NFS for an existing boot2docker box created through Docker Machine on OS X. - [Docker Unison](https://github.com/leighmcculloch/docker-unison) A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch) - [Local Persist](https://github.com/MatchbookLab/local-persist) Specify a mountpoint for your local volumes (created via `docker volume create`) so that files will always persist and so you can mount to different directories in different containers. From 1cd86107d32cfb5ab2d9fe23189c4a702fdaa191 Mon Sep 17 00:00:00 2001 From: Artem Golub Date: Tue, 2 Aug 2022 13:44:48 +0300 Subject: [PATCH 051/327] change nuxxapp/nuxx to ctk-hq/ctk in Projects > Container Operations > Container Composition (#1018) * change nuxxapp/nuxx to ctk-hq/ctk in Projects > Container Operations > Container Composition * fix: alphabetical order * fix: under construction * fix: description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ebdd9ff9..99e2e1ea4 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [compose_plantuml](https://github.com/funkwerk/compose_plantuml) :skull: - Generate Plantuml graphs from docker-compose files by [@funkwerk](https://github.com/funkwerk) - [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files - [crowdr](https://github.com/polonskiy/crowdr) - Tool for managing multiple Docker containers (`docker-compose` alternative) by [@polonskiy](https://github.com/polonskiy/) +- [ctk](https://github.com/ctk-hq/ctk) :construction: - Visual composer for container based workloads. By [@corpulent](https://github.com/corpulent) - [docker-compose-graphviz](https://github.com/abesto/docker-compose-graphviz) :skull: - Turn a docker-compose.yml files into Graphviz .dot files by [@abesto](https://github.com/abesto) - [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) - Utility to update docker configs and secrets for deploying in a compose file by [@sudo-bmitch](https://github.com/sudo-bmitch) - [draw-compose](https://github.com/Alexis-benoist/draw-compose) :skull: - Utility to draw a schema of a docker compose by [@Alexis-benoist](https://github.com/Alexis-benoist) @@ -166,7 +167,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker by [@cloud66](https://github.com/cloud66) - [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes - [Maestro](https://github.com/toscanini/maestro) :skull: - Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit by [@tascanini](https://github.com/toscanini) -- [Nuxx](https://github.com/nuxxapp/nuxx) - Visually generate docker-compose.yaml code with drag-n-drop UI. By [@corpulent](https://github.com/corpulent) - [percheron](https://github.com/ashmckenzie/percheron) :skull: - Organise your Docker containers with muscle and intelligence by [@ashmckenzie](https://github.com/ashmckenzie) - [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. - [podman-compose](https://github.com/containers/podman-compose) - a script to run docker-compose.yml using podman by [@containers][containers] From 5908c83b1278d2558bc2e239555df26a92c8f277 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 12:45:22 +0200 Subject: [PATCH 052/327] Bump node-fetch from 3.2.9 to 3.2.10 (#1017) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.2.9 to 3.2.10. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.2.9...v3.2.10) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1e8625504..7be2b87f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.9", + "node-fetch": "3.2.10", "rimraf": "3.0.2", "showdown": "^2.1.0" } @@ -334,9 +334,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz", - "integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==", + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", + "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -671,9 +671,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz", - "integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==", + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", + "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index b44695e9d..2415e1c4b 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.9", + "node-fetch": "3.2.10", "rimraf": "3.0.2", "showdown": "^2.1.0" } From 9d98d6ca74cc03be9897e020a00af889e6371db1 Mon Sep 17 00:00:00 2001 From: Janoschs Herrmann Date: Fri, 26 Aug 2022 15:04:14 +0200 Subject: [PATCH 053/327] add bestcourses (#1019) Co-authored-by: janoschsworkspace --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 99e2e1ea4..209fe5c69 100644 --- a/README.md +++ b/README.md @@ -719,6 +719,7 @@ Services to securely store your Docker images. - **[Valuable Docker Links](http://nane.kratzke.pages.mylab.th-luebeck.de/about/blog/2014/08/24/valuable-docker-links/)** High quality articles about docker! **MUST SEE** - [Become a Docker Power User with Visual Studio Code](https://www.thebyte.io/become-docker-power-user-with-vs-code) - :heavy_dollar_sign: A training course to help you become a Docker Power user with Visual Studio Code - [Cloud Native Landscape](https://github.com/cncf/landscape) +- [Discover Docker courses](https://bestcourses.io/results?q=docker&size=n_20_n) - Easily discover Docker courses from various popular online learning platforms. - [Docker Certification](https://intellipaat.com/docker-training-course/) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. - [Docker Community on Hashnode](https://hashnode.com/n/docker) - [Docker dev bookmarks](https://www.codever.land/search?q=docker) - use the tag [docker](https://www.codever.land/bookmarks/t/docker) From 3f584dddbacd6c2ea8975236d369f065a16f310b Mon Sep 17 00:00:00 2001 From: exdx Date: Sun, 11 Sep 2022 11:04:11 -0400 Subject: [PATCH 054/327] docs: add dcp to CLI tools (#1021) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 209fe5c69..2899a7d60 100644 --- a/README.md +++ b/README.md @@ -378,6 +378,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [captain](https://github.com/jenssegers/captain) - Easily start and stop docker compose projects from any directory. By [@jenssegers](https://github.com/jenssegers) - [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [@Falldog](https://github.com/Falldog) +- [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [@exdx](https://github.com/exdx) - [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries by [@mayflower](https://github.com/mayflower) - [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck) - [dockersql](https://github.com/crosbymichael/dockersql) - A command line interface to query Docker using SQL by [@crosbymichael](https://github.com/crosbymichael) From e35cb8cd99d64f88c5c28d65b2142c9684224e93 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Thu, 22 Sep 2022 22:39:31 +0200 Subject: [PATCH 055/327] add checkov as there are no activity on #993 fixes #993 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2899a7d60..d8d1693f1 100644 --- a/README.md +++ b/README.md @@ -300,6 +300,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Aqua Security](https://www.aquasec.com) :heavy_dollar_sign: - Securing container-based applications from Dev to Production on any platform - [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers by [@genuinetools][genuinetools] - [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [@dev-sec](https://github.com/dev-sec) +- [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [@bridgecrew](https://github.com/bridgecrewio) - [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [@coreos][coreos] - [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [@eliasgranderubio](https://github.com/eliasgranderubio) - [Deepfence Enterprise](https://deepfence.io) :heavy_dollar_sign: - Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [@deepfence](deepfence) From 9b9edb89112fe1b1d430b3e9f2cbe7b3ba5772c6 Mon Sep 17 00:00:00 2001 From: Louis_45 Date: Wed, 28 Sep 2022 08:48:30 +0200 Subject: [PATCH 056/327] Source code of Calico moved (#1024) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d8d1693f1..ca8761537 100644 --- a/README.md +++ b/README.md @@ -222,7 +222,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Networking -- [Calico-Docker][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. +- [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. - [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [@coreos][coreos] - [Freeflow](https://github.com/Microsoft/Freeflow) - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [@Microsoft](https://github.com/Microsoft) - [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues by [@nicolaka](https://github.com/nicolaka) @@ -840,7 +840,7 @@ Services to securely store your Docker images. [contributing]: https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md [akito]: https://github.com/theAkito -[calico]: https://github.com/projectcalico/calicoctl +[calico]: https://github.com/projectcalico/calico [centurylinklabs]: https://github.com/CenturyLinkLabs [containx]: https://github.com/ContainX [containers]: https://github.com/containers From f0200320c3a7171e8dc760e27bdbc44dd5c200a7 Mon Sep 17 00:00:00 2001 From: Ismail Egilmez Date: Mon, 10 Oct 2022 12:55:17 +0300 Subject: [PATCH 057/327] Added Sidekick (paying monitoring service) * Update README.md * Update README.md * Update README.md * add sidekick (paying service) Co-authored-by: Julien Bisconti --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ca8761537..8b445c2c7 100644 --- a/README.md +++ b/README.md @@ -215,6 +215,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus] - [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes by [@Nexclipper](https://github.com/NexClipper) - [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. +- [Sidekick](https://github.com/runsidekick/sidekick) 💲 - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. - [SuperVisor CPM](https://t0xic0der.medium.com/simply-accessible-container-performance-monitoring-with-supervisor-7fb47f925f3b) [Frontend Service](https://github.com/t0xic0der/supervisor-frontend-service/) and [Driver Service](https://github.com/t0xic0der/supervisor-driver-service/) :construction: - A simple and accessible FOSS container performance monitoring service written in Python by [@t0xic0der](https://github.com/t0xic0der/) - [SwarmAlert](https://github.com/gpulido/SwarmAlert) - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. - [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. From 0a419f2d9025628e25640c3dcbc24fb959107d68 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Mon, 10 Oct 2022 11:55:35 +0200 Subject: [PATCH 058/327] Add docker-volume-backup (#1025) Backup Docker volumes locally or to any S3 compatible storage. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8b445c2c7..c16e627ea 100644 --- a/README.md +++ b/README.md @@ -332,6 +332,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Convoy](https://github.com/rancher/convoy) :skull: - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher] - [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) Activates NFS for an existing boot2docker box created through Docker Machine on OS X. - [Docker Unison](https://github.com/leighmcculloch/docker-unison) A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch) +- [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [@offen](https://github.com/offen) - [Local Persist](https://github.com/MatchbookLab/local-persist) Specify a mountpoint for your local volumes (created via `docker volume create`) so that files will always persist and so you can mount to different directories in different containers. - [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers - [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [@ContainX][containx] From 8986673fb69a48d1002f8d13fbb3afe47fff8cc7 Mon Sep 17 00:00:00 2001 From: Kyle Balston Date: Wed, 19 Oct 2022 03:03:29 -0700 Subject: [PATCH 059/327] Mark `box` project as abandoned (#1027) The last commit for `box` was 2017-11-02 and the project has been archived --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c16e627ea..79c49ec37 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [bocker](https://github.com/icy/bocker) (2) :skull: - Write Dockerfile completely in Bash. Extensible and simple. --> Reusable by [@icy](https://github.com/icy) - [bocker](https://github.com/p8952/bocker) (1) :skull: - Docker implemented in 100 lines of bash by [p8952](https://github.com/p8952) -- [box](https://github.com/box-builder/box) - Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation +- [box](https://github.com/box-builder/box) :skull: - Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation - [Capitan](https://github.com/byrnedo/capitan) - Composable docker orchestration with added scripting support by [@byrnedo]. - [compose_plantuml](https://github.com/funkwerk/compose_plantuml) :skull: - Generate Plantuml graphs from docker-compose files by [@funkwerk](https://github.com/funkwerk) - [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files From c272ff3500de491ec9d99e61d5e74d3198e7ab63 Mon Sep 17 00:00:00 2001 From: tomsun28 Date: Mon, 31 Oct 2022 02:50:20 +0800 Subject: [PATCH 060/327] Add HertzBeat to Monitoring (#1028) --- README.md | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 79c49ec37..f1efe8a6e 100644 --- a/README.md +++ b/README.md @@ -196,30 +196,31 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Monitoring -- [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. -- [Axibase Collector](https://github.com/axibase/docker-axibase-collector) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. -- [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. Created by [@Google][google] -- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics -- [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically by [@docker-flow][docker-flow] -- [Dockerana](https://github.com/dockerana/dockerana) :skull: - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. -- [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. -- [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by [@stefanprodan](https://github.com/stefanprodan) -- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [@amerkurev](https://github.com/amerkurev) -- [Dozzle](https://github.com/amir20/dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) -- [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands -- [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) -- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] -- [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor by [@vegasbrianc][vegasbrianc] -- [LogJam](https://github.com/gocardless/logjam) - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by [@gocardless](https://github.com/gocardless) -- [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs by [@gliderlabs][gliderlabs] -- [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus] -- [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes by [@Nexclipper](https://github.com/NexClipper) -- [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. -- [Sidekick](https://github.com/runsidekick/sidekick) 💲 - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. -- [SuperVisor CPM](https://t0xic0der.medium.com/simply-accessible-container-performance-monitoring-with-supervisor-7fb47f925f3b) [Frontend Service](https://github.com/t0xic0der/supervisor-frontend-service/) and [Driver Service](https://github.com/t0xic0der/supervisor-driver-service/) :construction: - A simple and accessible FOSS container performance monitoring service written in Python by [@t0xic0der](https://github.com/t0xic0der/) -- [SwarmAlert](https://github.com/gpulido/SwarmAlert) - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. -- [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. -- [Zabbix Docker](https://github.com/gomex/docker-zabbix) - Monitor containers automatically using zabbix LLD feature. +- [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. +- [Axibase Collector](https://github.com/axibase/docker-axibase-collector) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. +- [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. Created by [@Google][google] +- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics +- [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically by [@docker-flow][docker-flow] +- [Dockerana](https://github.com/dockerana/dockerana) :skull: - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. +- [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. +- [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by [@stefanprodan](https://github.com/stefanprodan) +- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [@amerkurev](https://github.com/amerkurev) +- [Dozzle](https://github.com/amir20/dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) +- [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands +- [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) +- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] +- [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. +- [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor by [@vegasbrianc][vegasbrianc] +- [LogJam](https://github.com/gocardless/logjam) - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by [@gocardless](https://github.com/gocardless) +- [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs by [@gliderlabs][gliderlabs] +- [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus] +- [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes by [@Nexclipper](https://github.com/NexClipper) +- [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. +- [Sidekick](https://github.com/runsidekick/sidekick) 💲 - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. +- [SuperVisor CPM](https://t0xic0der.medium.com/simply-accessible-container-performance-monitoring-with-supervisor-7fb47f925f3b) [Frontend Service](https://github.com/t0xic0der/supervisor-frontend-service/) and [Driver Service](https://github.com/t0xic0der/supervisor-driver-service/) :construction: - A simple and accessible FOSS container performance monitoring service written in Python by [@t0xic0der](https://github.com/t0xic0der/) +- [SwarmAlert](https://github.com/gpulido/SwarmAlert) - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. +- [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. +- [Zabbix Docker](https://github.com/gomex/docker-zabbix) - Monitor containers automatically using zabbix LLD feature. ### Networking From ea0cc3c85cb5d5cd46e408b9d588340de331b76b Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Wed, 2 Nov 2022 20:10:58 +0300 Subject: [PATCH 061/327] added dockerdl (#1029) * added dockerdl Deep Learning Docker Image Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f1efe8a6e..7faddda9c 100644 --- a/README.md +++ b/README.md @@ -621,6 +621,7 @@ Services to securely store your Docker images. - [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer) - [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant) by [@shyiko](https://github.com/shyiko) - [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. +- [DockerDL](https://github.com/matifali/dockerdl) - Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. - [Dusty](https://github.com/gamechanger/dusty) - Managed Docker development environments on OS X - [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE - [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [@EnvCLI](https://github.com/EnvCLI) From 2193ea5da130f8e637374a83dd9f7cb0e27882cb Mon Sep 17 00:00:00 2001 From: Andreas Gebhardt Date: Wed, 2 Nov 2022 20:37:11 +0100 Subject: [PATCH 062/327] some improvements (#1030) * update GitHub Actions > Node.js 12 actions are deprecated. For more information see: > https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. > Please update the following actions to use Node.js 16: actions/checkout, > actions/setup-node, actions/cache, actions/checkout * show location in output if URL is redirected --- .github/workflows/pull_request.yml | 6 +++--- tests/common.mjs | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 1572d9be9..5ceb5540f 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -9,12 +9,12 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f - - uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d + - uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 + - uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 with: node-version: 12 - - uses: actions/cache@0781355a23dac32fd3bac414512f4b903437991a + - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 id: cache with: path: ~/.npm diff --git a/tests/common.mjs b/tests/common.mjs index add834deb..c8338ee63 100644 --- a/tests/common.mjs +++ b/tests/common.mjs @@ -1,8 +1,9 @@ import fetch from 'node-fetch'; +import { isRedirect } from 'node-fetch'; import {readFileSync} from 'fs'; const LINKS_OPTIONS = { - redirect: 'error', + redirect: 'manual', headers: { 'Content-Type': 'application/json', 'user-agent': @@ -56,8 +57,9 @@ const partition = (arr, func) => { async function fetch_link(url) { try { - const { ok, statusText, redirected } = await fetch(url, LINKS_OPTIONS); - return [url, { ok, status: statusText, redirected }]; + const { headers, ok, status, statusText } = await fetch(url, LINKS_OPTIONS); + const redirect = isRedirect(status) ? { redirect: { src: url, dst: headers.get("location") } } : {}; + return [url, { ok, status: statusText, ...redirect }]; } catch (error) { return [url, { ok: false, status: error.message }]; } From a9ecee41fb5769cc73cdf4e11af02ee3c3a43790 Mon Sep 17 00:00:00 2001 From: Andreas Gebhardt Date: Thu, 3 Nov 2022 20:39:18 +0100 Subject: [PATCH 063/327] run pull request check(s) on Node.js v18 (#1031) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lgtm 👍 --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 5ceb5540f..918058584 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 - uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 with: - node-version: 12 + node-version: 18 - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 id: cache From dff8914e1741302f85bc08181216c3789343fe9b Mon Sep 17 00:00:00 2001 From: Andreas Gebhardt Date: Sat, 5 Nov 2022 00:44:07 +0100 Subject: [PATCH 064/327] update redirected URLs (#1032) --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7faddda9c..5c7b797df 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] - [Running a Legacy ASP.NET App in a Windows Container](https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container/) Steps for Dockerizing a legacy ASP.NET app and running as a Windows container - [Windows Containers and Docker: The 101](https://www.youtube.com/watch?v=N7SG2wEyQtM) :movie_camera: - A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps -- [Windows Containers Quick Start](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/) Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016 +- [Windows Containers Quick Start](https://learn.microsoft.com/en-us/virtualization/windowscontainers/about/) Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016 --- @@ -208,7 +208,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Dozzle](https://github.com/amir20/dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) - [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands - [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) -- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] +- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] - [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. - [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor by [@vegasbrianc][vegasbrianc] - [LogJam](https://github.com/gocardless/logjam) - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by [@gocardless](https://github.com/gocardless) @@ -435,7 +435,7 @@ Native desktop applications for managing and montoring docker hosts and clusters ### Base Tools -Tools and applications that are either installed inside containers or designed to be run as a [sidecar](https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar) +Tools and applications that are either installed inside containers or designed to be run as a [sidecar](https://learn.microsoft.com/en-us/azure/architecture/patterns/sidecar) - [amicontained](https://github.com/genuinetools/amicontained) - Container introspection tool. Find out what container runtime is being used as well as features available by [@genuinetools][genuinetools] - [autodock](https://github.com/prologic/autodock) - Daemon for Docker Automation by [@prologic](https://github.com/prologic) @@ -480,7 +480,7 @@ Applications designed to help or simplify building **new** images - [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder by [@genuinetools][genuinetools] - [kaniko](https://github.com/GoogleContainerTools/kaniko) - Build Container Images In Kubernetes. By [@GoogleContainerTools][googlecontainertools] - [makisu](https://github.com/uber/makisu) - Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber) -- [packer](https://www.packer.io/plugins/builders/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible +- [packer](https://developer.hashicorp.com/packer/plugins/builders/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible - [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images by [@duedil-ltd](https://github.com/duedil-ltd) - [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. - [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi) @@ -531,7 +531,7 @@ Examples by: Services to securely store your Docker images. - [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. -- [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/services/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource +- [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource - [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans) - [cleanreg](https://github.com/hcguersoy/cleanreg) - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC by [@hcguersoy](https://github.com/hcguersoy) - [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/docker-registry/) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. @@ -680,7 +680,7 @@ Services to securely store your Docker images. - [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM - [Turbo](https://github.com/ramitsurana/turbo) - Simple and Powerful utility for docker. By [@ramitsurana][ramitsurana] - [udocker](https://github.com/indigo-dc/udocker) - A tool to execute simple docker containers in batch or interactive systems without root privileges by [@inidigo-dc](https://github.com/indigo-dc) -- [Vagrant - Docker provider](https://www.vagrantup.com/docs/providers/docker/basics) - Good starting point is [vagrant-docker-example](https://github.com/bubenkoff/vagrant-docker-example) by [@bubenkoff](https://github.com/bubenkoff) +- [Vagrant - Docker provider](https://developer.hashicorp.com/vagrant/docs/providers/docker/basics) - Good starting point is [vagrant-docker-example](https://github.com/bubenkoff/vagrant-docker-example) by [@bubenkoff](https://github.com/bubenkoff) ## Services based on Docker (mostly :heavy_dollar_sign:) @@ -697,7 +697,7 @@ Services to securely store your Docker images. - [Amazon ECS](https://aws.amazon.com/ecs/) :heavy_dollar_sign: - A management service on EC2 that supports Docker containers. - [Appfleet](https://appfleet.com/) :heavy_dollar_sign: - Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency. -- [Azure AKS](https://azure.microsoft.com/en-us/services/kubernetes-service/) :heavy_dollar_sign: - Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. +- [Azure AKS](https://azure.microsoft.com/en-us/products/kubernetes-service/) :heavy_dollar_sign: - Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. - [Cloud 66](https://www.cloud66.com) :heavy_dollar_sign: - Full-stack hosted container management as a service - [Dockhero](https://dockhero.io/) :heavy_dollar_sign: - Dockhero is a Heroku add-on which turns a Docker image into a microservice attached to the Heroku app. Currently in beta. - [Giant Swarm](https://www.giantswarm.io/) :heavy_dollar_sign: - Simple microservice infrastructure. Deploy your containers in seconds. @@ -854,7 +854,7 @@ Services to securely store your Docker images. [deepfence]: https://github.com/deepfence [distribution]: https://github.com/docker/distribution [docker-flow]: https://github.com/docker-flow -[docker-for-windows]: https://docs.docker.com/docker-for-windows/ +[docker-for-windows]: https://docs.docker.com/desktop/install/windows-install/ [docker]: https://github.com/docker [editreadme]: https://github.com/veggiemonk/awesome-docker/edit/master/README.md [fgrehm]: https://github.com/fgrehm From 53af03f35fe5d87b8273f841ac0e022fb67fab3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Istv=C3=A1n=20F=C3=B6ldh=C3=A1zi?= Date: Sat, 5 Nov 2022 00:44:58 +0100 Subject: [PATCH 065/327] Mark some cli tools dead (#1034) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5c7b797df..61c6fe3cc 100644 --- a/README.md +++ b/README.md @@ -385,18 +385,18 @@ Native desktop applications for managing and montoring docker hosts and clusters - [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [@exdx](https://github.com/exdx) - [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries by [@mayflower](https://github.com/mayflower) - [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck) -- [dockersql](https://github.com/crosbymichael/dockersql) - A command line interface to query Docker using SQL by [@crosbymichael](https://github.com/crosbymichael) +- [dockersql](https://github.com/crosbymichael/dockersql) - :skull: A command line interface to query Docker using SQL by [@crosbymichael](https://github.com/crosbymichael) - [DVM](https://github.com/howtowhale/dvm) - Docker version manager by [@howtowhale](https://github.com/howtowhale) - [goinside](https://github.com/iamsoorena/goinside) - Get inside a running docker container easily. by [@iamsoorena](https://github.com/iamsoorena) - [ns-enter](https://github.com/jpetazzo/nsenter) - :skull: no more ssh, enter name spaces of container by [@jpetazzo][jpetazzo] - [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects by [@g31s](g31s) - [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. by [@shiwaforce](https://github.com/shiwaforce) -- [reg](https://github.com/genuinetools/reg) - Docker registry v2 command line client by [@genuinetools][genuinetools] +- [reg](https://github.com/genuinetools/reg) - :skull: Docker registry v2 command line client by [@genuinetools][genuinetools] - [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments, by [@JonathonReinhart](https://github.com/JonathonReinhart) - [skopeo](https://github.com/containers/skopeo) - Work with remote images registries - retrieving information, images, signing content by [@containers][containers] - [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [@segersniels](https://github.com/segersniels) - [tsaotun](https://github.com/qazbnm456/tsaotun) - Python based Assistance for Docker by [@qazbnm456](https://github.com/qazbnm456) -- [wharfee](https://github.com/j-bennet/wharfee) - Autocompletion and syntax highlighting for Docker commands. by [@j-bennet](https://github.com/j-bennet) +- [wharfee](https://github.com/j-bennet/wharfee) - :skull: Autocompletion and syntax highlighting for Docker commands. by [@j-bennet](https://github.com/j-bennet) ##### Other From 0614608f546bd2e3cb28d36ccc0db77d54d5a7ba Mon Sep 17 00:00:00 2001 From: Matti Paksula Date: Wed, 16 Nov 2022 19:40:08 +0200 Subject: [PATCH 066/327] flynn dead (#1037) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 61c6fe3cc..5e15520b3 100644 --- a/README.md +++ b/README.md @@ -264,7 +264,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [@progrium][progrium]) - [Empire](https://github.com/remind101/empire) - A PaaS built on top of Amazon EC2 Container Service (ECS) - [Exoframe](https://github.com/exoframejs/exoframe) - A self-hosted tool that allows simple one-command deployments using Docker -- [Flynn](https://github.com/flynn/flynn) - A next generation open source platform as a service +- [Flynn](https://github.com/flynn/flynn) :skull: - A next generation open source platform as a service - [Hephy Workflow](https://github.com/teamhephy/workflow) - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow) - [Krane](https://github.com/krane/krane) - Toolset for managing container workloads on remote servers - [Nanobox](https://github.com/nanobox-io/nanobox) :heavy_dollar_sign: - An application development platform that creates local environments that can then be deployed and scaled in the cloud. From 325f715595c75461b901394d86608fb01ad0b86b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 18:41:37 +0100 Subject: [PATCH 067/327] Bump node-fetch from 3.2.10 to 3.3.0 (#1035) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.2.10 to 3.3.0. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.2.10...v3.3.0) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7be2b87f9..3268d7d41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.10", + "node-fetch": "3.3.0", "rimraf": "3.0.2", "showdown": "^2.1.0" } @@ -334,9 +334,9 @@ } }, "node_modules/node-fetch": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", - "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", + "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -671,9 +671,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz", - "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", + "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index 2415e1c4b..289d370f1 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "10.1.0", - "node-fetch": "3.2.10", + "node-fetch": "3.3.0", "rimraf": "3.0.2", "showdown": "^2.1.0" } From b41c57072c8d557679c820966b62a1350f23dbef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 18:48:56 +0100 Subject: [PATCH 068/327] Bump minimatch from 3.0.4 to 3.1.2 (#1038) Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2. - [Release notes](https://github.com/isaacs/minimatch/releases) - [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2) --- updated-dependencies: - dependency-name: minimatch dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3268d7d41..7f1388487 100644 --- a/package-lock.json +++ b/package-lock.json @@ -305,9 +305,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -658,9 +658,9 @@ } }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } From de706c67f35b6713568922ea00683dcfc7931e32 Mon Sep 17 00:00:00 2001 From: Aaron Batilo Date: Thu, 17 Nov 2022 11:28:50 -0700 Subject: [PATCH 069/327] Include Depot.dev under CI/CD section (#1039) * Include Depot.dev under CI/CD section I recently came across https://depot.dev and my builds went from being a few minutes to running in under 30 seconds. It feels like magic and I think should definitely be on a list of awesome Docker related projects. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5e15520b3..fa46c2b5e 100644 --- a/README.md +++ b/README.md @@ -584,6 +584,7 @@ Services to securely store your Docker images. - [Buddy :heavy_dollar_sign:](https://buddy.works) - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. - [Captain](https://github.com/harbur/captain) - Convert your Git workflow to Docker containers ready for Continuous Delivery by [@harbur](https://github.com/harbur). - [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources by [@caicloud](https://github.com/caicloud). +- [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). - [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max](crazy-max). - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. - [Dockupdater](https://github.com/dockupdater/dockupdater) - Automatically keep your docker services and your docker containers up-to-date From de5899b9c806ed33ef9cd6949c8f75671c931f1d Mon Sep 17 00:00:00 2001 From: Vinay Khatri Date: Sat, 26 Nov 2022 04:40:17 +0530 Subject: [PATCH 070/327] Add a new Docker tutorial (#1033) * Add a new Docker tutorial * Latest Docker tutorial (Sorted in alphabetical order) * Deleted the repeated entry --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index fa46c2b5e..93039cdb1 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker Documentation](https://docs.docker.com/): the official documentation. - [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. - [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. +- [Docker Latest Tutorial](https://www.techgeekbuzz.com/tutorial/docker/what-is-docker/) — This is a series of latest docker tutorial, where you can learn what is docker, docker lifecycle, how to run Nginx Web Server in Docker?, how to run mysql on docker container, how to use Python on doceker and many other important topics. - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: - [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. @@ -111,6 +112,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This spanish guide contains the use of basic docker commands with real life examples. - [Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology. - [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. + **Cheatsheets** by From a7dd4ead8f70aacbc82f0c488932a67029185efe Mon Sep 17 00:00:00 2001 From: Charles SENGES Date: Sat, 26 Nov 2022 00:17:55 +0100 Subject: [PATCH 071/327] chore: add kitt as Development Environment tool (#1036) Co-authored-by: csenges --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 93039cdb1..1ec454992 100644 --- a/README.md +++ b/README.md @@ -631,6 +631,7 @@ Services to securely store your Docker images. - [footloose](https://github.com/weaveworks/footloose) - Spin containers that look like Virtual Machines - By [@dlespiau](https://github.com/dlespiau) - [forward2docker](https://github.com/bsideup/forward2docker) :skull: - Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM by [@bsideup](https://github.com/bsideup) - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. +- [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [@senges](https://github.com/senges) - [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://thinktandem.io/) - [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments by [@tailhook](https://github.com/tailhook/) - [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com) From 97a926586ab29f902bbe5260d672f9509ce537ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Dec 2022 23:00:38 +0100 Subject: [PATCH 072/327] Bump fs-extra from 10.1.0 to 11.1.0 (#1041) Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 10.1.0 to 11.1.0. - [Release notes](https://github.com/jprichardson/node-fs-extra/releases) - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/10.1.0...11.1.0) --- updated-dependencies: - dependency-name: fs-extra dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f1388487..a9e391ac0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", - "fs-extra": "10.1.0", + "fs-extra": "11.1.0", "node-fetch": "3.3.0", "rimraf": "3.0.2", "showdown": "^2.1.0" @@ -220,16 +220,16 @@ } }, "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/fs.realpath": { @@ -591,9 +591,9 @@ } }, "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/package.json b/package.json index 289d370f1..0eabbaf82 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", - "fs-extra": "10.1.0", + "fs-extra": "11.1.0", "node-fetch": "3.3.0", "rimraf": "3.0.2", "showdown": "^2.1.0" From 4bba32b069dfc3d95479cf95ab3a3a7aaf92427d Mon Sep 17 00:00:00 2001 From: Liran Tal Date: Wed, 4 Jan 2023 11:58:52 +0200 Subject: [PATCH 073/327] docs: update resources with docker security guidelines for building Node.js images (#1042) * docs: update resources with docker security guidelines for building Node.js images Adding a new resource to the security learning section: `10 best practices to containerize Node.js web applications with Docker` which has been acknowledged by OWASP and other Docker community champions * docs: link to snyk.io's blog on containerizing Node.js docker images best practices --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1ec454992..9f9b3565d 100644 --- a/README.md +++ b/README.md @@ -788,6 +788,7 @@ Services to securely store your Docker images. - [Ten Docker Image Security Best Practices Cheat Sheet](https://snyk.io/blog/10-docker-image-security-best-practices/) - [Top ten most popular docker images each contain at least 30 vulnerabilities](https://snyk.io/blog/top-ten-most-popular-docker-images-each-contain-at-least-30-vulnerabilities/) - [Tuning Docker with the newest security enhancements](https://opensource.com/business/15/3/docker-security-tuning) +- [10 best practices to containerize Node.js web applications with Docker](https://snyk.io/blog/10-best-practices-to-containerize-nodejs-web-applications-with-docker/) ## Videos From 7224c0be6ddae526204cb3be3b7228135a123117 Mon Sep 17 00:00:00 2001 From: Liran Tal Date: Wed, 4 Jan 2023 17:06:57 +0200 Subject: [PATCH 074/327] docs: fixing broken and permanent redirect links (#1043) --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 9f9b3565d..ef97370ff 100644 --- a/README.md +++ b/README.md @@ -317,7 +317,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP) - [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) :heavy_dollar_sign: - (previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. - [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. -- [Sysdig Secure](https://sysdig.com/products/secure/runtime-security/) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. +- [Sysdig Secure](https://sysdig.com/use-cases/cloud-threat-detection-and-response/) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. - [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) :heavy_dollar_sign: - Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. - [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). @@ -845,8 +845,6 @@ Services to securely store your Docker images. ## Contributor over time -[![Contributor over time](https://api7.ai/contributor-graph?chart=contributorOverTime&repo=veggiemonk/awesome-docker) - [contributing]: https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md [akito]: https://github.com/theAkito [calico]: https://github.com/projectcalico/calico From 57c1fdff5e7ec8c849ec9588efdbccf4ee1c6c85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Jan 2023 14:40:02 +0100 Subject: [PATCH 075/327] Bump rimraf from 3.0.2 to 4.0.4 (#1044) Bumps [rimraf](https://github.com/isaacs/rimraf) from 3.0.2 to 4.0.4. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v3.0.2...v4.0.4) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 191 +++------------------------------------------- package.json | 2 +- 2 files changed, 12 insertions(+), 181 deletions(-) diff --git a/package-lock.json b/package-lock.json index a9e391ac0..0d972b301 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,29 +13,15 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "3.0.2", + "rimraf": "4.0.4", "showdown": "^2.1.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", @@ -80,11 +66,6 @@ "node": "^12.20.0 || >=14" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -232,30 +213,6 @@ "node": ">=14.14" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -279,20 +236,6 @@ "entities": "^4.3.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -304,17 +247,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -361,14 +293,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/parse5": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", @@ -392,23 +316,15 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.0.4.tgz", + "integrity": "sha512-R0hoVr9xTwemarQjoWlNt/nb5dEGVTBhVdkRmEX2zEkT8T6onH0XKiGjuaC7rNNj/gYzY2p4NVRJ3sjO1ascHQ==", "bin": { - "rimraf": "bin.js" + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -444,33 +360,14 @@ "engines": { "node": ">= 8" } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } }, "dependencies": { - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", @@ -503,11 +400,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==" }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, "css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -600,24 +492,6 @@ "universalify": "^2.0.0" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -634,20 +508,6 @@ "entities": "^4.3.0" } }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -657,14 +517,6 @@ "universalify": "^2.0.0" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, "node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -688,14 +540,6 @@ "boolbase": "^1.0.0" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, "parse5": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", @@ -713,18 +557,10 @@ "parse5": "^7.0.0" } }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.0.4.tgz", + "integrity": "sha512-R0hoVr9xTwemarQjoWlNt/nb5dEGVTBhVdkRmEX2zEkT8T6onH0XKiGjuaC7rNNj/gYzY2p4NVRJ3sjO1ascHQ==" }, "showdown": { "version": "2.1.0", @@ -743,11 +579,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } } diff --git a/package.json b/package.json index 0eabbaf82..a8a0e8cca 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "3.0.2", + "rimraf": "4.0.4", "showdown": "^2.1.0" } } From 4adaa32634c8ed85404b05e36d71961661414df6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 08:11:59 +0100 Subject: [PATCH 076/327] Bump rimraf from 4.0.4 to 4.1.0 (#1046) Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.0.4 to 4.1.0. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v4.0.4...v4.1.0) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0d972b301..f9ed99208 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.0.4", + "rimraf": "4.1.0", "showdown": "^2.1.0" } }, @@ -317,9 +317,9 @@ } }, "node_modules/rimraf": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.0.4.tgz", - "integrity": "sha512-R0hoVr9xTwemarQjoWlNt/nb5dEGVTBhVdkRmEX2zEkT8T6onH0XKiGjuaC7rNNj/gYzY2p4NVRJ3sjO1ascHQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.0.tgz", + "integrity": "sha512-ZJdkUR5/dRrRJHdcSKJLrpRn6tVjl9ALxd4yrTCxFsMpjQNzwHF6GLqMsuEzEYIXxHlFPDSk21Vr8VPuFBEz0g==", "bin": { "rimraf": "dist/cjs/src/bin.js" }, @@ -558,9 +558,9 @@ } }, "rimraf": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.0.4.tgz", - "integrity": "sha512-R0hoVr9xTwemarQjoWlNt/nb5dEGVTBhVdkRmEX2zEkT8T6onH0XKiGjuaC7rNNj/gYzY2p4NVRJ3sjO1ascHQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.0.tgz", + "integrity": "sha512-ZJdkUR5/dRrRJHdcSKJLrpRn6tVjl9ALxd4yrTCxFsMpjQNzwHF6GLqMsuEzEYIXxHlFPDSk21Vr8VPuFBEz0g==" }, "showdown": { "version": "2.1.0", diff --git a/package.json b/package.json index a8a0e8cca..701eae045 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.0.4", + "rimraf": "4.1.0", "showdown": "^2.1.0" } } From fbd63ea02d489ed0d40237ade203c66a731f7e10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Jan 2023 16:09:22 +0100 Subject: [PATCH 077/327] Bump rimraf from 4.1.0 to 4.1.1 (#1047) Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.1.0 to 4.1.1. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v4.1.0...v4.1.1) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f9ed99208..44ff369bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.1.0", + "rimraf": "4.1.1", "showdown": "^2.1.0" } }, @@ -317,9 +317,9 @@ } }, "node_modules/rimraf": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.0.tgz", - "integrity": "sha512-ZJdkUR5/dRrRJHdcSKJLrpRn6tVjl9ALxd4yrTCxFsMpjQNzwHF6GLqMsuEzEYIXxHlFPDSk21Vr8VPuFBEz0g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.1.tgz", + "integrity": "sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg==", "bin": { "rimraf": "dist/cjs/src/bin.js" }, @@ -558,9 +558,9 @@ } }, "rimraf": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.0.tgz", - "integrity": "sha512-ZJdkUR5/dRrRJHdcSKJLrpRn6tVjl9ALxd4yrTCxFsMpjQNzwHF6GLqMsuEzEYIXxHlFPDSk21Vr8VPuFBEz0g==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.1.tgz", + "integrity": "sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg==" }, "showdown": { "version": "2.1.0", diff --git a/package.json b/package.json index 701eae045..0ead0bec9 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.1.0", + "rimraf": "4.1.1", "showdown": "^2.1.0" } } From df01d9350ac88029f497cd8faeba95d64fa1f875 Mon Sep 17 00:00:00 2001 From: Gaius Date: Fri, 20 Jan 2023 15:10:59 +0800 Subject: [PATCH 078/327] feat: add dragonfly to registry (#1048) Signed-off-by: Gaius Signed-off-by: Gaius --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ef97370ff..09d3afd27 100644 --- a/README.md +++ b/README.md @@ -543,6 +543,7 @@ Services to securely store your Docker images. - [Docker Hub](https://hub.docker.com/) provided by Docker Inc. - [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content - [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent by [@netvarun](https://github.com/netvarun/) +- [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. - [GCE Container Registry :heavy_dollar_sign:](https://cloud.google.com/container-registry/) Fast, private Docker image storage on Google Cloud Platform - [GitLab Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/) - Registry focused on using its images in GitLab CI - [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](Sandbox) formerly [VMWare][vmware] From 81844695a89a9b8625cc3b0941f8bc013af9d0a5 Mon Sep 17 00:00:00 2001 From: Andreas Gebhardt Date: Mon, 23 Jan 2023 05:37:25 +0100 Subject: [PATCH 079/327] update redirected URLs (#1049) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 09d3afd27..37aeed08a 100644 --- a/README.md +++ b/README.md @@ -731,9 +731,9 @@ Services to securely store your Docker images. - [Become a Docker Power User with Visual Studio Code](https://www.thebyte.io/become-docker-power-user-with-vs-code) - :heavy_dollar_sign: A training course to help you become a Docker Power user with Visual Studio Code - [Cloud Native Landscape](https://github.com/cncf/landscape) - [Discover Docker courses](https://bestcourses.io/results?q=docker&size=n_20_n) - Easily discover Docker courses from various popular online learning platforms. -- [Docker Certification](https://intellipaat.com/docker-training-course/) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. +- [Docker Certification](https://intellipaat.com/docker-training-course/?US) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. - [Docker Community on Hashnode](https://hashnode.com/n/docker) -- [Docker dev bookmarks](https://www.codever.land/search?q=docker) - use the tag [docker](https://www.codever.land/bookmarks/t/docker) +- [Docker dev bookmarks](https://www.codever.dev/search?q=docker) - use the tag [docker](https://www.codever.dev/bookmarks/t/docker) - [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) - [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) - [Docker Newsletter](https://www.docker.com/newsletter-subscription/) Docker newsletter for regular updates From 2ede779b7f6b2ec522a83999475db032e758d4a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Jan 2023 16:12:35 +0100 Subject: [PATCH 080/327] Bump rimraf from 4.1.1 to 4.1.2 (#1050) Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.1.1 to 4.1.2. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v4.1.1...v4.1.2) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 44ff369bd..d48fa1da4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.1.1", + "rimraf": "4.1.2", "showdown": "^2.1.0" } }, @@ -317,9 +317,9 @@ } }, "node_modules/rimraf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.1.tgz", - "integrity": "sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", + "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==", "bin": { "rimraf": "dist/cjs/src/bin.js" }, @@ -558,9 +558,9 @@ } }, "rimraf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.1.tgz", - "integrity": "sha512-Z4Y81w8atcvaJuJuBB88VpADRH66okZAuEm+Jtaufa+s7rZmIz+Hik2G53kGaNytE7lsfXyWktTmfVz0H9xuDg==" + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", + "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==" }, "showdown": { "version": "2.1.0", diff --git a/package.json b/package.json index 0ead0bec9..f93dfff2c 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.1.1", + "rimraf": "4.1.2", "showdown": "^2.1.0" } } From e4a0aed4c059419082e38a99ae2f1bd330390a53 Mon Sep 17 00:00:00 2001 From: Karol Musur Date: Sun, 12 Feb 2023 18:10:42 +0100 Subject: [PATCH 081/327] docker rollout - Zero Downtime Deployment for Docker Compose (#1051) * Add docker-rollout * fix: author link * Update README.md * Move docker rollout to Orchestration --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 37aeed08a..7d49559ab 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [clusterdock](https://github.com/clusterdock/clusterdock) - Docker container orchestration to enable the testing of long-running cluster deployments - [Crane](https://github.com/Dataman-Cloud/crane) - Control plane based on docker built-in swarm [@Dataman-Cloud](https://github.com/Dataman-Cloud) - [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [@docker-flow][docker-flow] +- [docker rollout](https://github.com/Wowu/docker-rollout) - Zero downtime deployment for Docker Compose services by [@Wowu](https://github.com/Wowu) - [gantryd](https://github.com/DevTable/gantryd) :skull: - A framework for easy management of docker-based components across machines by [@DevTable](https://github.com/DevTable) - [Haven](https://github.com/codeabovelab/haven-platform) - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [@codeabovelab](https://github.com/codeabovelab) - [Helios](https://github.com/spotify/helios) :skull: - A simple platform for deploying and managing containers across an entire fleet of servers by [@spotify][spotify] From 82ae387a529e5b91b5e381c92c5a1ac54680cf3d Mon Sep 17 00:00:00 2001 From: Alexey Shokov Date: Sat, 18 Feb 2023 23:10:02 +0100 Subject: [PATCH 082/327] dockerize: supported version (#1052) * dockerize: supported version * chore: contributors list --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7d49559ab..1bd3a54a6 100644 --- a/README.md +++ b/README.md @@ -448,7 +448,7 @@ Tools and applications that are either installed inside containers or designed t - [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system, by [@GoogleContainerTools][googlecontainertools] - [docker-alpine](https://github.com/gliderlabs/docker-alpine) - A super small Docker base image _(5MB)_ using Alpine Linux by [@gliderlabs][gliderlabs] - [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data by [@jwilder][jwilder] -- [dockerize](https://github.com/jwilder/dockerize) - Utility to simplify running applications in docker containers by [@jwilder][jwilder] +- [dockerize](https://github.com/powerman/dockerize) - Utility to simplify running applications in docker containers by [@jwilder][jwilder], [@powerman][powerman] - [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool) by [@tianon](https://github.com/tianon) - [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container by [@sindresorhus][sindresorhus] - [lstags](https://github.com/ivanilves/lstags) - sync Docker images across registries by [@ivanilves](https://github.com/ivanilves) @@ -879,6 +879,7 @@ Services to securely store your Docker images. [nginxproxy]: https://github.com/nginx-proxy/nginx-proxy [openshift]: https://www.okd.io [oracle]: https://github.com/oracle +[powerman]: https://github.com/powerman [progrium]: https://github.com/progrium [ramitsurana]: https://github.com/ramitsurana [rancher]: https://github.com/rancher From 44ad9a75037a383415e6c9c60c9d7e16e5f7db27 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 Mar 2023 10:07:13 +0100 Subject: [PATCH 083/327] Bump rimraf from 4.1.2 to 4.1.3 (#1053) Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v4.1.2...v4.1.3) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index d48fa1da4..54a4adc8c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.1.2", + "rimraf": "4.1.3", "showdown": "^2.1.0" } }, @@ -317,9 +317,9 @@ } }, "node_modules/rimraf": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", - "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.3.tgz", + "integrity": "sha512-iyzalDLo3l5FZxxaIGUY7xI4Bf90Xt7pCipc1Mr7RsdU7H3538z+M0tlsUDrz0aHeGS9uNqiKHUJyTewwRP91Q==", "bin": { "rimraf": "dist/cjs/src/bin.js" }, @@ -558,9 +558,9 @@ } }, "rimraf": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", - "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.3.tgz", + "integrity": "sha512-iyzalDLo3l5FZxxaIGUY7xI4Bf90Xt7pCipc1Mr7RsdU7H3538z+M0tlsUDrz0aHeGS9uNqiKHUJyTewwRP91Q==" }, "showdown": { "version": "2.1.0", diff --git a/package.json b/package.json index f93dfff2c..5dbdd84a5 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.1.2", + "rimraf": "4.1.3", "showdown": "^2.1.0" } } From 2cd5fceeab07c518831fe3e2fedb1b7f3a747942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Molinero=20Fern=C3=A1ndez?= Date: Tue, 7 Mar 2023 14:56:14 +0100 Subject: [PATCH 084/327] Add CetusGuard to Security (#1055) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1bd3a54a6..13cc4b54c 100644 --- a/README.md +++ b/README.md @@ -304,6 +304,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Anchor Engine](https://github.com/anchore/anchore) - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore) - [Aqua Security](https://www.aquasec.com) :heavy_dollar_sign: - Securing container-based applications from Dev to Production on any platform - [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers by [@genuinetools][genuinetools] +- [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints - [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [@dev-sec](https://github.com/dev-sec) - [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [@bridgecrew](https://github.com/bridgecrewio) - [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [@coreos][coreos] From c77b8ac8be59de04c25bc1ef967958f56c4dd0a7 Mon Sep 17 00:00:00 2001 From: Julien B Date: Wed, 8 Mar 2023 15:00:21 +0100 Subject: [PATCH 085/327] remove broken links for courses --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 13cc4b54c..047676968 100644 --- a/README.md +++ b/README.md @@ -732,7 +732,6 @@ Services to securely store your Docker images. - **[Valuable Docker Links](http://nane.kratzke.pages.mylab.th-luebeck.de/about/blog/2014/08/24/valuable-docker-links/)** High quality articles about docker! **MUST SEE** - [Become a Docker Power User with Visual Studio Code](https://www.thebyte.io/become-docker-power-user-with-vs-code) - :heavy_dollar_sign: A training course to help you become a Docker Power user with Visual Studio Code - [Cloud Native Landscape](https://github.com/cncf/landscape) -- [Discover Docker courses](https://bestcourses.io/results?q=docker&size=n_20_n) - Easily discover Docker courses from various popular online learning platforms. - [Docker Certification](https://intellipaat.com/docker-training-course/?US) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. - [Docker Community on Hashnode](https://hashnode.com/n/docker) - [Docker dev bookmarks](https://www.codever.dev/search?q=docker) - use the tag [docker](https://www.codever.dev/bookmarks/t/docker) From fa1ee13c42d4b6abbbff59d46e67086ddf9625d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 15:02:15 +0100 Subject: [PATCH 086/327] Bump rimraf from 4.1.3 to 4.3.1 (#1057) Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.1.3 to 4.3.1. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v4.1.3...v4.3.1) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 156 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 150 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 54a4adc8c..98f0e5139 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,15 +13,28 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.1.3", + "rimraf": "4.3.1", "showdown": "^2.1.0" } }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", @@ -213,6 +226,28 @@ "node": ">=14.14" } }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/glob": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", + "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -247,6 +282,36 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/minimatch": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", + "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -316,10 +381,28 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/path-scurry": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", + "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "dependencies": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/rimraf": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.3.tgz", - "integrity": "sha512-iyzalDLo3l5FZxxaIGUY7xI4Bf90Xt7pCipc1Mr7RsdU7H3538z+M0tlsUDrz0aHeGS9uNqiKHUJyTewwRP91Q==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.3.1.tgz", + "integrity": "sha512-GfHJHBzFQra23IxDzIdBqhOWfbtdgS1/dCHrDy+yvhpoJY5TdwdT28oWaHWfRpKFDLd3GZnGTx6Mlt4+anbsxQ==", + "dependencies": { + "glob": "^9.2.0" + }, "bin": { "rimraf": "dist/cjs/src/bin.js" }, @@ -363,11 +446,24 @@ } }, "dependencies": { + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, "cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", @@ -492,6 +588,22 @@ "universalify": "^2.0.0" } }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "glob": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", + "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "requires": { + "fs.realpath": "^1.0.0", + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + } + }, "graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -517,6 +629,24 @@ "universalify": "^2.0.0" } }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + }, + "minimatch": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", + "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + }, "node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -557,10 +687,22 @@ "parse5": "^7.0.0" } }, + "path-scurry": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", + "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "requires": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + } + }, "rimraf": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.3.tgz", - "integrity": "sha512-iyzalDLo3l5FZxxaIGUY7xI4Bf90Xt7pCipc1Mr7RsdU7H3538z+M0tlsUDrz0aHeGS9uNqiKHUJyTewwRP91Q==" + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.3.1.tgz", + "integrity": "sha512-GfHJHBzFQra23IxDzIdBqhOWfbtdgS1/dCHrDy+yvhpoJY5TdwdT28oWaHWfRpKFDLd3GZnGTx6Mlt4+anbsxQ==", + "requires": { + "glob": "^9.2.0" + } }, "showdown": { "version": "2.1.0", diff --git a/package.json b/package.json index 5dbdd84a5..b096f3a6e 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.1.3", + "rimraf": "4.3.1", "showdown": "^2.1.0" } } From 2155d40a765aea2c3ee2109ef13acc46709ad91a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 12:37:11 +0100 Subject: [PATCH 087/327] Bump rimraf from 4.3.1 to 4.4.0 (#1058) Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.3.1 to 4.4.0. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v4.3.1...v4.4.0) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98f0e5139..51b87f9e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.3.1", + "rimraf": "4.4.0", "showdown": "^2.1.0" } }, @@ -397,9 +397,9 @@ } }, "node_modules/rimraf": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.3.1.tgz", - "integrity": "sha512-GfHJHBzFQra23IxDzIdBqhOWfbtdgS1/dCHrDy+yvhpoJY5TdwdT28oWaHWfRpKFDLd3GZnGTx6Mlt4+anbsxQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", + "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", "dependencies": { "glob": "^9.2.0" }, @@ -697,9 +697,9 @@ } }, "rimraf": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.3.1.tgz", - "integrity": "sha512-GfHJHBzFQra23IxDzIdBqhOWfbtdgS1/dCHrDy+yvhpoJY5TdwdT28oWaHWfRpKFDLd3GZnGTx6Mlt4+anbsxQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", + "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", "requires": { "glob": "^9.2.0" } diff --git a/package.json b/package.json index b096f3a6e..faba066b2 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.0", "node-fetch": "3.3.0", - "rimraf": "4.3.1", + "rimraf": "4.4.0", "showdown": "^2.1.0" } } From 2c806373fcc86ac803cc564280be9cca0f1dae83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 07:27:57 +0100 Subject: [PATCH 088/327] Bump node-fetch from 3.3.0 to 3.3.1 (#1059) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.3.0 to 3.3.1. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.3.0...v3.3.1) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 51b87f9e7..720931d00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "11.1.0", - "node-fetch": "3.3.0", + "node-fetch": "3.3.1", "rimraf": "4.4.0", "showdown": "^2.1.0" } @@ -331,9 +331,9 @@ } }, "node_modules/node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -653,9 +653,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index faba066b2..2357d7204 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "11.1.0", - "node-fetch": "3.3.0", + "node-fetch": "3.3.1", "rimraf": "4.4.0", "showdown": "^2.1.0" } From f8b8a9a168f0cbf29326fa85560a21b3fdcc47e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 07:19:21 +0100 Subject: [PATCH 089/327] Bump fs-extra from 11.1.0 to 11.1.1 (#1060) Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.1.0 to 11.1.1. - [Release notes](https://github.com/jprichardson/node-fs-extra/releases) - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.1.0...11.1.1) --- updated-dependencies: - dependency-name: fs-extra dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 720931d00..431235655 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", - "fs-extra": "11.1.0", + "fs-extra": "11.1.1", "node-fetch": "3.3.1", "rimraf": "4.4.0", "showdown": "^2.1.0" @@ -214,9 +214,9 @@ } }, "node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -579,9 +579,9 @@ } }, "fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/package.json b/package.json index 2357d7204..00544f50a 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", - "fs-extra": "11.1.0", + "fs-extra": "11.1.1", "node-fetch": "3.3.1", "rimraf": "4.4.0", "showdown": "^2.1.0" From 906c3cb2c5866e04acbf7994e9bc55f72ae59029 Mon Sep 17 00:00:00 2001 From: Arjoonn Date: Wed, 22 Mar 2023 23:01:58 +0530 Subject: [PATCH 090/327] Add Jaypore CI to list of CICD tools (#1061) * Update README.md * Update README.md Changed the link to github link since PR template mentioned that. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 047676968..97bf2ebf6 100644 --- a/README.md +++ b/README.md @@ -596,6 +596,7 @@ Services to securely store your Docker images. - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. - [GOCD-Docker](https://github.com/gocd/gocd-docker) :skull: - Go Server and Agent in docker containers to provision. +- [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. - [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed by [@Kraken-CI](https://github.com/Kraken-CI). - [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) - Continuous deployment of a microservices application. - [mu](https://github.com/stelligent/mu) - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [@Stelligent](https://github.com/stelligent) From 8dc117763fb9f3f0d364f83c9baf8dab0600c64e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Mar 2023 21:22:52 +0100 Subject: [PATCH 091/327] Bump rimraf from 4.4.0 to 4.4.1 (#1062) Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.4.0 to 4.4.1. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v4.4.0...v4.4.1) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 431235655..1950a2bbe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.1", - "rimraf": "4.4.0", + "rimraf": "4.4.1", "showdown": "^2.1.0" } }, @@ -397,9 +397,9 @@ } }, "node_modules/rimraf": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", - "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "dependencies": { "glob": "^9.2.0" }, @@ -697,9 +697,9 @@ } }, "rimraf": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.0.tgz", - "integrity": "sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "requires": { "glob": "^9.2.0" } diff --git a/package.json b/package.json index 00544f50a..1ab9895db 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.1", - "rimraf": "4.4.0", + "rimraf": "4.4.1", "showdown": "^2.1.0" } } From 3164d6df94f60d7d3d11629241c111ed416eb8eb Mon Sep 17 00:00:00 2001 From: Derek Lee <103802618+leeederek@users.noreply.github.com> Date: Thu, 23 Mar 2023 18:07:35 -0300 Subject: [PATCH 092/327] Add Kurtosis to list of testing tools (#1063) * Add Kurtosis to list of testing tools Hey team! We'd like to add Kurtosis to the list of testing tools. *What is Kurtosis?* Kurtosis is a built system for multi-(docker)container test environments. *What is Kurtosis for?* Kurtosis is for engineers who dev against large distributed systems/applications and who experience pain when trying to configure multi (Docker) container environments for their testing workflows. Kurtosis can be used locally without the need to sign up and is free-forever under a source-available license (BSL). We have: - Linked out to our Github: https://github.com/kurtosis-tech/kurtosis - [A README on our GIthub](https://github.com/kurtosis-tech/kurtosis#readme) - Content about how to setup/install the project (in our [Github README](https://github.com/kurtosis-tech/kurtosis#to-start-using-kurtosis) and on our [docs](https://docs.kurtosis.com/install)), - Lots of great examples on: [Github](https://github.com/kurtosis-tech/awesome-kurtosis#awesome-kurtosis-) and in our [docs](https://docs.kurtosis.com/). I followed the [Quality Standards](https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md#quality-standards) you guys wrote, but please let me know if you've got any questions about Kurtosis or if we missed something! Thanks * add "composable" to description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 97bf2ebf6..d94797449 100644 --- a/README.md +++ b/README.md @@ -669,6 +669,7 @@ Services to securely store your Docker images. - [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [@zuazo](https://github.com/zuazo) - [Dockunit](https://github.com/dockunit/platform) :skull: - Docker based integration tests. A simple Node based utility for running Docker based unit tests. By [@dockunit](https://github.com/dockunit) - [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [@chef](https://github.com/chef) +- [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/) - [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. - [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [@alexei-led](https://github.com/alexei-led) From cca015b2c2742a810abcadd2d9b9be0792f67d97 Mon Sep 17 00:00:00 2001 From: Tobias Holst Date: Fri, 24 Mar 2023 23:42:31 +0100 Subject: [PATCH 093/327] Sloppy.io is shutting down on the 15th of April 2023 (#1064) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index d94797449..948112fee 100644 --- a/README.md +++ b/README.md @@ -714,7 +714,6 @@ Services to securely store your Docker images. - [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) :heavy_dollar_sign: - Integrated platform for data and containers built on Apache Mesos by [@mesosphere](https://d2iq.com) - [Red Hat CodeReady Workspaces](https://developers.redhat.com/products/openshift-dev-spaces/overview) - A collaborative Kubernetes-native solution for rapid application development that delivers consistent developer environments on Red Hat OpenShift to allow anyone with a browser to contribute code in under two minutes. - [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) :heavy_dollar_sign: - Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud -- [Sloppy.io](https://sloppy.io/en/) :heavy_dollar_sign: - all-in-one solution for container deployment and hosting – made and hosted in Germany - [Triton](https://www.joyent.com/) :heavy_dollar_sign: - Elastic container-native infrastructure by Joyent. - [Virtuozzo Application Platform](https://www.virtuozzo.com/application-platform-partners/) :heavy_dollar_sign: - Deploy and manage your projects with turnkey PaaS across a wide network of reliable service providers From 28ff6c5718e9a9e52b2ba9a1083c5fef72646b70 Mon Sep 17 00:00:00 2001 From: Fabien D Date: Mon, 3 Apr 2023 09:24:56 +0200 Subject: [PATCH 094/327] Add dctl as cli tools (#1066) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 948112fee..8d44e7ae1 100644 --- a/README.md +++ b/README.md @@ -387,6 +387,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [captain](https://github.com/jenssegers/captain) - Easily start and stop docker compose projects from any directory. By [@jenssegers](https://github.com/jenssegers) - [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [@Falldog](https://github.com/Falldog) - [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [@exdx](https://github.com/exdx) +- [dctl](https://github.com/FabienD/docker-stack) - dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD) - [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries by [@mayflower](https://github.com/mayflower) - [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck) - [dockersql](https://github.com/crosbymichael/dockersql) - :skull: A command line interface to query Docker using SQL by [@crosbymichael](https://github.com/crosbymichael) From a61b4fea10bbdc81fc74bcb86cd40a029f2cd651 Mon Sep 17 00:00:00 2001 From: Donal Byrne Date: Sun, 9 Apr 2023 20:37:17 +0200 Subject: [PATCH 095/327] Add EZDC, docker compose test harness, to testing section (#1067) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8d44e7ae1..151b40f5c 100644 --- a/README.md +++ b/README.md @@ -669,6 +669,7 @@ Services to securely store your Docker images. - [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. - [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [@zuazo](https://github.com/zuazo) - [Dockunit](https://github.com/dockunit/platform) :skull: - Docker based integration tests. A simple Node based utility for running Docker based unit tests. By [@dockunit](https://github.com/dockunit) +- [EZDC](https://github.com/lynchborg/ezdc) - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [@byrnedo](https://github.com/byrnedo) - [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [@chef](https://github.com/chef) - [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/) - [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. From ce4efb401389b8615b130c105cf37de36543f5b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Apr 2023 19:56:04 +0200 Subject: [PATCH 096/327] Bump rimraf from 4.4.1 to 5.0.0 (#1068) Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.4.1 to 5.0.0. - [Release notes](https://github.com/isaacs/rimraf/releases) - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v4.4.1...v5.0.0) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 104 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1950a2bbe..f62c96206 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.1", - "rimraf": "4.4.1", + "rimraf": "5.0.0", "showdown": "^2.1.0" } }, @@ -232,14 +232,14 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/glob": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", - "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", + "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", "dependencies": { "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.6.4" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -283,31 +283,31 @@ } }, "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz", + "integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==", "engines": { - "node": ">=12" + "node": ">=16.14" } }, "node_modules/minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -382,26 +382,26 @@ } }, "node_modules/path-scurry": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", - "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", + "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", "dependencies": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" }, "engines": { - "node": ">=14" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", + "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", "dependencies": { - "glob": "^9.2.0" + "glob": "^10.0.0" }, "bin": { "rimraf": "dist/cjs/src/bin.js" @@ -594,14 +594,14 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "glob": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", - "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", + "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", "requires": { "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.6.4" } }, "graceful-fs": { @@ -630,22 +630,22 @@ } }, "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz", + "integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==" }, "minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "requires": { "brace-expansion": "^2.0.1" } }, "minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" }, "node-domexception": { "version": "1.0.0", @@ -688,20 +688,20 @@ } }, "path-scurry": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", - "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", + "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", "requires": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" } }, "rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", + "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", "requires": { - "glob": "^9.2.0" + "glob": "^10.0.0" } }, "showdown": { diff --git a/package.json b/package.json index 1ab9895db..4bc1d797f 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.1", - "rimraf": "4.4.1", + "rimraf": "5.0.0", "showdown": "^2.1.0" } } From b9e648b72e10af0779e63b018b68585e9d35c9ae Mon Sep 17 00:00:00 2001 From: Ayooluwa Date: Sat, 15 Apr 2023 14:42:24 +0100 Subject: [PATCH 097/327] Add Better Stack to monitoring services (#1069) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 151b40f5c..6305858d7 100644 --- a/README.md +++ b/README.md @@ -722,6 +722,7 @@ Services to securely store your Docker images. ### Monitoring Services - [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. +- [Better Stack](https://betterstack.com) :heavy_dollar_sign: - A Docker-compatible observability stack that delivers robust log aggregation and uptime monitoring capabilities for various software application. - [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) :heavy_dollar_sign: - Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies) - [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) - [Datadog](https://www.datadoghq.com/) :heavy_dollar_sign: - Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. From 3c0c5f4380985bd49d26d97ba4b0a37b0b5ff1c1 Mon Sep 17 00:00:00 2001 From: Julien B Date: Mon, 17 Apr 2023 12:39:28 +0200 Subject: [PATCH 098/327] fix url monitoring stack (#1070) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6305858d7..72f4832b8 100644 --- a/README.md +++ b/README.md @@ -722,7 +722,7 @@ Services to securely store your Docker images. ### Monitoring Services - [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. -- [Better Stack](https://betterstack.com) :heavy_dollar_sign: - A Docker-compatible observability stack that delivers robust log aggregation and uptime monitoring capabilities for various software application. +- [Better Stack](https://betterstack.com/community/guides/scaling-docker/) :heavy_dollar_sign: - A Docker-compatible observability stack that delivers robust log aggregation and uptime monitoring capabilities for various software application. - [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) :heavy_dollar_sign: - Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies) - [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) - [Datadog](https://www.datadoghq.com/) :heavy_dollar_sign: - Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. From 9ad38c81295f71e6251151a13a2cc34b8c2eca8f Mon Sep 17 00:00:00 2001 From: Giovanni Pecoraro Date: Sun, 30 Apr 2023 18:52:07 +0200 Subject: [PATCH 099/327] Update README.md (#1071) * Update README.md Added Ansible Linux Docker, dvwassl and Rust Universal Compiler. * Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 72f4832b8..2fa03cf54 100644 --- a/README.md +++ b/README.md @@ -235,6 +235,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Orchestration +- [Ansible Linux Docker](https://github.com/Peco602/ansible-linux-docker) - Run Ansible from a Linux container. By [@Peco602][peco602] - [athena](https://github.com/athena-oss/athena) - An automation platform with a plugin architecture that allows you to easily create and share services. - [blimp](https://github.com/tubesandlube/blimp) :skull: - Uses Docker Machine to easily move a container from one Docker host to another, show containers running against all of your hosts, replicate a container across multiple hosts and more by [@defermat](https://github.com/defermat) and [@schvin](https://github.com/schvin) - [CloudSlang](https://github.com/CloudSlang/cloud-slang) - CloudSlang is a workflow engine to create Docker process automation @@ -314,6 +315,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [docker-bench-security](https://github.com/docker/docker-bench-security) - script that checks for dozens of common best-practices around deploying Docker containers in production. By [@docker][docker] - [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions by [@Google][google] - [docker-lock](https://github.com/safe-waters/docker-lock) - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By [@safe-waters][safe-waters] +- [dvwassl](https://github.com/Peco602/dvwassl) - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [@Peco602][peco602] - [KICS](https://github.com/checkmarx/kics) - an infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx) - [notary](https://github.com/theupdateframework/notary) - a server and a client for running and interacting with trusted collections. By [@TUF](https://github.com/theupdateframework) - [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP) @@ -638,6 +640,7 @@ Services to securely store your Docker images. - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. - [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [@senges](https://github.com/senges) - [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://thinktandem.io/) +- [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) - Container solution to compile Rust projects for Linux, macOS and Windows. By [@Peco602][peco602] - [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments by [@tailhook](https://github.com/tailhook/) - [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com) @@ -883,6 +886,7 @@ Services to securely store your Docker images. [nginxproxy]: https://github.com/nginx-proxy/nginx-proxy [openshift]: https://www.okd.io [oracle]: https://github.com/oracle +[peco602]: https://github.com/Peco602 [powerman]: https://github.com/powerman [progrium]: https://github.com/progrium [ramitsurana]: https://github.com/ramitsurana From ffc7afae4cc240b5b6261b243e274737d9a9516b Mon Sep 17 00:00:00 2001 From: Andreas Gebhardt Date: Thu, 18 May 2023 17:54:45 +0200 Subject: [PATCH 100/327] run link check weekly at saturday midnight (#1073) --- .github/workflows/pull_request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 918058584..64bc6025c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -1,9 +1,11 @@ -name: Pull Requests +name: Pull Requests / Weekly QA on: pull_request: branches: - master + schedule: + - cron: '0 0 * * 6' jobs: test: From 4db75c5f8bc558fe5c6db756bf833f385281c3e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 May 2023 09:09:01 +0200 Subject: [PATCH 101/327] Bump rimraf from 5.0.0 to 5.0.1 (#1074) Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.0 to 5.0.1. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v5.0.0...v5.0.1) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 702 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 2 +- 2 files changed, 648 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index f62c96206..4e9ada39a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,10 +13,57 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.1", - "rimraf": "5.0.0", + "rimraf": "5.0.1", "showdown": "^2.1.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -71,6 +118,22 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/commander": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", @@ -79,6 +142,19 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -169,6 +245,16 @@ "resolved": "https://registry.npmjs.org/draftlog/-/draftlog-1.0.13.tgz", "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, "node_modules/entities": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", @@ -202,6 +288,21 @@ "node": "^12.20 || >= 14.13" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -226,20 +327,19 @@ "node": ">=14.14" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, "node_modules/glob": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", - "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz", + "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==", "dependencies": { - "fs.realpath": "^1.0.0", + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.6.4" + "minipass": "^5.0.0 || ^6.0.2", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -271,6 +371,36 @@ "entities": "^4.3.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -283,11 +413,11 @@ } }, "node_modules/lru-cache": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz", - "integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", "engines": { - "node": ">=16.14" + "node": "14 || >=16.14" } }, "node_modules/minimatch": { @@ -305,11 +435,11 @@ } }, "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/node-domexception": { @@ -381,13 +511,21 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, "node_modules/path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", + "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", "dependencies": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -397,11 +535,11 @@ } }, "node_modules/rimraf": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", - "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "dependencies": { - "glob": "^10.0.0" + "glob": "^10.2.5" }, "bin": { "rimraf": "dist/cjs/src/bin.js" @@ -413,6 +551,25 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, "node_modules/showdown": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", @@ -428,6 +585,105 @@ "url": "https://www.paypal.me/tiviesantos" } }, + "node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -443,9 +699,136 @@ "engines": { "node": ">= 8" } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } } }, "dependencies": { + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -491,11 +874,34 @@ "domutils": "^3.0.1" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "commander": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==" }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -556,6 +962,16 @@ "resolved": "https://registry.npmjs.org/draftlog/-/draftlog-1.0.13.tgz", "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, "entities": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", @@ -570,6 +986,15 @@ "web-streams-polyfill": "^3.0.3" } }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, "formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -588,20 +1013,16 @@ "universalify": "^2.0.0" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, "glob": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", - "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz", + "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==", "requires": { - "fs.realpath": "^1.0.0", + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.6.4" + "minipass": "^5.0.0 || ^6.0.2", + "path-scurry": "^1.7.0" } }, "graceful-fs": { @@ -620,6 +1041,25 @@ "entities": "^4.3.0" } }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -630,9 +1070,9 @@ } }, "lru-cache": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz", - "integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==" + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", + "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==" }, "minimatch": { "version": "9.0.0", @@ -643,9 +1083,9 @@ } }, "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==" }, "node-domexception": { "version": "1.0.0", @@ -687,23 +1127,41 @@ "parse5": "^7.0.0" } }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, "path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", + "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", "requires": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.2" } }, "rimraf": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.0.tgz", - "integrity": "sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", + "requires": { + "glob": "^10.2.5" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "requires": { - "glob": "^10.0.0" + "shebang-regex": "^3.0.0" } }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, "showdown": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", @@ -712,6 +1170,74 @@ "commander": "^9.0.0" } }, + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + } + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -721,6 +1247,72 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } } } } diff --git a/package.json b/package.json index 4bc1d797f..7590955ca 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.1", - "rimraf": "5.0.0", + "rimraf": "5.0.1", "showdown": "^2.1.0" } } From f0aa81dd7dc1118a442f379b5cda371310e48c55 Mon Sep 17 00:00:00 2001 From: Andreas Gebhardt Date: Fri, 19 May 2023 11:19:51 +0200 Subject: [PATCH 102/327] Broken hyperlinks (#1075) * remove extinguished projects * fix/update broken mentions See #1072. --- README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2fa03cf54..c049ac923 100644 --- a/README.md +++ b/README.md @@ -445,7 +445,6 @@ Native desktop applications for managing and montoring docker hosts and clusters Tools and applications that are either installed inside containers or designed to be run as a [sidecar](https://learn.microsoft.com/en-us/azure/architecture/patterns/sidecar) - [amicontained](https://github.com/genuinetools/amicontained) - Container introspection tool. Find out what container runtime is being used as well as features available by [@genuinetools][genuinetools] -- [autodock](https://github.com/prologic/autodock) - Daemon for Docker Automation by [@prologic](https://github.com/prologic) - [Chaperone](https://github.com/garywiz/chaperone) - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. by [@garywiz](https://github.com/garywiz) - [ckron](https://github.com/nicomt/ckron) - A cron-style job scheduler for docker, by [@nicomt](https://github.com/nicomt) - [CoreOS][coreos] - Linux for Massive Server Deployments @@ -551,7 +550,7 @@ Services to securely store your Docker images. - [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. - [GCE Container Registry :heavy_dollar_sign:](https://cloud.google.com/container-registry/) Fast, private Docker image storage on Google Cloud Platform - [GitLab Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/) - Registry focused on using its images in GitLab CI -- [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](Sandbox) formerly [VMWare][vmware] +- [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] - [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well - [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. - [Portus](https://github.com/SUSE/Portus) - Authorization service and frontend for Docker registry (v2) by [@SUSE](https://github.com/SUSE) @@ -575,7 +574,7 @@ Services to securely store your Docker images. - [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [@amihaiemil](https://github.com/amihaiemil) - [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images by [@fabric8io](https://github.com/fabric8io) - [Docker-PowerShell](https://github.com/Microsoft/Docker-PowerShell) - PowerShell Module for Docker -- [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API by [@ahmetalpbalkan](ahmetalpbalkan) +- [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API by [@ahmetb](https://github.com/ahmetb) - [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [@rquackenbush](https://github.com/rquackenbush) - [dockerfile-maven](https://github.com/spotify/dockerfile-maven) - A Maven plugin for building and pushing Docker images by [@spotify][spotify] - [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module by [@apocas](https://github.com/apocas) @@ -788,7 +787,6 @@ Services to securely store your Docker images. - [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) by [@tomwillfixit](https://twitter.com/tomwillfixit) - [Docker Secure Deployment Guidelines](https://github.com/AonCyberLabs/Docker-Secure-Deployment-Guidelines) - [Docker Security - Quick Reference](https://binarymist.io/publication/docker-security/) -- [Docker Security Cheat Sheet](https://github.com/konstruktoid/Docker/blob/master/Security/CheatSheet.adoc) - [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://fr.slideshare.net/MichaelBoelen/docker-security-are-your-containers-tightly-secured-to-the-ship) - [How CVE's are handled on Offical Docker Images](https://github.com/docker-library/official-images/issues/1448) - [Lynis is an open source security auditing tool including Docker auditing](https://cisofy.com/lynis/) @@ -826,7 +824,6 @@ Services to securely store your Docker images. ## Brazilian -- [Docker BR on Slack](http://docker-br.herokuapp.com) - Auto invite url - [Docker BR on Telegram](https://telegram.me/dockerbr) ## Chinese @@ -861,7 +858,6 @@ Services to securely store your Docker images. [containx]: https://github.com/ContainX [containers]: https://github.com/containers [coreos]: https://github.com/coreos -[cncf]: https://www.cncf.io [crazy-max]: https://github.com/crazy-max [deepfence]: https://github.com/deepfence [distribution]: https://github.com/docker/distribution From c215e66d07f0a111a2667f0e9a018e91b35772b7 Mon Sep 17 00:00:00 2001 From: Andreas Gebhardt Date: Sat, 20 May 2023 11:44:35 +0200 Subject: [PATCH 103/327] fix weekly QA findings (#1076) https://github.com/veggiemonk/awesome-docker/actions/runs/5029238388/jobs/9020684632 --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c049ac923..fff18f145 100644 --- a/README.md +++ b/README.md @@ -509,6 +509,7 @@ Applications designed to help or simplify building **new** images Examples by: +- [@0xy](https://gitlab.com/0xy/dockerfiles) - [@arun-gupta](https://github.com/arun-gupta/docker-images) - [@awesome-startup](https://github.com/awesome-startup/docker-compose) - [@crosbymichael](https://github.com/crosbymichael/Dockerfiles) @@ -516,7 +517,6 @@ Examples by: - [@komljen](https://github.com/komljen/dockerfile-examples) - [@kstaken](https://github.com/kstaken/dockerfile-examples) - [@ondrejmo](https://github.com/ondrejmo/Dockerfiles) -- [@pandrew](https://gitlab.com/pandrew/dockerfiles) - [@vimagick](https://github.com/vimagick/dockerfiles) ### Linter @@ -540,7 +540,7 @@ Services to securely store your Docker images. - [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource - [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans) - [cleanreg](https://github.com/hcguersoy/cleanreg) - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC by [@hcguersoy](https://github.com/hcguersoy) -- [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/docker-registry/) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. +- [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/product/formats/docker-registry) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. - [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. - [Cycle.io :heavy_dollar_sign:](https://cycle.io/) - Bare-metal container hosting. - [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. @@ -548,7 +548,7 @@ Services to securely store your Docker images. - [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content - [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent by [@netvarun](https://github.com/netvarun/) - [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. -- [GCE Container Registry :heavy_dollar_sign:](https://cloud.google.com/container-registry/) Fast, private Docker image storage on Google Cloud Platform +- [GCE Container Registry :heavy_dollar_sign:](https://cloud.google.com/artifact-registry) Fast, private Docker image storage on Google Cloud Platform - [GitLab Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/) - Registry focused on using its images in GitLab CI - [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] - [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well @@ -557,7 +557,7 @@ Services to securely store your Docker images. - [Quay.io :heavy_dollar_sign:](https://quay.io/) (part of CoreOS) - Secure hosting for private Docker repositories - [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry - [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source) by [@noteed](https://github.com/noteed) -- [Sonatype Nexus Repository](https://www.sonatype.com/products/nexus-repository) - Manage binaries and build artifacts across your software supply chain. +- [Sonatype Nexus Repository](https://www.sonatype.com/products/sonatype-nexus-repository) - Manage binaries and build artifacts across your software supply chain. - [TreeScale](https://github.com/treescale) - Build and Distribute container based applications. By [@tigranbs](https://github.com/tigranbs) ## Development with Docker @@ -671,7 +671,7 @@ Services to securely store your Docker images. - [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. - [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [@zuazo](https://github.com/zuazo) - [Dockunit](https://github.com/dockunit/platform) :skull: - Docker based integration tests. A simple Node based utility for running Docker based unit tests. By [@dockunit](https://github.com/dockunit) -- [EZDC](https://github.com/lynchborg/ezdc) - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [@byrnedo](https://github.com/byrnedo) +- [EZDC](https://github.com/lynchborg/ezdc) - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [@byrnedo] - [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [@chef](https://github.com/chef) - [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/) - [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. From 8b85c0500a37bbb98eb0c279f13174116700aee8 Mon Sep 17 00:00:00 2001 From: Andreas Gebhardt Date: Sat, 20 May 2023 17:11:34 +0200 Subject: [PATCH 104/327] Broken hyperlinks (#1077) Fix mentions which results in broken links in rendered HTML. Fixes #1072. --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index fff18f145..3b5785eda 100644 --- a/README.md +++ b/README.md @@ -172,8 +172,8 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [percheron](https://github.com/ashmckenzie/percheron) :skull: - Organise your Docker containers with muscle and intelligence by [@ashmckenzie](https://github.com/ashmckenzie) - [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. - [podman-compose](https://github.com/containers/podman-compose) - a script to run docker-compose.yml using podman by [@containers][containers] -- [rocker-compose](https://github.com/grammarly/rocker-compose) :skull: - Docker composition tool with idempotency features for deploying apps composed of multiple containers. By[@grammarly](grammarly). -- [rocker](https://github.com/grammarly/rocker) :skull: - Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by [@grammarly](grammarly). +- [rocker-compose](https://github.com/grammarly/rocker-compose) :skull: - Docker composition tool with idempotency features for deploying apps composed of multiple containers. By[@grammarly]. +- [rocker](https://github.com/grammarly/rocker) :skull: - Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by [@grammarly]. - [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [@roquie](https://github.com/roquie) - [Stacker](https://github.com/stacker/stacker-cli) :skull: - Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience). - [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [@alexaandrov](https://github.com/alexaandrov) @@ -257,7 +257,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Panamax](https://github.com/CenturyLinkLabs/panamax-ui) :skull: - An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop by [@CenturyLinkLabs][centurylinklabs]. - [Rancher](https://github.com/rancher/rancher) - An open source project that provides a complete platform for operating Docker in production by [@rancher][rancher]. - [RedHerd Framework](https://github.com/redherd-project/redherd-framework) - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [@RedHerdProject](https://github.com/redherd-project). -- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [@crazy-max](crazy-max) +- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [@crazy-max] ### PaaS @@ -310,8 +310,8 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [@bridgecrew](https://github.com/bridgecrewio) - [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [@coreos][coreos] - [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [@eliasgranderubio](https://github.com/eliasgranderubio) -- [Deepfence Enterprise](https://deepfence.io) :heavy_dollar_sign: - Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [@deepfence](deepfence) -- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [@deepfence](deepfence) +- [Deepfence Enterprise](https://deepfence.io) :heavy_dollar_sign: - Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [@deepfence][deepfence] +- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [@deepfence][deepfence] - [docker-bench-security](https://github.com/docker/docker-bench-security) - script that checks for dozens of common best-practices around deploying Docker containers in production. By [@docker][docker] - [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions by [@Google][google] - [docker-lock](https://github.com/safe-waters/docker-lock) - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By [@safe-waters][safe-waters] @@ -329,7 +329,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [docker-consul](https://github.com/gliderlabs/docker-consul) by [@progrium][progrium] - [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [@etcd-io](https://github.com/etcd-io) (former part of CoreOS) -- [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices by [@IstioMesh](istio) +- [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices by [@istio](https://github.com/istio) - [proxy](https://github.com/factorish/proxy) :skull: - lightweight nginx based load balancer self using service discovery provided by registrator. by [@factorish](https://github.com/factorish) - [registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker by [@gliderlabs][gliderlabs] and [@progrium][progrium] @@ -396,7 +396,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [DVM](https://github.com/howtowhale/dvm) - Docker version manager by [@howtowhale](https://github.com/howtowhale) - [goinside](https://github.com/iamsoorena/goinside) - Get inside a running docker container easily. by [@iamsoorena](https://github.com/iamsoorena) - [ns-enter](https://github.com/jpetazzo/nsenter) - :skull: no more ssh, enter name spaces of container by [@jpetazzo][jpetazzo] -- [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects by [@g31s](g31s) +- [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects by [@g31s](https://github.com/g31s) - [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. by [@shiwaforce](https://github.com/shiwaforce) - [reg](https://github.com/genuinetools/reg) - :skull: Docker registry v2 command line client by [@genuinetools][genuinetools] - [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments, by [@JonathonReinhart](https://github.com/JonathonReinhart) @@ -592,7 +592,7 @@ Services to securely store your Docker images. - [Captain](https://github.com/harbur/captain) - Convert your Git workflow to Docker containers ready for Continuous Delivery by [@harbur](https://github.com/harbur). - [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources by [@caicloud](https://github.com/caicloud). - [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). -- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max](crazy-max). +- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max]. - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. - [Dockupdater](https://github.com/dockupdater/dockupdater) - Automatically keep your docker services and your docker containers up-to-date - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. @@ -858,7 +858,6 @@ Services to securely store your Docker images. [containx]: https://github.com/ContainX [containers]: https://github.com/containers [coreos]: https://github.com/coreos -[crazy-max]: https://github.com/crazy-max [deepfence]: https://github.com/deepfence [distribution]: https://github.com/docker/distribution [docker-flow]: https://github.com/docker-flow @@ -869,7 +868,6 @@ Services to securely store your Docker images. [gesellix]: https://github.com/gesellix [genuinetools]: https://github.com/genuinetools [gliderlabs]: https://github.com/gliderlabs -[grammarly]: https://github.com/grammarly [google]: https://github.com/google [googlecontainertools]: https://github.com/GoogleContainerTools [inspec]: https://github.com/inspec/inspec @@ -895,4 +893,6 @@ Services to securely store your Docker images. [weave]: https://github.com/weaveworks/weave [vmware]: https://github.com/vmware [@byrnedo]: https://github.com/byrnedo +[@crazy-max]: https://github.com/crazy-max +[@grammarly]: https://github.com/grammarly [@skanehira]: https://github.com/skanehira From 9ce3045159a52901ea8714d8948aa9a3dd8572db Mon Sep 17 00:00:00 2001 From: Andreas Gebhardt Date: Mon, 29 May 2023 17:40:14 +0200 Subject: [PATCH 105/327] exlude docker reddit on test (#1078) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` { TEST_PASSED: false, EXTERNAL_LINKS: 152 } ❌ ERROR { "0": { "show": true, "duplicates": "", "other_links_error": [ [ "https://www.reddit.com/r/docker/", { "ok": false, "status": "Found", "redirect": { "src": "https://www.reddit.com/r/docker/", "dst": "/r/docker/?rdt=51685" } } ] ] } } ``` --- tests/exclude_in_test.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/exclude_in_test.json b/tests/exclude_in_test.json index 2a1160dc6..f06244ce7 100644 --- a/tests/exclude_in_test.json +++ b/tests/exclude_in_test.json @@ -8,5 +8,6 @@ "https://www.manning.com/", "https://deepfence.io", "https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg", - "https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security" + "https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security", + "https://www.reddit.com/r/docker/" ] \ No newline at end of file From 77a9c67a9aa4ac00637dc34a180ab168ec215e90 Mon Sep 17 00:00:00 2001 From: Leonardo Amaral Date: Tue, 30 May 2023 18:57:09 -0300 Subject: [PATCH 106/327] Add Ofelia job scheduler for containers. (#1079) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b5785eda..07a049218 100644 --- a/README.md +++ b/README.md @@ -456,6 +456,7 @@ Tools and applications that are either installed inside containers or designed t - [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container by [@sindresorhus][sindresorhus] - [lstags](https://github.com/ivanilves/lstags) - sync Docker images across registries by [@ivanilves](https://github.com/ivanilves) - [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - The NVIDIA Container Runtime for Docker by [@NVIDIA][nvidia] +- [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. - [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa) - [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito] - [supercronic](https://github.com/aptible/supercronic) - crontab-compatible job runner, designed specifically to run in containers by [@aptible](https://github.com/aptible/) From ba3464bb8647541c9327357eb7261b1a892dd457 Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sat, 10 Jun 2023 23:20:44 +0200 Subject: [PATCH 107/327] replace docker newsletter with docker blog (#1080) the docker newsletter page was taken down and redirected to / fixes https://github.com/veggiemonk/awesome-docker/actions/runs/5226989566 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 07a049218..de6d95b1b 100644 --- a/README.md +++ b/README.md @@ -739,12 +739,12 @@ Services to securely store your Docker images. - **[Valuable Docker Links](http://nane.kratzke.pages.mylab.th-luebeck.de/about/blog/2014/08/24/valuable-docker-links/)** High quality articles about docker! **MUST SEE** - [Become a Docker Power User with Visual Studio Code](https://www.thebyte.io/become-docker-power-user-with-vs-code) - :heavy_dollar_sign: A training course to help you become a Docker Power user with Visual Studio Code - [Cloud Native Landscape](https://github.com/cncf/landscape) +- [Docker Blog](https://www.docker.com/blog/) - regular updates about Docker, the community and tools - [Docker Certification](https://intellipaat.com/docker-training-course/?US) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. - [Docker Community on Hashnode](https://hashnode.com/n/docker) - [Docker dev bookmarks](https://www.codever.dev/search?q=docker) - use the tag [docker](https://www.codever.dev/bookmarks/t/docker) - [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) - [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) -- [Docker Newsletter](https://www.docker.com/newsletter-subscription/) Docker newsletter for regular updates - [Docker packaging guide for Python](https://pythonspeed.com/docker/) - a series of detailed articles on the specifics of Docker packaging for Python. - [Learn Docker in a Month of Lunches](https://www.manning.com/books/learn-docker-in-a-month-of-lunches) - [Learn Docker](https://coursesity.com/blog/best-docker-tutorials/) - Learn Docker - curated list of the top online docker tutorials and courses. From 38f196c50883c22ca02367231b7fb6c9c165342f Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sat, 1 Jul 2023 23:52:28 +0200 Subject: [PATCH 108/327] Fix sysdig.com redirect in README.md (#1081) fixes https://github.com/veggiemonk/awesome-docker/actions/runs/5427953198/jobs/9871679106 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de6d95b1b..e3e466190 100644 --- a/README.md +++ b/README.md @@ -321,7 +321,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP) - [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) :heavy_dollar_sign: - (previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. - [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. -- [Sysdig Secure](https://sysdig.com/use-cases/cloud-threat-detection-and-response/) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. +- [Sysdig Secure](https://sysdig.com/solutions/cloud-threat-detection-and-response/) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. - [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) :heavy_dollar_sign: - Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. - [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). From 2e0beda62d02b3afd4fb0bad4b6f8092ba5494d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jul 2023 08:43:37 +0200 Subject: [PATCH 109/327] Bump node-fetch from 3.3.1 to 3.3.2 (#1083) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 3.3.1 to 3.3.2. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v3.3.1...v3.3.2) --- updated-dependencies: - dependency-name: node-fetch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4e9ada39a..512ff9b98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "11.1.1", - "node-fetch": "3.3.1", + "node-fetch": "3.3.2", "rimraf": "5.0.1", "showdown": "^2.1.0" } @@ -461,9 +461,9 @@ } }, "node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -1093,9 +1093,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "requires": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", diff --git a/package.json b/package.json index 7590955ca..051b5309c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", "fs-extra": "11.1.1", - "node-fetch": "3.3.1", + "node-fetch": "3.3.2", "rimraf": "5.0.1", "showdown": "^2.1.0" } From 708d277a0685c4d25f75c26176096d14ae71cd1c Mon Sep 17 00:00:00 2001 From: Tigran Bayburtsyan Date: Sat, 5 Aug 2023 16:46:13 +0300 Subject: [PATCH 110/327] updating treescale.com to alin.io service name change (#1084) * updating treescale.com to alin.io service name change * sorting alphabetically alin.io --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e3e466190..74a991bd9 100644 --- a/README.md +++ b/README.md @@ -537,6 +537,7 @@ Examples by: Services to securely store your Docker images. +- [Alin.io](https://alin.io) - Build and Distribute container based applications. By [@tigranbs](https://github.com/tigranbs) - [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. - [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource - [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans) @@ -559,7 +560,6 @@ Services to securely store your Docker images. - [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry - [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source) by [@noteed](https://github.com/noteed) - [Sonatype Nexus Repository](https://www.sonatype.com/products/sonatype-nexus-repository) - Manage binaries and build artifacts across your software supply chain. -- [TreeScale](https://github.com/treescale) - Build and Distribute container based applications. By [@tigranbs](https://github.com/tigranbs) ## Development with Docker From 2680f1656897dd59249a41a5417974663c1ca14a Mon Sep 17 00:00:00 2001 From: Roy Razon Date: Sat, 5 Aug 2023 16:59:22 +0300 Subject: [PATCH 111/327] Add Preevy to Wrappers (#1082) --- README.md | 125 +++++++++++++++++++++++++++--------------------------- 1 file changed, 63 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 74a991bd9..5e81fca81 100644 --- a/README.md +++ b/README.md @@ -21,65 +21,65 @@ All the links are monitored and tested with a home baked [Node.js script](https: -- [Legend](#legend) -- [What is Docker](#what-is-docker) -- [Where to start](#where-to-start) -- [Where to start (Windows)](#where-to-start-windows) -- [Projects](#projects) - - [Container Operations](#container-operations) - - [Container Composition](#container-composition) - - [Deployment and Infrastructure](#deployment-and-infrastructure) - - [Monitoring](#monitoring) - - [Networking](#networking) - - [Orchestration](#orchestration) - - [PaaS](#paas) - - [Reverse Proxy](#reverse-proxy) - - [Runtime](#runtime) - - [Security](#security) - - [Service Discovery](#service-discovery) - - [Volume Management / Data](#volume-management--data) - - [User Interface](#user-interface) - - [IDE integrations](#ide-integrations) - - [Desktop](#desktop) - - [Terminal](#terminal) - - [Terminal UI](#terminal-ui) - - [CLI tools](#cli-tools) - - [Other](#other) - - [Web](#web) - - [Docker Images](#docker-images) - - [Base Tools](#base-tools) - - [Builder](#builder) - - [Dockerfile](#dockerfile) - - [Linter](#linter) - - [Metadata](#metadata) - - [Registry](#registry) - - [Development with Docker](#development-with-docker) - - [API Client](#api-client) - - [CI/CD](#cicd) - - [Development Environment](#development-environment) - - [Garbage Collection](#garbage-collection) - - [Serverless](#serverless) - - [Testing](#testing) - - [Wrappers](#wrappers) - - [Services based on Docker (mostly :heavy_dollar_sign:)](#services-based-on-docker-mostly-heavy_dollar_sign) - - [CI Services](#ci-services) - - [CaaS](#caas) - - [Monitoring Services](#monitoring-services) -- [Useful Resources](#useful-resources) - - [Awesome Lists](#awesome-lists) - - [Demos and Examples](#demos-and-examples) - - [Good Tips](#good-tips) - - [Raspberry Pi & ARM](#raspberry-pi--arm) - - [Security](#security-1) - - [Videos](#videos) -- [Communities and Meetups](#communities-and-meetups) - - [Brazilian](#brazilian) - - [Chinese](#chinese) - - [English](#english) - - [Russian](#russian) - - [Spanish](#spanish) - - [Stargazers over time](#stargazers-over-time) - - [Contributor over time](#contributor-over-time) +- [Legend](#legend) +- [What is Docker](#what-is-docker) +- [Where to start](#where-to-start) +- [Where to start (Windows)](#where-to-start-windows) +- [Projects](#projects) + - [Container Operations](#container-operations) + - [Container Composition](#container-composition) + - [Deployment and Infrastructure](#deployment-and-infrastructure) + - [Monitoring](#monitoring) + - [Networking](#networking) + - [Orchestration](#orchestration) + - [PaaS](#paas) + - [Reverse Proxy](#reverse-proxy) + - [Runtime](#runtime) + - [Security](#security) + - [Service Discovery](#service-discovery) + - [Volume Management / Data](#volume-management--data) + - [User Interface](#user-interface) + - [IDE integrations](#ide-integrations) + - [Desktop](#desktop) + - [Terminal](#terminal) + - [Terminal UI](#terminal-ui) + - [CLI tools](#cli-tools) + - [Other](#other) + - [Web](#web) + - [Docker Images](#docker-images) + - [Base Tools](#base-tools) + - [Builder](#builder) + - [Dockerfile](#dockerfile) + - [Linter](#linter) + - [Metadata](#metadata) + - [Registry](#registry) + - [Development with Docker](#development-with-docker) + - [API Client](#api-client) + - [CI/CD](#cicd) + - [Development Environment](#development-environment) + - [Garbage Collection](#garbage-collection) + - [Serverless](#serverless) + - [Testing](#testing) + - [Wrappers](#wrappers) + - [Services based on Docker (mostly :heavy\_dollar\_sign:)](#services-based-on-docker-mostly-heavy_dollar_sign) + - [CI Services](#ci-services) + - [CaaS](#caas) + - [Monitoring Services](#monitoring-services) +- [Useful Resources](#useful-resources) + - [Awesome Lists](#awesome-lists) + - [Demos and Examples](#demos-and-examples) + - [Good Tips](#good-tips) + - [Raspberry Pi \& ARM](#raspberry-pi--arm) + - [Security](#security-1) + - [Videos](#videos) +- [Communities and Meetups](#communities-and-meetups) + - [Brazilian](#brazilian) + - [Chinese](#chinese) + - [English](#english) + - [Russian](#russian) + - [Spanish](#spanish) + - [Stargazers over time](#stargazers-over-time) + - [Contributor over time](#contributor-over-time) @@ -103,7 +103,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker Documentation](https://docs.docker.com/): the official documentation. - [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. - [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. -- [Docker Latest Tutorial](https://www.techgeekbuzz.com/tutorial/docker/what-is-docker/) — This is a series of latest docker tutorial, where you can learn what is docker, docker lifecycle, how to run Nginx Web Server in Docker?, how to run mysql on docker container, how to use Python on doceker and many other important topics. +- [Docker Latest Tutorial](https://www.techgeekbuzz.com/tutorial/docker/what-is-docker/) — This is a series of latest docker tutorial, where you can learn what is docker, docker lifecycle, how to run Nginx Web Server in Docker?, how to run mysql on docker container, how to use Python on doceker and many other important topics. - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: - [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. @@ -112,7 +112,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This spanish guide contains the use of basic docker commands with real life examples. - [Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology. - [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. - + **Cheatsheets** by @@ -211,7 +211,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands - [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] -- [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. +- [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. - [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor by [@vegasbrianc][vegasbrianc] - [LogJam](https://github.com/gocardless/logjam) - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by [@gocardless](https://github.com/gocardless) - [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs by [@gliderlabs][gliderlabs] @@ -688,6 +688,7 @@ Services to securely store your Docker images. - [Dray](https://github.com/CenturyLinkLabs/dray) - An engine for managing the execution of container-based workflows by [@CenturyLinkLabs][centurylinklabs] - [FuGu](https://github.com/mattes/fugu) :skull: - Docker run wrapper without orchestration by [@mattes](https://github.com/mattes) - [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [@artsy](https://github.com/artsy) +- [Preevy](https://github.com/livecycle/preevy) - Preview environments for Docker and Docker Compose projects. Test your changes and get feedback from devs and non-devs (Product/Design) by deploying pull requests to the your cloud provider as part of your CI pipeline. - [Shutit](https://github.com/ianmiell/shutit) - Tool for building and maintaining complex Docker deployments by [@ianmiell](https://github.com/ianmiell) - [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker - [T.A.D.S. boilerplate](https://github.com/Thomvaill/tads-boilerplate) - The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By [@Thomvaill](https://github.com/Thomvaill) From 5896748e4053946ebc9d044380f1677d72d038a5 Mon Sep 17 00:00:00 2001 From: Alexei Shevchenko Date: Fri, 1 Sep 2023 17:38:35 +0300 Subject: [PATCH 112/327] Add decompose (#1085) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5e81fca81..00244a294 100644 --- a/README.md +++ b/README.md @@ -390,6 +390,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [@Falldog](https://github.com/Falldog) - [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [@exdx](https://github.com/exdx) - [dctl](https://github.com/FabienD/docker-stack) - dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD) +- [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. By [@s0rg](https://github.com/s0rg) - [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries by [@mayflower](https://github.com/mayflower) - [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck) - [dockersql](https://github.com/crosbymichael/dockersql) - :skull: A command line interface to query Docker using SQL by [@crosbymichael](https://github.com/crosbymichael) From 66c864659960e255a89d633f4ea5685d0daee8ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 07:50:21 +0200 Subject: [PATCH 113/327] Bump rimraf from 5.0.1 to 5.0.4 (#1088) Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.1 to 5.0.4. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v5.0.1...v5.0.4) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 142 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 72 insertions(+), 72 deletions(-) diff --git a/package-lock.json b/package-lock.json index 512ff9b98..fcc9e31f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.2", - "rimraf": "5.0.1", + "rimraf": "5.0.4", "showdown": "^2.1.0" } }, @@ -328,18 +328,18 @@ } }, "node_modules/glob": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz", - "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==", + "version": "10.3.9", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.9.tgz", + "integrity": "sha512-2tU/LKevAQvDVuVJ9pg9Yv9xcbSh+TqHuTaXTNbQwf+0kDl9Fm6bMovi4Nm5c8TVvfxo2LLcqCGtmO9KoJaGWg==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -385,9 +385,9 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jackspeak": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", - "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.5.tgz", + "integrity": "sha512-Ratx+B8WeXLAtRJn26hrhY8S1+Jz6pxPMrkrdkgb/NstTNiqMhX0/oFVu5wX+g5n6JlEu2LPsDJmY8nRP4+alw==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -413,17 +413,17 @@ } }, "node_modules/lru-cache": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", - "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { "node": "14 || >=16.14" } }, "node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -435,9 +435,9 @@ } }, "node_modules/minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", + "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -520,12 +520,12 @@ } }, "node_modules/path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dependencies": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -535,14 +535,14 @@ } }, "node_modules/rimraf": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", - "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.4.tgz", + "integrity": "sha512-rizQI/o/YAMM1us0Zyax0uRfIK39XR52EAjjOi0fzMolpGp0onj6CWzBAXuOx6+6Xi9Rgi0d9tUZojhJerLUmQ==", "dependencies": { - "glob": "^10.2.5" + "glob": "^10.3.7" }, "bin": { - "rimraf": "dist/cjs/src/bin.js" + "rimraf": "dist/esm/bin.mjs" }, "engines": { "node": ">=14" @@ -586,9 +586,9 @@ } }, "node_modules/signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "engines": { "node": ">=14" }, @@ -651,9 +651,9 @@ } }, "node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -1014,15 +1014,15 @@ } }, "glob": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz", - "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==", + "version": "10.3.9", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.9.tgz", + "integrity": "sha512-2tU/LKevAQvDVuVJ9pg9Yv9xcbSh+TqHuTaXTNbQwf+0kDl9Fm6bMovi4Nm5c8TVvfxo2LLcqCGtmO9KoJaGWg==", "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" } }, "graceful-fs": { @@ -1052,9 +1052,9 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "jackspeak": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", - "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.5.tgz", + "integrity": "sha512-Ratx+B8WeXLAtRJn26hrhY8S1+Jz6pxPMrkrdkgb/NstTNiqMhX0/oFVu5wX+g5n6JlEu2LPsDJmY8nRP4+alw==", "requires": { "@isaacs/cliui": "^8.0.2", "@pkgjs/parseargs": "^0.11.0" @@ -1070,22 +1070,22 @@ } }, "lru-cache": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", - "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==" + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" }, "minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "requires": { "brace-expansion": "^2.0.1" } }, "minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", + "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==" }, "node-domexception": { "version": "1.0.0", @@ -1133,20 +1133,20 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "requires": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "rimraf": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", - "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.4.tgz", + "integrity": "sha512-rizQI/o/YAMM1us0Zyax0uRfIK39XR52EAjjOi0fzMolpGp0onj6CWzBAXuOx6+6Xi9Rgi0d9tUZojhJerLUmQ==", "requires": { - "glob": "^10.2.5" + "glob": "^10.3.7" } }, "shebang-command": { @@ -1171,9 +1171,9 @@ } }, "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" }, "string-width": { "version": "5.1.2", @@ -1216,9 +1216,9 @@ } }, "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "requires": { "ansi-regex": "^6.0.1" } diff --git a/package.json b/package.json index 051b5309c..f8b038826 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.2", - "rimraf": "5.0.1", + "rimraf": "5.0.4", "showdown": "^2.1.0" } } From 29cdd539a97f3534f69b54e10d9dec99fa458fb1 Mon Sep 17 00:00:00 2001 From: Pascal Hofmann Date: Wed, 27 Sep 2023 09:07:43 +0200 Subject: [PATCH 114/327] Remove portus (abandoned) (#1089) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 00244a294..62c99075c 100644 --- a/README.md +++ b/README.md @@ -556,7 +556,6 @@ Services to securely store your Docker images. - [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] - [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well - [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. -- [Portus](https://github.com/SUSE/Portus) - Authorization service and frontend for Docker registry (v2) by [@SUSE](https://github.com/SUSE) - [Quay.io :heavy_dollar_sign:](https://quay.io/) (part of CoreOS) - Secure hosting for private Docker repositories - [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry - [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source) by [@noteed](https://github.com/noteed) From a34807e72cb798608436ff7d36e3ae06e8636548 Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Wed, 27 Sep 2023 09:33:39 +0200 Subject: [PATCH 115/327] fix packer link (#1090) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 62c99075c..82119139c 100644 --- a/README.md +++ b/README.md @@ -488,7 +488,7 @@ Applications designed to help or simplify building **new** images - [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder by [@genuinetools][genuinetools] - [kaniko](https://github.com/GoogleContainerTools/kaniko) - Build Container Images In Kubernetes. By [@GoogleContainerTools][googlecontainertools] - [makisu](https://github.com/uber/makisu) - Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber) -- [packer](https://developer.hashicorp.com/packer/plugins/builders/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible +- [packer](https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible - [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images by [@duedil-ltd](https://github.com/duedil-ltd) - [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. - [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi) From ee24bc2f438a1a87259ebb6ac1039f990b86f503 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 17:16:53 +0200 Subject: [PATCH 116/327] Bump rimraf from 5.0.4 to 5.0.5 (#1091) Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.4 to 5.0.5. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v5.0.4...v5.0.5) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index fcc9e31f9..4249c1168 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.2", - "rimraf": "5.0.4", + "rimraf": "5.0.5", "showdown": "^2.1.0" } }, @@ -535,9 +535,9 @@ } }, "node_modules/rimraf": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.4.tgz", - "integrity": "sha512-rizQI/o/YAMM1us0Zyax0uRfIK39XR52EAjjOi0fzMolpGp0onj6CWzBAXuOx6+6Xi9Rgi0d9tUZojhJerLUmQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", "dependencies": { "glob": "^10.3.7" }, @@ -1142,9 +1142,9 @@ } }, "rimraf": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.4.tgz", - "integrity": "sha512-rizQI/o/YAMM1us0Zyax0uRfIK39XR52EAjjOi0fzMolpGp0onj6CWzBAXuOx6+6Xi9Rgi0d9tUZojhJerLUmQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", "requires": { "glob": "^10.3.7" } diff --git a/package.json b/package.json index f8b038826..bff0c25d2 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.1.1", "node-fetch": "3.3.2", - "rimraf": "5.0.4", + "rimraf": "5.0.5", "showdown": "^2.1.0" } } From 8dc090b56f327b1452ae8f6f4145a5b8c732622c Mon Sep 17 00:00:00 2001 From: Andreas Dieckmann <54552094+diecknet@users.noreply.github.com> Date: Fri, 6 Oct 2023 23:08:58 +0200 Subject: [PATCH 117/327] remove dockupdater (does not exist anymore) (#1092) the project does not exist anymore --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 82119139c..acf53ed22 100644 --- a/README.md +++ b/README.md @@ -595,7 +595,6 @@ Services to securely store your Docker images. - [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). - [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max]. - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. -- [Dockupdater](https://github.com/dockupdater/dockupdater) - Automatically keep your docker services and your docker containers up-to-date - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. - [GOCD-Docker](https://github.com/gocd/gocd-docker) :skull: - Go Server and Agent in docker containers to provision. From 4eca08d9b3d25267976c3171cf4af2205a4b1aff Mon Sep 17 00:00:00 2001 From: Stephen Corya Date: Fri, 20 Oct 2023 03:26:34 -0400 Subject: [PATCH 118/327] Add caddy-docker-proxy under Reverse Proxies section (#1095) * Add caddy-docker-proxy under Reverse Proxies section * remove skillcombo.com link with error --------- Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index acf53ed22..b57ddcc1a 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Reverse Proxy - [bunkerized-nginx](https://github.com/bunkerity/bunkerized-nginx) - Web app hosting and reverse proxy secure by default. By [@bunkerity](https://github.com/bunkerity) +- [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. By [@lucaslorentz](https://github.com/lucaslorentz) - [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. - [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [@docker-flow][docker-flow] - [docker-proxy](https://github.com/silarsis/docker-proxy) :skull: - Transparent proxy for docker containers, run in a docker container. By [@silarsis](https://github.com/silarsis) @@ -819,7 +820,6 @@ Services to securely store your Docker images. - [Performance Analysis of Docker - Jeremy Eder](https://www.youtube.com/watch?v=6f2E6PKYb0w) (1:36:58) - [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615) Free Udacity course - [State of containers: a debate with CoreOS, VMware and Google](https://www.youtube.com/watch?v=IiITP3yIRd8) (27:38) -- [List of online courses (free and paid) about Docker](https://skillcombo.com/topic/docker/) # Communities and Meetups From 3c2eb24aebfe8ceb58b5acc660b1c926099eee95 Mon Sep 17 00:00:00 2001 From: Nicholas Dille Date: Fri, 20 Oct 2023 10:17:01 +0200 Subject: [PATCH 119/327] docker-setup is now uniget (#1096) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b57ddcc1a..40b167d78 100644 --- a/README.md +++ b/README.md @@ -627,7 +627,6 @@ Services to securely store your Docker images. - [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [@NandoQuintana](https://github.com/nandoquintana). - [Docker osx dev](https://github.com/brikis98/docker-osx-dev) :skull: - A productive development environment with Docker on OS X by [@brikis98](https://github.com/brikis98) - [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [@Ph3nol](https://github.com/ph3nol) -- [docker-setup](https://github.com/nicholasdille/docker-setup) - Install, configure and update container tools. By [@nicholasdille](https://twitter.com/nicholasdille) - [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer) - [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant) by [@shyiko](https://github.com/shyiko) - [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. @@ -641,6 +640,7 @@ Services to securely store your Docker images. - [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [@senges](https://github.com/senges) - [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://thinktandem.io/) - [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) - Container solution to compile Rust projects for Linux, macOS and Windows. By [@Peco602][peco602] +- [uniget](https://github.com/uniget-org/cli) - uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [@nicholasdille](https://github.com/nicholasdille) - [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments by [@tailhook](https://github.com/tailhook/) - [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com) From 30d788bf4672cc3e9ee8376968842d4931588aac Mon Sep 17 00:00:00 2001 From: Jack Wills <32690432+mrjackwills@users.noreply.github.com> Date: Tue, 28 Nov 2023 11:49:59 +0000 Subject: [PATCH 120/327] Add oxker under Terminal UI section (#1102) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 40b167d78..00bb0a8f6 100644 --- a/README.md +++ b/README.md @@ -383,6 +383,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [docui](https://github.com/skanehira/docui) - :skull: An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira] - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) +- [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://www.rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard), by [@mrjackwills](https://github.com/mrjackwills) - [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine, by [@TomasTomecek][tomastomecek] ##### CLI tools From 0064ad6e1bd880e8bf81114f534390e20b1206ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 08:27:43 +0100 Subject: [PATCH 121/327] Bump fs-extra from 11.1.1 to 11.2.0 (#1103) Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.1.1 to 11.2.0. - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.1.1...11.2.0) --- updated-dependencies: - dependency-name: fs-extra dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4249c1168..3856ed4bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", - "fs-extra": "11.1.1", + "fs-extra": "11.2.0", "node-fetch": "3.3.2", "rimraf": "5.0.5", "showdown": "^2.1.0" @@ -315,9 +315,9 @@ } }, "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1004,9 +1004,9 @@ } }, "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/package.json b/package.json index bff0c25d2..38be337c6 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "cheerio": "1.0.0-rc.12", "draftlog": "1.0.13", - "fs-extra": "11.1.1", + "fs-extra": "11.2.0", "node-fetch": "3.3.2", "rimraf": "5.0.5", "showdown": "^2.1.0" From 8c65e6563b76622844501626bf877727ea0bfda2 Mon Sep 17 00:00:00 2001 From: Damian Szczepanik Date: Thu, 14 Dec 2023 00:27:21 +0100 Subject: [PATCH 122/327] ctop project is not maintained and is based on the image with 100+ vulnerabilities (#1104) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 00bb0a8f6..981ffeee2 100644 --- a/README.md +++ b/README.md @@ -374,7 +374,7 @@ Native desktop applications for managing and montoring docker hosts and clusters ##### Terminal UI - [ctop (1)](https://github.com/yadutaf/ctop) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python) by [@yadutaf](https://github.com/yadutaf) -- [ctop (2)](https://github.com/bcicen/ctop) - Top-like interface for container metrics (Golang) by [@bcicen](https://github.com/bcicen/) +- [ctop (2)](https://github.com/bcicen/ctop) - :skull: Top-like interface for container metrics (Golang) by [@bcicen](https://github.com/bcicen/) - [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). - [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [@byrnedo] - [Docker-mon](https://github.com/icecrime/docker-mon) :skull: - Console-based Docker monitoring by [@icecrime](https://github.com/icecrime) From dd95f4e357e1d6df18a23336e3f0b16b6b191724 Mon Sep 17 00:00:00 2001 From: pmeyer34 Date: Thu, 4 Jan 2024 12:10:34 +0100 Subject: [PATCH 123/327] Add Tekton (#1105) * Add Tekton Signed-off-by: Patrice MEYER * adjust Tekton description --------- Signed-off-by: Patrice MEYER Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 981ffeee2..52f5ea0a4 100644 --- a/README.md +++ b/README.md @@ -609,6 +609,7 @@ Services to securely store your Docker images. - [Screwdriver :heavy_dollar_sign:](https://screwdriver.cd/) - Yahoo's OpenSource buildplatform designed for Continous Delivery. - [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository by [@Stratoscale](https://github.com/Stratoscale) - [SwarmCI](https://github.com/ghostsquad/swarmci) - Create a distributed, isolated task pipeline in your Docker Swarm. +- [Tekton CD](https://tekton.dev/) - A cloud-native pipeline resource. - [Watchtower](https://github.com/containrrr/watchtower) - Automatically update running Docker containers ### Development Environment From 9ee5ea343f9e0ed913852e6dfc0a63c51dd4def9 Mon Sep 17 00:00:00 2001 From: mag37 Date: Sun, 14 Jan 2024 21:35:40 +0100 Subject: [PATCH 124/327] Added dockcheck under CI/CD section. (#1107) dockcheck - A script checking updates for docker images without pulling - then selectively auto-update some/all containers (with extras like notifications, pruning and more). --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52f5ea0a4..b7a75d13a 100644 --- a/README.md +++ b/README.md @@ -596,6 +596,7 @@ Services to securely store your Docker images. - [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources by [@caicloud](https://github.com/caicloud). - [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). - [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max]. +- [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. From 4275b4517562b4a690e802ddb5d0796a2427a522 Mon Sep 17 00:00:00 2001 From: Rami Krispin <12760966+RamiKrispin@users.noreply.github.com> Date: Sat, 20 Jan 2024 08:34:26 -0800 Subject: [PATCH 125/327] Update README.md Add the VScode tutorial --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b7a75d13a..8c4c24704 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. - [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This spanish guide contains the use of basic docker commands with real life examples. - [Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology. +- [Setting Python Development Environment with VScode and Docker](https://github.com/RamiKrispin/vscode-python): A step-by-step tutorial for setting up a dockerized Python development environment with VScode, Docker, and the Dev Container extension. - [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. From e6c0a3d57ac8f2ca52d826ecd767fcd86776e787 Mon Sep 17 00:00:00 2001 From: Maximilian Muecke Date: Sun, 21 Jan 2024 12:07:03 +0100 Subject: [PATCH 126/327] feat: gitea and github container registry entries (#1110) * feat: gitea and github container registry entries * fix: adjust gitea ordering --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8c4c24704..c542b4065 100644 --- a/README.md +++ b/README.md @@ -555,6 +555,8 @@ Services to securely store your Docker images. - [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent by [@netvarun](https://github.com/netvarun/) - [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. - [GCE Container Registry :heavy_dollar_sign:](https://cloud.google.com/artifact-registry) Fast, private Docker image storage on Google Cloud Platform +- [Gitea Container Registry](https://docs.gitea.com/usage/packages/container) - Integrated Docker registry in Gitea, ideal for private, small-scale image hosting. +- [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - GitHub's solution for storing and managing Docker images, with tight integration into GitHub Actions. - [GitLab Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/) - Registry focused on using its images in GitLab CI - [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] - [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well From e0c9da7d1856260d34c4da9bb6b4b9f252eec4fe Mon Sep 17 00:00:00 2001 From: Maximilian Muecke Date: Sun, 21 Jan 2024 18:58:31 +0100 Subject: [PATCH 127/327] feat: denops-docker.vim entry and set docker.vim to abandoned --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c542b4065..41db4d4eb 100644 --- a/README.md +++ b/README.md @@ -356,7 +356,8 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) - Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) -- [docker.vim](https://github.com/skanehira/docker.vim) - Manage docker containers and images in Vim. By [@skanehira] +- [denops-docker.vim](https://github.com/skanehira/denops-docker.vim) - Manage docker containers and images in Vim. By [@skanehira] +- [docker.vim](https://github.com/skanehira/docker.vim) :skull: - Manage docker containers and images in Vim. By [@skanehira] - [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [@Silex](https://github.com/Silex) #### Desktop From ced0aa5569a281716a1ab270085612fd46ab53da Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 22 Jan 2024 02:26:28 +0500 Subject: [PATCH 128/327] Add Mafl (#1109) * Add Mafl * Reorder Mafl --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 41db4d4eb..9ec870fbf 100644 --- a/README.md +++ b/README.md @@ -433,6 +433,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [dockering-on-rails](https://github.com/Electrofenster/dockerding-on-rails) :skull: - Simple Web-Interface for Docker with a lot of features by [@Electrofenster](https://github.com/Electrofenster/) - [DockerSurfer](https://github.com/Simone-Erba/DockerSurfer) :skull: - A web service for analyze and browse dependencies between Docker images in the Docker registry, by [@Simone-Erba](https://github.com/Simone-Erba/) - [Kubevious](https://github.com/kubevious/kubevious) - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way by [@rubenhak](https://github.com/rubenhak). +- [Mafl](https://github.com/hywax/mafl) - Minimalistic flexible homepage by [@hywax](https://github.com/hywax/) - [netdata](https://github.com/netdata/netdata) - Real-time performance monitoring - [OctoLinker](https://github.com/OctoLinker/OctoLinker) - A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. - [Portainer](https://github.com/portainer/portainer) - A lightweight management UI for managing your Docker hosts or Docker Swarm clusters by [@portainer](https://github.com/portainer) From 6a81e9f0e5b4e2b95f133e3f2598c987de313b50 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 2 Feb 2024 15:08:37 +0100 Subject: [PATCH 129/327] add dockge (#1112) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ec870fbf..50faf6d76 100644 --- a/README.md +++ b/README.md @@ -432,6 +432,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). - [dockering-on-rails](https://github.com/Electrofenster/dockerding-on-rails) :skull: - Simple Web-Interface for Docker with a lot of features by [@Electrofenster](https://github.com/Electrofenster/) - [DockerSurfer](https://github.com/Simone-Erba/DockerSurfer) :skull: - A web service for analyze and browse dependencies between Docker images in the Docker registry, by [@Simone-Erba](https://github.com/Simone-Erba/) +- [dockge](https://github.com/louislam/dockge) - easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager by [@louislam](https://github.com/louislam). - [Kubevious](https://github.com/kubevious/kubevious) - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way by [@rubenhak](https://github.com/rubenhak). - [Mafl](https://github.com/hywax/mafl) - Minimalistic flexible homepage by [@hywax](https://github.com/hywax/) - [netdata](https://github.com/netdata/netdata) - Real-time performance monitoring From fdf7b630473ede61137ec654d145b5df9b2f0cfd Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 2 Feb 2024 15:11:19 +0100 Subject: [PATCH 130/327] add dockemon (#1113) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 50faf6d76..ace68b160 100644 --- a/README.md +++ b/README.md @@ -424,6 +424,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [Admiral](https://github.com/vmware/admiral) Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By [VMWare][vmware] - [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers, by [@knrdl](https://github.com/knrdl) - [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [@wrfly](https://github.com/wrfly) +- [dockemon](https://github.com/ProductiveOps/dokemon) - Docker Container Management GUI by [@productiveops](https://github.com/ProductiveOps) - [Docker Compose UI](https://github.com/francescou/docker-compose-ui) - Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI - [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2 by [@klausmeyer](https://github.com/klausmeyer) - [Docker Registry UI (Joxit)](https://github.com/Joxit/docker-registry-ui) - The simplest and cleanest UI for private registries by [@Joxit](https://github.com/Joxit) From 5be0d6fa272ace334c4ea5bfa76f6acd7f42d466 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eligio=20Mari=C3=B1o?= <22875166+gmeligio@users.noreply.github.com> Date: Sat, 3 Feb 2024 13:51:31 +0100 Subject: [PATCH 131/327] doc: add Docuum (#1114) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ace68b160..eb4a75ded 100644 --- a/README.md +++ b/README.md @@ -663,6 +663,7 @@ Services to securely store your Docker images. - [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [@Yelp](https://github.com/Yelp) - [docker-garby](https://github.com/konstruktoid/docker-garby) - Docker garbage collection script by [@konstruktoid](https://github.com/konstruktoid). - [docker-gc](https://github.com/spotify/docker-gc) :skull: - A cron job that will delete old stopped containers and unused images by [@spotify][spotify] +- [Docuum](https://github.com/stepchowfun/docuum) - Least recently used (LRU) eviction of Docker images by [@stepchowfun](https://github.com/stepchowfun) - [sherdock](https://github.com/rancher/sherdock) :skull: - Automatic GC of images based on regexp by [@rancher][rancher] ### Serverless From 0925bbcd38581cec5d02c4c62236cf8291ffd9aa Mon Sep 17 00:00:00 2001 From: Shizun Ge Date: Sat, 3 Feb 2024 10:59:15 -0800 Subject: [PATCH 132/327] Add gantry for automatically updating Docker services (#1115) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eb4a75ded..f39337f0c 100644 --- a/README.md +++ b/README.md @@ -606,6 +606,7 @@ Services to securely store your Docker images. - [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. +- [Gantry](https://github.com/shizunge/gantry) - Automatically update selected Docker swarm services. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. - [GOCD-Docker](https://github.com/gocd/gocd-docker) :skull: - Go Server and Agent in docker containers to provision. - [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. From 8fcd838f1091909a781c2193ea4b9b2362ff0b8c Mon Sep 17 00:00:00 2001 From: Julian Hochgesang Date: Thu, 8 Feb 2024 18:42:30 +0100 Subject: [PATCH 133/327] Add SparkView (#1117) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f39337f0c..2c829e3c7 100644 --- a/README.md +++ b/README.md @@ -465,6 +465,7 @@ Tools and applications that are either installed inside containers or designed t - [lstags](https://github.com/ivanilves/lstags) - sync Docker images across registries by [@ivanilves](https://github.com/ivanilves) - [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - The NVIDIA Container Runtime for Docker by [@NVIDIA][nvidia] - [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. +- [SparkView](https://github.com/beyondssl/sparkview-container) - Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. - [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa) - [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito] - [supercronic](https://github.com/aptible/supercronic) - crontab-compatible job runner, designed specifically to run in containers by [@aptible](https://github.com/aptible/) From cde4b9ac7d8e6d3e9c3a4de48c018dd2c6083e24 Mon Sep 17 00:00:00 2001 From: Sofus Albertsen Date: Thu, 29 Feb 2024 15:34:58 +0100 Subject: [PATCH 134/327] add Docker katas (#1118) * Update README.md This series of labs will take you from "Hello Docker" to deploying a containerized web application to a server. * fix: remove links with failing checks see https://github.com/veggiemonk/awesome-docker/actions/runs/8097381193/job/22129036106?pr=1118 --------- Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 2c829e3c7..39f70d8cd 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker Documentation](https://docs.docker.com/): the official documentation. - [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. - [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. +- [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. - [Docker Latest Tutorial](https://www.techgeekbuzz.com/tutorial/docker/what-is-docker/) — This is a series of latest docker tutorial, where you can learn what is docker, docker lifecycle, how to run Nginx Web Server in Docker?, how to run mysql on docker container, how to use Python on doceker and many other important topics. - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: @@ -126,7 +127,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [A Comparative Study of Docker Engine on Windows Server vs Linux Platform](https://collabnix.com/a-comparative-study-of-docker-engine-on-windows-server-vs-linux-platform/) Comparing the feature sets and implementations of Docker on Windows and Linux - [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [@kaitoedter](https://twitter.com/kaitoedter) -- [Docker Quick Tutorial](https://vegibit.com/docker-quick-tutorial/) Introduces you to the official Getting Started Tutorial using Windows 10 and Hyper-V. - [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. - [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker - [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] @@ -546,7 +546,6 @@ Examples by: Services to securely store your Docker images. -- [Alin.io](https://alin.io) - Build and Distribute container based applications. By [@tigranbs](https://github.com/tigranbs) - [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. - [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource - [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans) From 393566d1f5be82f025ee76357ebea80c653fd270 Mon Sep 17 00:00:00 2001 From: Austin Miller Date: Tue, 19 Mar 2024 16:49:22 -0700 Subject: [PATCH 135/327] Learn Docker Visually - Beginner focused high-level overview of all major components of Docker. (#1119) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 39f70d8cd..ef771a539 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: - [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. - [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) +- [Learn Docker (Visually)](https://pagertree.com/learn/docker) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. - [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. - [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This spanish guide contains the use of basic docker commands with real life examples. - [Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology. From 4107e446d6a11c62632a93164916a11c75cd3e77 Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sat, 6 Apr 2024 10:32:06 +0200 Subject: [PATCH 136/327] Fix URL linux-audit.com (#1120) replace /tag/ with /tags/ https://linux-audit.com/tag/docker/ => 410 https://linux-audit.com/tags/docker/ => 200 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ef771a539..5ec2bcf23 100644 --- a/README.md +++ b/README.md @@ -805,7 +805,7 @@ Services to securely store your Docker images. - [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://fr.slideshare.net/MichaelBoelen/docker-security-are-your-containers-tightly-secured-to-the-ship) - [How CVE's are handled on Offical Docker Images](https://github.com/docker-library/official-images/issues/1448) - [Lynis is an open source security auditing tool including Docker auditing](https://cisofy.com/lynis/) -- [Security Best Practices for Building Docker Images](https://linux-audit.com/tag/docker/) +- [Security Best Practices for Building Docker Images](https://linux-audit.com/tags/docker/) - [Software Engineering Radio interview of Docker Security Team Lead (Diogo Mónica)](https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security/) - [Ten Docker Image Security Best Practices Cheat Sheet](https://snyk.io/blog/10-docker-image-security-best-practices/) - [Top ten most popular docker images each contain at least 30 vulnerabilities](https://snyk.io/blog/top-ten-most-popular-docker-images-each-contain-at-least-30-vulnerabilities/) From b27a13f2a2280dfd063e7538a38b8a53a6362d80 Mon Sep 17 00:00:00 2001 From: hpsaturn Date: Mon, 8 Apr 2024 10:24:04 +0200 Subject: [PATCH 137/327] development environment entry: ESP32 Linux Docker Builder (#1121) * new development environment entry to compile Linux for ESP32 micros * fixed markdown issue --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5ec2bcf23..b6054be0a 100644 --- a/README.md +++ b/README.md @@ -646,6 +646,7 @@ Services to securely store your Docker images. - [Dusty](https://github.com/gamechanger/dusty) - Managed Docker development environments on OS X - [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE - [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [@EnvCLI](https://github.com/EnvCLI) +- [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [@Hpsaturn](https://github.com/hpsaturn) - [footloose](https://github.com/weaveworks/footloose) - Spin containers that look like Virtual Machines - By [@dlespiau](https://github.com/dlespiau) - [forward2docker](https://github.com/bsideup/forward2docker) :skull: - Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM by [@bsideup](https://github.com/bsideup) - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. From 2b38b627308d45f4ca6daf8d231eeb390b6898fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 19:33:48 +0200 Subject: [PATCH 138/327] Bump rimraf from 5.0.5 to 5.0.7 (#1122) Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.5 to 5.0.7. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v5.0.5...v5.0.7) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3856ed4bd..42b762e03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.2.0", "node-fetch": "3.3.2", - "rimraf": "5.0.5", + "rimraf": "5.0.7", "showdown": "^2.1.0" } }, @@ -535,9 +535,9 @@ } }, "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz", + "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", "dependencies": { "glob": "^10.3.7" }, @@ -545,7 +545,7 @@ "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=14" + "node": ">=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1142,9 +1142,9 @@ } }, "rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz", + "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", "requires": { "glob": "^10.3.7" } diff --git a/package.json b/package.json index 38be337c6..782352ea0 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.2.0", "node-fetch": "3.3.2", - "rimraf": "5.0.5", + "rimraf": "5.0.7", "showdown": "^2.1.0" } } From 5dfc524e74e2eb62ee857430d50dbc58b0de9df9 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Wed, 15 May 2024 06:47:50 +0200 Subject: [PATCH 139/327] docker-controller-bot (#1124) Telegram bot to control docker containers --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b6054be0a..a022a34e0 100644 --- a/README.md +++ b/README.md @@ -581,6 +581,7 @@ Services to securely store your Docker images. - [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy by [@gesellix][gesellix] - [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [@masaeedu](https://github.com/masaeedu) - [docker-client](https://github.com/spotify/docker-client) :skull: - Java client for the Docker remote API. By [@spotify][spotify] +- [docker-controller-bot](https://github.com/dgongut/docker-controller-bot) - Telegram bot to control docker containers. By [@dgongut](https://github.com/dgongut/) - [docker-it-scala](https://github.com/whisklabs/docker-it-scala) - Docker integration testing kit with Scala by [@whisklabs](https://github.com/whisklabs) - [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [@amihaiemil](https://github.com/amihaiemil) - [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images by [@fabric8io](https://github.com/fabric8io) From f5d48da87a9817847e4bbc0a771b2b1a8afd350f Mon Sep 17 00:00:00 2001 From: Denis Khoshaba Date: Mon, 27 May 2024 01:38:53 +1000 Subject: [PATCH 140/327] Add anchor (#1125) * Add anchor --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a022a34e0..9e072bae2 100644 --- a/README.md +++ b/README.md @@ -305,6 +305,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Security +- [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles [@SongStitch](https://github.com/songStitch/) - [Anchor Engine](https://github.com/anchore/anchore) - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore) - [Aqua Security](https://www.aquasec.com) :heavy_dollar_sign: - Securing container-based applications from Dev to Production on any platform - [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers by [@genuinetools][genuinetools] From e9f12cc305faa3f9d26bf2bbbfd929c4f9267b66 Mon Sep 17 00:00:00 2001 From: invzhi Date: Thu, 13 Jun 2024 13:25:07 +0800 Subject: [PATCH 141/327] caddy-docker-upstreams (#1127) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9e072bae2..d59e4b6c6 100644 --- a/README.md +++ b/README.md @@ -281,6 +281,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [bunkerized-nginx](https://github.com/bunkerity/bunkerized-nginx) - Web app hosting and reverse proxy secure by default. By [@bunkerity](https://github.com/bunkerity) - [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. By [@lucaslorentz](https://github.com/lucaslorentz) +- [caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams) - Docker upstreams module for Caddy, configured with container labels. By [@invzhi](https://github.com/invzhi) - [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. - [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [@docker-flow][docker-flow] - [docker-proxy](https://github.com/silarsis/docker-proxy) :skull: - Transparent proxy for docker containers, run in a docker container. By [@silarsis](https://github.com/silarsis) From c322627dce61cc7ceab390063ccf35f641deb42d Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Mon, 24 Jun 2024 07:54:31 +0200 Subject: [PATCH 142/327] fix slideshare link in readme (#1130) fixes https://github.com/veggiemonk/awesome-docker/actions/runs/9621141019/job/26540539035 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d59e4b6c6..e90654206 100644 --- a/README.md +++ b/README.md @@ -806,7 +806,7 @@ Services to securely store your Docker images. - [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) by [@tomwillfixit](https://twitter.com/tomwillfixit) - [Docker Secure Deployment Guidelines](https://github.com/AonCyberLabs/Docker-Secure-Deployment-Guidelines) - [Docker Security - Quick Reference](https://binarymist.io/publication/docker-security/) -- [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://fr.slideshare.net/MichaelBoelen/docker-security-are-your-containers-tightly-secured-to-the-ship) +- [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://www.slideshare.net/slideshow/docker-security-are-your-containers-tightly-secured-to-the-ship/43834790) - [How CVE's are handled on Offical Docker Images](https://github.com/docker-library/official-images/issues/1448) - [Lynis is an open source security auditing tool including Docker auditing](https://cisofy.com/lynis/) - [Security Best Practices for Building Docker Images](https://linux-audit.com/tags/docker/) From 7663c4e0f565f1ca5931248cf4811081bf42b0ac Mon Sep 17 00:00:00 2001 From: Ajay D <54715852+ajayd-san@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:52:58 +0530 Subject: [PATCH 143/327] Add goManageDocker (#1131) * Add goManageDocker * added gomanagedocker in correct position --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e90654206..5c3310a76 100644 --- a/README.md +++ b/README.md @@ -377,7 +377,6 @@ Native desktop applications for managing and montoring docker hosts and clusters #### Terminal ##### Terminal UI - - [ctop (1)](https://github.com/yadutaf/ctop) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python) by [@yadutaf](https://github.com/yadutaf) - [ctop (2)](https://github.com/bcicen/ctop) - :skull: Top-like interface for container metrics (Golang) by [@bcicen](https://github.com/bcicen/) - [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). @@ -387,6 +386,7 @@ Native desktop applications for managing and montoring docker hosts and clusters - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters) - [docui](https://github.com/skanehira/docui) - :skull: An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira] - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) +- [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box by [@ajay-dsan](https://github.com/ajayd-san) - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) - [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://www.rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard), by [@mrjackwills](https://github.com/mrjackwills) - [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine, by [@TomasTomecek][tomastomecek] From bfd12e200008a5f348b638e9be51f324fef940c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 17:25:52 +0200 Subject: [PATCH 144/327] Bump rimraf from 5.0.7 to 5.0.8 (#1132) Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.7 to 5.0.8. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v5.0.7...v5.0.8) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 42b762e03..71386038d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.2.0", "node-fetch": "3.3.2", - "rimraf": "5.0.7", + "rimraf": "5.0.8", "showdown": "^2.1.0" } }, @@ -535,9 +535,9 @@ } }, "node_modules/rimraf": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz", - "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.8.tgz", + "integrity": "sha512-XSh0V2/yNhDEi8HwdIefD8MLgs4LQXPag/nEJWs3YUc3Upn+UHa1GyIkEg9xSSNt7HnkO5FjTvmcRzgf+8UZuw==", "dependencies": { "glob": "^10.3.7" }, @@ -545,7 +545,7 @@ "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=14.18" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1142,9 +1142,9 @@ } }, "rimraf": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz", - "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.8.tgz", + "integrity": "sha512-XSh0V2/yNhDEi8HwdIefD8MLgs4LQXPag/nEJWs3YUc3Upn+UHa1GyIkEg9xSSNt7HnkO5FjTvmcRzgf+8UZuw==", "requires": { "glob": "^10.3.7" } diff --git a/package.json b/package.json index 782352ea0..1c37e12b8 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.2.0", "node-fetch": "3.3.2", - "rimraf": "5.0.7", + "rimraf": "5.0.8", "showdown": "^2.1.0" } } From a64c12fd1152c2cb2813e865f98c93efa5366822 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 17:06:36 +0200 Subject: [PATCH 145/327] Bump rimraf from 5.0.8 to 6.0.1 (#1135) Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.8 to 6.0.1. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v5.0.8...v6.0.1) --- updated-dependencies: - dependency-name: rimraf dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 152 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 84 insertions(+), 70 deletions(-) diff --git a/package-lock.json b/package-lock.json index 71386038d..0b632149f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.2.0", "node-fetch": "3.3.2", - "rimraf": "5.0.8", + "rimraf": "6.0.1", "showdown": "^2.1.0" } }, @@ -289,9 +289,9 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -328,21 +328,22 @@ } }, "node_modules/glob": { - "version": "10.3.9", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.9.tgz", - "integrity": "sha512-2tU/LKevAQvDVuVJ9pg9Yv9xcbSh+TqHuTaXTNbQwf+0kDl9Fm6bMovi4Nm5c8TVvfxo2LLcqCGtmO9KoJaGWg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -385,14 +386,14 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jackspeak": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.5.tgz", - "integrity": "sha512-Ratx+B8WeXLAtRJn26hrhY8S1+Jz6pxPMrkrdkgb/NstTNiqMhX0/oFVu5wX+g5n6JlEu2LPsDJmY8nRP4+alw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -413,31 +414,31 @@ } }, "node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minipass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", - "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -488,6 +489,11 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, "node_modules/parse5": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", @@ -520,32 +526,33 @@ } }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rimraf": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.8.tgz", - "integrity": "sha512-XSh0V2/yNhDEi8HwdIefD8MLgs4LQXPag/nEJWs3YUc3Upn+UHa1GyIkEg9xSSNt7HnkO5FjTvmcRzgf+8UZuw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dependencies": { - "glob": "^10.3.7" + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" }, "bin": { "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -987,9 +994,9 @@ } }, "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", "requires": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -1014,15 +1021,16 @@ } }, "glob": { - "version": "10.3.9", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.9.tgz", - "integrity": "sha512-2tU/LKevAQvDVuVJ9pg9Yv9xcbSh+TqHuTaXTNbQwf+0kDl9Fm6bMovi4Nm5c8TVvfxo2LLcqCGtmO9KoJaGWg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" } }, "graceful-fs": { @@ -1052,9 +1060,9 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "jackspeak": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.5.tgz", - "integrity": "sha512-Ratx+B8WeXLAtRJn26hrhY8S1+Jz6pxPMrkrdkgb/NstTNiqMhX0/oFVu5wX+g5n6JlEu2LPsDJmY8nRP4+alw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", "requires": { "@isaacs/cliui": "^8.0.2", "@pkgjs/parseargs": "^0.11.0" @@ -1070,22 +1078,22 @@ } }, "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==" }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "requires": { "brace-expansion": "^2.0.1" } }, "minipass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", - "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==" + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" }, "node-domexception": { "version": "1.0.0", @@ -1110,6 +1118,11 @@ "boolbase": "^1.0.0" } }, + "package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, "parse5": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", @@ -1133,20 +1146,21 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" } }, "rimraf": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.8.tgz", - "integrity": "sha512-XSh0V2/yNhDEi8HwdIefD8MLgs4LQXPag/nEJWs3YUc3Upn+UHa1GyIkEg9xSSNt7HnkO5FjTvmcRzgf+8UZuw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "requires": { - "glob": "^10.3.7" + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" } }, "shebang-command": { diff --git a/package.json b/package.json index 1c37e12b8..471f41d09 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "draftlog": "1.0.13", "fs-extra": "11.2.0", "node-fetch": "3.3.2", - "rimraf": "5.0.8", + "rimraf": "6.0.1", "showdown": "^2.1.0" } } From cf36e94b718f6ed79b55bac4e0e55fba97ee8ede Mon Sep 17 00:00:00 2001 From: Alan Pope Date: Fri, 12 Jul 2024 23:10:49 +0100 Subject: [PATCH 146/327] =?UTF-8?q?Add=20Syft=20SBOM=20tool=20to=20the=20A?= =?UTF-8?q?wesome=20Docker=20Security=20section=20=F0=9F=8E=89=20(#1134)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Syft to the security section The world's favorite SBOM tool :D * Fix my markdown blunder Ahem. * ABCDEFGHIJKLMNOPQR S TUVWXYZ You'd have thought I'd have learned the alphabet by now. I don't know *what* I was thinking, putting it waaaay up there. Sorry about that. * Update Syft & Anchore Ok, I didn't realise the Anchore link at the top is actually to a product which is no longer available. So, I did the following to reduce mess: 1) Fixed the Anchore Enterprise product name, and added the 💲 because it's a paid product. 2) Removed reference to Anchore from Syft, as it's an open source project with multiple contributors outside Anchore. I hope that's okay :D --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c3310a76..bdf4ad298 100644 --- a/README.md +++ b/README.md @@ -307,7 +307,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Security - [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles [@SongStitch](https://github.com/songStitch/) -- [Anchor Engine](https://github.com/anchore/anchore) - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore) +- [Anchor Enterprise](https://anchore.com/) :heavy_dollar_sign: - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore) - [Aqua Security](https://www.aquasec.com) :heavy_dollar_sign: - Securing container-based applications from Dev to Production on any platform - [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers by [@genuinetools][genuinetools] - [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints @@ -325,6 +325,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [notary](https://github.com/theupdateframework/notary) - a server and a client for running and interacting with trusted collections. By [@TUF](https://github.com/theupdateframework) - [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP) - [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) :heavy_dollar_sign: - (previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. +- [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. - [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. - [Sysdig Secure](https://sysdig.com/solutions/cloud-threat-detection-and-response/) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. - [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) :heavy_dollar_sign: - Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. From 000d2ad22ca706afe184cc253a114cc7188e6bc1 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 13 Jul 2024 16:34:42 +0200 Subject: [PATCH 147/327] bump node to LTS permanently (#1136) * Bump node to LTS permanently * chore: also bump version of node in pull request workflow --------- Co-authored-by: Julien Bisconti Co-authored-by: Manuel Schmid --- .github/workflows/pull_request.yml | 2 +- .nvmrc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 64bc6025c..091dd3ce5 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 - uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 with: - node-version: 18 + node-version: lts/* - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 id: cache diff --git a/.nvmrc b/.nvmrc index 31102b28d..b009dfb9d 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -14.18.1 +lts/* From 5d67b52ef8ee25d264f48cb6db49594e427a0890 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 13 Jul 2024 22:10:49 +0200 Subject: [PATCH 148/327] [maintainer] Remove mention of twitter bot (#1138) * Remove mention of twitter bot It seems broken since the twitter/x API changes. @vegasbrianc was the one to set it up back then. This has been mentioned in #1137 * Update config.yml first PR merged comment fixed --- .github/config.yml | 4 ++-- README.md | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/config.yml b/.github/config.yml index bace7f664..258738ec7 100644 --- a/.github/config.yml +++ b/.github/config.yml @@ -16,6 +16,6 @@ newPRWelcomeComment: > # Comment to be posted to on pull requests merged by a first time user firstPRMergeComment: > - Congrats on merging your first pull request! Checkout the twitter account (https://twitter.com/awesome_docker) to see your PR :D + Congrats on merging your first pull request! -# It is recommend to include as many gifs and emojis as possible \ No newline at end of file +# It is recommend to include as many gifs and emojis as possible diff --git a/README.md b/README.md index bdf4ad298..b2faf3a7c 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,6 @@ It contains a lot of tips and guidelines to help keep things organized. Just click [README.md][editreadme] to submit a [pull request][editreadme]. If this list is not complete, you can [contribute][editreadme] to make it so. Here is a great video tutorial to learn how to [contribute on Github](https://egghead.io/lessons/javascript-identifying-how-to-contribute-to-an-open-source-project-on-github). -**_You can see the updates on [TWITTER](https://twitter.com/awesome_docker)_** - > **Please**, help organize these resources so that they are _easy to find_ and _understand_ for newcomers. See how to **[Contribute][contributing]** for tips! **_If you see a link here that is not (any longer) a good fit, you can fix it by submitting a [pull request][editreadme] to improve this file. Thank you!_** From e407103e9c0bdcd4329f37373b07c4aff860cc26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 19:52:56 +0200 Subject: [PATCH 149/327] Bump cheerio from 1.0.0-rc.12 to 1.0.0 (#1139) Bumps [cheerio](https://github.com/cheeriojs/cheerio) from 1.0.0-rc.12 to 1.0.0. - [Release notes](https://github.com/cheeriojs/cheerio/releases) - [Commits](https://github.com/cheeriojs/cheerio/compare/v1.0.0-rc.12...v1.0.0) --- updated-dependencies: - dependency-name: cheerio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 222 +++++++++++++++++++++++++++++++++++----------- package.json | 2 +- 2 files changed, 173 insertions(+), 51 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b632149f..732509fdb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "Apache-2.0", "dependencies": { - "cheerio": "1.0.0-rc.12", + "cheerio": "1.0.0", "draftlog": "1.0.13", "fs-extra": "11.2.0", "node-fetch": "3.3.2", @@ -83,20 +83,24 @@ } }, "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=18.17" }, "funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" @@ -228,13 +232,13 @@ } }, "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" + "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -255,10 +259,22 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, "node_modules/entities": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { "node": ">=0.12" }, @@ -355,9 +371,9 @@ "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "node_modules/htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -367,9 +383,20 @@ ], "dependencies": { "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { @@ -495,11 +522,11 @@ "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" }, "node_modules/parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dependencies": { - "entities": "^4.3.0" + "entities": "^4.4.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -517,6 +544,17 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -558,6 +596,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -691,6 +734,14 @@ "node": ">=8" } }, + "node_modules/undici": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.7.tgz", + "integrity": "sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==", + "engines": { + "node": ">=18.17" + } + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -707,6 +758,25 @@ "node": ">= 8" } }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "engines": { + "node": ">=18" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -855,17 +925,21 @@ } }, "cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", "requires": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" } }, "cheerio-select": { @@ -955,13 +1029,13 @@ } }, "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "requires": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" + "domhandler": "^5.0.3" } }, "draftlog": { @@ -979,10 +1053,19 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "requires": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + } + }, "entities": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" }, "fetch-blob": { "version": "3.1.4", @@ -1039,14 +1122,22 @@ "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "requires": { "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "is-fullwidth-code-point": { @@ -1124,11 +1215,11 @@ "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" }, "parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "requires": { - "entities": "^4.3.0" + "entities": "^4.4.0" } }, "parse5-htmlparser2-tree-adapter": { @@ -1140,6 +1231,14 @@ "parse5": "^7.0.0" } }, + "parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "requires": { + "parse5": "^7.0.0" + } + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -1163,6 +1262,11 @@ "package-json-from-dist": "^1.0.0" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -1252,6 +1356,11 @@ } } }, + "undici": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.7.tgz", + "integrity": "sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==" + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -1262,6 +1371,19 @@ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" }, + "whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "requires": { + "iconv-lite": "0.6.3" + } + }, + "whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==" + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index 471f41d09..998d80630 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "homepage": "https://github.com/veggiemonk/awesome-docker#readme", "dependencies": { - "cheerio": "1.0.0-rc.12", + "cheerio": "1.0.0", "draftlog": "1.0.13", "fs-extra": "11.2.0", "node-fetch": "3.3.2", From 4a116add3a99e10dc972992e52439f69028e2f0d Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Thu, 15 Aug 2024 09:53:21 +0200 Subject: [PATCH 150/327] fix: update outdated links in README.md (#1140) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b2faf3a7c..5b2edfbb2 100644 --- a/README.md +++ b/README.md @@ -787,7 +787,7 @@ Services to securely store your Docker images. - [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** - [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [@jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015 -- [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/cloud/docker-vs-vms-combining-both-for-cloud-portability-nirvana/) +- [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/docker-vs-vms-combining-both-for-cloud-portability-nirvana/) - [Dockerfile best practices](https://github.com/hexops/dockerfile) - This repository has best-practices for writing Dockerfiles - [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [@King Chung Huang](https://github.com/kinghuang) - [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [@fgrehm][fgrehm] @@ -895,7 +895,7 @@ Services to securely store your Docker images. [lispyclouds]: https://github.com/lispyclouds [nvidia]: https://github.com/nvidia [nginxproxy]: https://github.com/nginx-proxy/nginx-proxy -[openshift]: https://www.okd.io +[openshift]: https://okd.io/ [oracle]: https://github.com/oracle [peco602]: https://github.com/Peco602 [powerman]: https://github.com/powerman From 2e5f3d912e3193529c0d2fe44791327cc974645e Mon Sep 17 00:00:00 2001 From: Jason Ng Date: Thu, 22 Aug 2024 17:16:02 +0800 Subject: [PATCH 151/327] Add MyIP (#1142) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5b2edfbb2..02d8b0f33 100644 --- a/README.md +++ b/README.md @@ -229,6 +229,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. - [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [@coreos][coreos] - [Freeflow](https://github.com/Microsoft/Freeflow) - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [@Microsoft](https://github.com/Microsoft) +- [MyIP](https://github.com/jason5ng32/MyIP) - All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [@jason5ng32](https://github.com/jason5ng32) - [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues by [@nicolaka](https://github.com/nicolaka) - [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [@jpetazzo][jpetazzo] - [Weave][weave] (The Docker network) - Weave creates a virtual network that connects Docker containers deployed across multiple hosts. From 22baa909a721befb1b238bcc9298e64e1b662fd8 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Thu, 22 Aug 2024 11:36:31 +0200 Subject: [PATCH 152/327] deprecate Dockeron (#1143) fixes #1141 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02d8b0f33..bf2bb6df7 100644 --- a/README.md +++ b/README.md @@ -368,7 +368,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) Native desktop applications for managing and montoring docker hosts and clusters - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS -- [Dockeron](https://github.com/dockeron/dockeron) - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) +- [Dockeron](https://github.com/dockeron/dockeron) :skull: - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) - [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station) - [Lifeboat](https://github.com/jplhomer/lifeboat) - An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer) - [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - built on Electron. By [@felixgborrego](https://github.com/felixgborrego/) From 84e69881ec5fc8a3b266fbf6505f4a8fc4446d3e Mon Sep 17 00:00:00 2001 From: Aman Kumar <62641343+bullet-ant@users.noreply.github.com> Date: Sun, 8 Sep 2024 17:13:59 +0530 Subject: [PATCH 153/327] Fix axibase collector link in readme (#1144) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf2bb6df7..1817ac584 100644 --- a/README.md +++ b/README.md @@ -199,7 +199,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Monitoring - [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. -- [Axibase Collector](https://github.com/axibase/docker-axibase-collector) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. +- [Axibase Collector](https://axibase.com/docs/axibase-collector/) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. Created by [@Google][google] - [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics - [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically by [@docker-flow][docker-flow] From 2856ae4a0ecd2d3ac2434e5e11e95bd0cb511d0f Mon Sep 17 00:00:00 2001 From: Daniel Lombardi Date: Sun, 6 Oct 2024 18:48:37 -0300 Subject: [PATCH 154/327] added: swarm-ansible (#1146) * Update README.md * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1817ac584..aad06039c 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [@Hasura](https://github.com/hasura/). - [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas) - [Longshoreman](https://github.com/longshoreman/longshoreman) :skull: - Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By [longshoreman](https://github.com/longshoreman) +- [swarm-ansible](https://github.com/LombardiDaniel/swarm-ansible?tab=readme-ov-file) - Swarm-Ansible bootstraps a production-ready swarm cluster using ansible. Comes with tools to automate CI, help monitoring and traefik pre-configured for SSL certificates and simple-auth. Comes with a private registry and more! - [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. - [werf](https://github.com/werf/werf) - werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps by [@flant](https://github.com/flant) From 4939d96c617adbe5627474908ab9f24d392df785 Mon Sep 17 00:00:00 2001 From: Lei Shi Date: Sun, 20 Oct 2024 23:22:51 +0800 Subject: [PATCH 155/327] Add Docker Hands-on Labs to Where to start section (#1147) * Add Docker Hands-on Labs to Where to start section * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aad06039c..549cfe60e 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker Documentation](https://docs.docker.com/): the official documentation. - [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. - [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. +- [Docker Hands-on Labs](https://labex.io/skilltrees/docker) A structured Docker skill tree with 100 beginner-friendly hands-on labs by LabEx. - [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. - [Docker Latest Tutorial](https://www.techgeekbuzz.com/tutorial/docker/what-is-docker/) — This is a series of latest docker tutorial, where you can learn what is docker, docker lifecycle, how to run Nginx Web Server in Docker?, how to run mysql on docker container, how to use Python on doceker and many other important topics. - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. From bb7c1a877c28ca139d1dd2b6f7c711e43bc47e4b Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Tue, 22 Oct 2024 02:53:35 +0200 Subject: [PATCH 156/327] update Google Container Registry -> Artifact Registry (#1149) * update Google Container Registry -> Artifact Registry * remove dockhero.io (link dead) * Update exclude_in_test.json udacity is still valid, just returned `forbidden`. --- README.md | 3 +-- tests/exclude_in_test.json | 5 +++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 549cfe60e..f666b9b04 100644 --- a/README.md +++ b/README.md @@ -563,7 +563,7 @@ Services to securely store your Docker images. - [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content - [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent by [@netvarun](https://github.com/netvarun/) - [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. -- [GCE Container Registry :heavy_dollar_sign:](https://cloud.google.com/artifact-registry) Fast, private Docker image storage on Google Cloud Platform +- [GCP Artifact Registry :heavy_dollar_sign:](https://cloud.google.com/artifact-registry/docs) Fast, private Docker image storage on Google Cloud Platform. - [Gitea Container Registry](https://docs.gitea.com/usage/packages/container) - Integrated Docker registry in Gitea, ideal for private, small-scale image hosting. - [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - GitHub's solution for storing and managing Docker images, with tight integration into GitHub Actions. - [GitLab Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/) - Registry focused on using its images in GitLab CI @@ -733,7 +733,6 @@ Services to securely store your Docker images. - [Appfleet](https://appfleet.com/) :heavy_dollar_sign: - Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency. - [Azure AKS](https://azure.microsoft.com/en-us/products/kubernetes-service/) :heavy_dollar_sign: - Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. - [Cloud 66](https://www.cloud66.com) :heavy_dollar_sign: - Full-stack hosted container management as a service -- [Dockhero](https://dockhero.io/) :heavy_dollar_sign: - Dockhero is a Heroku add-on which turns a Docker image into a microservice attached to the Heroku app. Currently in beta. - [Giant Swarm](https://www.giantswarm.io/) :heavy_dollar_sign: - Simple microservice infrastructure. Deploy your containers in seconds. - [Google Container Engine](https://cloud.google.com/kubernetes-engine/docs/) :heavy_dollar_sign: - Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. - [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) :heavy_dollar_sign: - Integrated platform for data and containers built on Apache Mesos by [@mesosphere](https://d2iq.com) diff --git a/tests/exclude_in_test.json b/tests/exclude_in_test.json index f06244ce7..6a0cb574a 100644 --- a/tests/exclude_in_test.json +++ b/tests/exclude_in_test.json @@ -9,5 +9,6 @@ "https://deepfence.io", "https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg", "https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security", - "https://www.reddit.com/r/docker/" -] \ No newline at end of file + "https://www.reddit.com/r/docker/", + "https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615" +] From 84662cedcdd710c1a657101cdc3c02aeb2265b28 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Tue, 22 Oct 2024 02:53:51 +0200 Subject: [PATCH 157/327] add docker-repack (#1148) https://github.com/orf/docker-repack --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f666b9b04..7d909a58e 100644 --- a/README.md +++ b/README.md @@ -492,6 +492,7 @@ Applications designed to help or simplify building **new** images - [docker-companion](https://github.com/mudler/docker-companion) - A command line tool written in Golang to squash and unpack docker images by [@mudler](https://github.com/mudler/) - [docker-make](https://github.com/CtripCloud/docker-make) - Build, tag,and push a bunch of related docker images via a single command. - [docker-replay](https://github.com/bcicen/docker-replay) - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen) +- [docker-repack](https://github.com/orf/docker-repack) - Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. By [orf](https://github.com/orf) - [DockerMake](https://github.com/avirshup/DockerMake) - A reproducible Docker image build system for complex software stacks. By [@avirshup](https://github.com/avirshup) - [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. - [Dockly](https://github.com/swipely/dockly) - Dockly is a gem made to ease the pain of packaging an application in Docker by [@swipely](https://github.com/swipely/) From f2c088a055af851d77bd34cdcbe8ebce3c4f4df4 Mon Sep 17 00:00:00 2001 From: Bob Conan Date: Mon, 21 Oct 2024 19:54:44 -0500 Subject: [PATCH 158/327] Update README.md, fix typos (#1150) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7d909a58e..6dd44740a 100644 --- a/README.md +++ b/README.md @@ -103,14 +103,14 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. - [Docker Hands-on Labs](https://labex.io/skilltrees/docker) A structured Docker skill tree with 100 beginner-friendly hands-on labs by LabEx. - [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. -- [Docker Latest Tutorial](https://www.techgeekbuzz.com/tutorial/docker/what-is-docker/) — This is a series of latest docker tutorial, where you can learn what is docker, docker lifecycle, how to run Nginx Web Server in Docker?, how to run mysql on docker container, how to use Python on doceker and many other important topics. +- [Docker Latest Tutorial](https://www.techgeekbuzz.com/tutorial/docker/what-is-docker/) — This is a series of latest docker tutorial, where you can learn what is docker, docker lifecycle, how to run Nginx Web Server in Docker?, how to run mysql on docker container, how to use Python on docker and many other important topics. - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: - [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. - [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) - [Learn Docker (Visually)](https://pagertree.com/learn/docker) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. - [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. -- [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This spanish guide contains the use of basic docker commands with real life examples. +- [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This Spanish guide contains the use of basic docker commands with real life examples. - [Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology. - [Setting Python Development Environment with VScode and Docker](https://github.com/RamiKrispin/vscode-python): A step-by-step tutorial for setting up a dockerized Python development environment with VScode, Docker, and the Dev Container extension. - [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. @@ -367,7 +367,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) #### Desktop -Native desktop applications for managing and montoring docker hosts and clusters +Native desktop applications for managing and monitoring docker hosts and clusters - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS - [Dockeron](https://github.com/dockeron/dockeron) :skull: - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) From 4f80700659aa8c5590661a979795a3e902d2ba04 Mon Sep 17 00:00:00 2001 From: Yasser Kaddoura Date: Tue, 12 Nov 2024 09:25:10 +0200 Subject: [PATCH 159/327] Add Komodo (#1151) A Portainer alternative https://github.com/mbecker20/komodo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6dd44740a..c0e10eb96 100644 --- a/README.md +++ b/README.md @@ -439,6 +439,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [dockering-on-rails](https://github.com/Electrofenster/dockerding-on-rails) :skull: - Simple Web-Interface for Docker with a lot of features by [@Electrofenster](https://github.com/Electrofenster/) - [DockerSurfer](https://github.com/Simone-Erba/DockerSurfer) :skull: - A web service for analyze and browse dependencies between Docker images in the Docker registry, by [@Simone-Erba](https://github.com/Simone-Erba/) - [dockge](https://github.com/louislam/dockge) - easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager by [@louislam](https://github.com/louislam). +- [Komodo](https://github.com/mbecker20/komodo) - A tool to build and deploy software on many servers - [Kubevious](https://github.com/kubevious/kubevious) - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way by [@rubenhak](https://github.com/rubenhak). - [Mafl](https://github.com/hywax/mafl) - Minimalistic flexible homepage by [@hywax](https://github.com/hywax/) - [netdata](https://github.com/netdata/netdata) - Real-time performance monitoring From 4076c72f67abc637cddcfd47130113fd74662013 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 30 Nov 2024 01:25:34 +0100 Subject: [PATCH 160/327] Bump cross-spawn from 7.0.3 to 7.0.6 (#1154) Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6. - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md) - [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6) --- updated-dependencies: - dependency-name: cross-spawn dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 732509fdb..3c00fb026 100644 --- a/package-lock.json +++ b/package-lock.json @@ -147,9 +147,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -974,9 +974,9 @@ "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==" }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", From 12706386a0ff7be9e0644f2db663a387b3a483d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20ROBERT?= Date: Sat, 30 Nov 2024 01:35:52 +0100 Subject: [PATCH 161/327] Add a French Blog (#1153) My site is among the most visited by French-speaking individuals for content on DevSecOps culture and tools. And of course, Docker is extensively documented on it. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c0e10eb96..92d711e57 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: - [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. +- [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... - [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) - [Learn Docker (Visually)](https://pagertree.com/learn/docker) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. - [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. From 4bcb9c2439c9e0b664c76690b8718910dee6f10a Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sun, 1 Dec 2024 11:21:51 +0100 Subject: [PATCH 162/327] fix windows install link (#1156) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92d711e57..f43ba1c88 100644 --- a/README.md +++ b/README.md @@ -883,7 +883,7 @@ Services to securely store your Docker images. [deepfence]: https://github.com/deepfence [distribution]: https://github.com/docker/distribution [docker-flow]: https://github.com/docker-flow -[docker-for-windows]: https://docs.docker.com/desktop/install/windows-install/ +[docker-for-windows]: https://docs.docker.com/desktop/setup/install/windows-install/ [docker]: https://github.com/docker [editreadme]: https://github.com/veggiemonk/awesome-docker/edit/master/README.md [fgrehm]: https://github.com/fgrehm From c62c45656de5b532508742da2caec2a3b62dbeec Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sun, 1 Dec 2024 11:22:29 +0100 Subject: [PATCH 163/327] remove empty header (#1155) fixes #1152 --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index f43ba1c88..f382d1bf6 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,6 @@ All the links are monitored and tested with a home baked [Node.js script](https: - [Russian](#russian) - [Spanish](#spanish) - [Stargazers over time](#stargazers-over-time) - - [Contributor over time](#contributor-over-time) @@ -871,8 +870,6 @@ Services to securely store your Docker images. [![Stargazers over time](https://starchart.cc/veggiemonk/awesome-docker.svg)](https://starchart.cc/veggiemonk/awesome-docker) -## Contributor over time - [contributing]: https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md [akito]: https://github.com/theAkito [calico]: https://github.com/projectcalico/calico From c99847009e549368a357258bc1a86da620cafaed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Jan 2025 18:55:13 +0100 Subject: [PATCH 164/327] Bump fs-extra from 11.2.0 to 11.3.0 (#1159) Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.2.0 to 11.3.0. - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.2.0...11.3.0) --- updated-dependencies: - dependency-name: fs-extra dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3c00fb026..58ce130f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cheerio": "1.0.0", "draftlog": "1.0.13", - "fs-extra": "11.2.0", + "fs-extra": "11.3.0", "node-fetch": "3.3.2", "rimraf": "6.0.1", "showdown": "^2.1.0" @@ -331,9 +331,9 @@ } }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1094,9 +1094,9 @@ } }, "fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/package.json b/package.json index 998d80630..3fdc3bae6 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "cheerio": "1.0.0", "draftlog": "1.0.13", - "fs-extra": "11.2.0", + "fs-extra": "11.3.0", "node-fetch": "3.3.2", "rimraf": "6.0.1", "showdown": "^2.1.0" From 6c1e1e1f76b2b6116478b1fa7a06592ffe1809db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 06:46:12 +0100 Subject: [PATCH 165/327] Bump undici from 6.19.7 to 6.21.1 (#1160) Bumps [undici](https://github.com/nodejs/undici) from 6.19.7 to 6.21.1. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v6.19.7...v6.21.1) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 58ce130f0..8c7e855bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -735,9 +735,10 @@ } }, "node_modules/undici": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.7.tgz", - "integrity": "sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==", + "version": "6.21.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", + "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==", + "license": "MIT", "engines": { "node": ">=18.17" } @@ -1357,9 +1358,9 @@ } }, "undici": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.7.tgz", - "integrity": "sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==" + "version": "6.21.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", + "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==" }, "universalify": { "version": "2.0.0", From 98d2223c13d0484c48e82090240741909dac93d1 Mon Sep 17 00:00:00 2001 From: Alex Kup <116945542+Lifailon@users.noreply.github.com> Date: Sat, 25 Jan 2025 12:10:32 +0300 Subject: [PATCH 166/327] add lazyjournal (#1161) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f382d1bf6..dbb4840bd 100644 --- a/README.md +++ b/README.md @@ -390,6 +390,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) - [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box by [@ajay-dsan](https://github.com/ajayd-san) - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) +- [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](https://github.com/amir20/dozzle) but for the terminal with support for fuzzy find, regex and output coloring - [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://www.rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard), by [@mrjackwills](https://github.com/mrjackwills) - [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine, by [@TomasTomecek][tomastomecek] From 1c3daa20730cc4819491edc84bb26b2c3c7304c5 Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sun, 23 Mar 2025 16:59:17 +0100 Subject: [PATCH 167/327] fix: update actions to latest available version (#1164) * fix: update actions to latest available version they're immutable tags anyways, not really a need to use sha's here * fix: prefix v on version tags --- .github/workflows/pull_request.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 091dd3ce5..241c04125 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,12 +11,12 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@e2f20e631ae6d7dd3b768f56a5d2af784dd54791 - - uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 + - uses: actions/checkout@v4.2.2 + - uses: actions/setup-node@v4.3.0 with: node-version: lts/* - - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 + - uses: actions/cache@v4.2.3 id: cache with: path: ~/.npm From f15a4e1168dcb3fab4344a7e6e0d371d1f04926c Mon Sep 17 00:00:00 2001 From: "Gorkem Cetin (BWL)" <167266851+gorkem-bwl@users.noreply.github.com> Date: Sun, 30 Mar 2025 12:01:12 -0400 Subject: [PATCH 168/327] Add Checkmate to "Monitoring" (#1163) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dbb4840bd..68779b36c 100644 --- a/README.md +++ b/README.md @@ -203,6 +203,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. - [Axibase Collector](https://axibase.com/docs/axibase-collector/) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. Created by [@Google][google] +- [Checkmate](https://github.com/bluewave-labs/checkmate) - Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. - [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics - [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically by [@docker-flow][docker-flow] - [Dockerana](https://github.com/dockerana/dockerana) :skull: - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. From 07b204cd549ae0f8488ecec11e761958be5a6eed Mon Sep 17 00:00:00 2001 From: Jack Stuart Date: Wed, 23 Apr 2025 14:04:08 +0800 Subject: [PATCH 169/327] Mark multiple projects as dead (#1166) --- README.md | 68 +++++++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 68779b36c..1c9be3bee 100644 --- a/README.md +++ b/README.md @@ -147,9 +147,9 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Moby](https://github.com/moby/moby) - [Docker Images](https://hub.docker.com) - [Docker Compose](https://github.com/docker/compose/) (Define and run multi-container applications with Docker) -- [Docker Machine](https://github.com/docker/machine) (Machine management for a container-centric world) +- [Docker Machine](https://github.com/docker/machine) :skull: (Machine management for a container-centric world) - [Docker Registry][distribution] (The Docker toolset to pack, ship, store, and deliver content) -- [Docker Swarm](https://github.com/docker/swarm) (Swarm: a Docker-native clustering system) +- [Docker Swarm](https://github.com/docker/swarm) :skull: (Swarm: a Docker-native clustering system) ## Container Operations @@ -216,7 +216,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] - [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. - [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor by [@vegasbrianc][vegasbrianc] -- [LogJam](https://github.com/gocardless/logjam) - Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by [@gocardless](https://github.com/gocardless) +- [LogJam](https://github.com/gocardless/logjam) - :skull: Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by [@gocardless](https://github.com/gocardless) - [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs by [@gliderlabs][gliderlabs] - [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus] - [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes by [@Nexclipper](https://github.com/NexClipper) @@ -253,8 +253,8 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Kontena](https://github.com/kontena/kontena) :skull: - The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use. - [Kubernetes](https://github.com/kubernetes/kubernetes) - Open source orchestration system for Docker containers by Google - [ManageIQ](https://github.com/ManageIQ/manageiq) - Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ) -- [Mantl](https://github.com/mantl/mantl) - Mantl is a modern platform for rapidly deploying globally distributed services -- [Marathon](https://github.com/mesosphere/marathon) - Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on" +- [Mantl](https://github.com/mantl/mantl) - :skull: Mantl is a modern platform for rapidly deploying globally distributed services +- [Marathon](https://github.com/mesosphere/marathon) - :skull: Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on" - [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [@apache](https://mesos.apache.org/) - [Nebula](https://github.com/nebula-orchestrator) - A Docker orchestration tool designed to manage massive scale distributed clusters. - [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler by [@hashicorp](https://github.com/hashicorp) @@ -299,7 +299,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Runtime -- [aind](https://github.com/aind-containers/aind) - AinD launches Android apps in Docker, by nesting Anbox containers inside Docker by [@aind-containers](https://github.com/aind-containers) +- [aind](https://github.com/aind-containers/aind) - :skull: AinD launches Android apps in Docker, by nesting Anbox containers inside Docker by [@aind-containers](https://github.com/aind-containers) - [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o) - [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers - [podman](https://github.com/containers/libpod) - libpod is a library used to create container pods. Home of Podman by [@containers][containers] @@ -345,8 +345,8 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [@blockbridge](https://github.com/blockbridge) - [Convoy](https://github.com/rancher/convoy) :skull: - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher] -- [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) Activates NFS for an existing boot2docker box created through Docker Machine on OS X. -- [Docker Unison](https://github.com/leighmcculloch/docker-unison) A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch) +- [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) :skull: - Activates NFS for an existing boot2docker box created through Docker Machine on OS X. +- [Docker Unison](https://github.com/leighmcculloch/docker-unison) - :skull: A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch) - [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [@offen](https://github.com/offen) - [Local Persist](https://github.com/MatchbookLab/local-persist) Specify a mountpoint for your local volumes (created via `docker volume create`) so that files will always persist and so you can mount to different directories in different containers. - [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers @@ -362,7 +362,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) - Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) -- [denops-docker.vim](https://github.com/skanehira/denops-docker.vim) - Manage docker containers and images in Vim. By [@skanehira] +- [denops-docker.vim](https://github.com/skanehira/denops-docker.vim) - :skull: Manage docker containers and images in Vim. By [@skanehira] - [docker.vim](https://github.com/skanehira/docker.vim) :skull: - Manage docker containers and images in Vim. By [@skanehira] - [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [@Silex](https://github.com/Silex) @@ -373,7 +373,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS - [Dockeron](https://github.com/dockeron/dockeron) :skull: - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) - [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station) -- [Lifeboat](https://github.com/jplhomer/lifeboat) - An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer) +- [Lifeboat](https://github.com/jplhomer/lifeboat) - :skull: An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer) - [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - built on Electron. By [@felixgborrego](https://github.com/felixgborrego/) - [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [@slonopotamus](https://github.com/slonopotamus) @@ -421,20 +421,20 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) - Search the Docker Registry with the Dext smart launcher. By [@vutran](https://github.com/vutran) - [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) - SSH Server for Docker containers ~ Because every container should be accessible. By [@jeroenpeeters](https://github.com/jeroenpeeters) -- [dockercraft](https://github.com/docker/dockercraft) - Docker + Minecraft = Dockercraft by [@docker][docker] +- [dockercraft](https://github.com/docker/dockercraft) - :skull: Docker + Minecraft = Dockercraft by [@docker][docker] - [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [@spotify][spotify] - [MultiDocker](https://github.com/marty90/multidocker) - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. - [Powerline-Docker](https://github.com/adrianmo/powerline-docker) - A Powerline segment for showing the status of Docker containers by [@adrianmo](https://github.com/adrianmo) #### Web -- [Admiral](https://github.com/vmware/admiral) Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By [VMWare][vmware] +- [Admiral](https://github.com/vmware/admiral) - :skull: Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By [VMWare][vmware] - [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers, by [@knrdl](https://github.com/knrdl) - [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [@wrfly](https://github.com/wrfly) - [dockemon](https://github.com/ProductiveOps/dokemon) - Docker Container Management GUI by [@productiveops](https://github.com/ProductiveOps) -- [Docker Compose UI](https://github.com/francescou/docker-compose-ui) - Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI +- [Docker Compose UI](https://github.com/francescou/docker-compose-ui) - :skull: Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI - [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2 by [@klausmeyer](https://github.com/klausmeyer) -- [Docker Registry UI (Joxit)](https://github.com/Joxit/docker-registry-ui) - The simplest and cleanest UI for private registries by [@Joxit](https://github.com/Joxit) +- [Docker Registry UI (Joxit)](https://github.com/Joxit/docker-registry-ui) - :skull: The simplest and cleanest UI for private registries by [@Joxit](https://github.com/Joxit) - [Docker Registry UI](https://github.com/atcol/docker-registry-ui) - A web UI for easy private/local Docker Registry integration by [@atcol](https://github.com/atcol) - [docker-registry-web](https://github.com/mkuchin/docker-registry-web) - Web UI, authentication service and event recorder for private docker registry v2 by [@mkuchin](https://github.com/mkuchin) - [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). @@ -471,7 +471,7 @@ Tools and applications that are either installed inside containers or designed t - [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool) by [@tianon](https://github.com/tianon) - [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container by [@sindresorhus][sindresorhus] - [lstags](https://github.com/ivanilves/lstags) - sync Docker images across registries by [@ivanilves](https://github.com/ivanilves) -- [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - The NVIDIA Container Runtime for Docker by [@NVIDIA][nvidia] +- [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - :skull: The NVIDIA Container Runtime for Docker by [@NVIDIA][nvidia] - [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. - [SparkView](https://github.com/beyondssl/sparkview-container) - Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. - [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa) @@ -487,7 +487,7 @@ Applications designed to help or simplify building **new** images - [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images by [@containers][containers] - [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit by [@moby project](https://github.com/moby) - [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines by [@cekit](https://github.com/cekit). -- [container-diff](https://github.com/GoogleContainerTools/container-diff) - An image tool for comparing and analyzing container images by [@GoogleContainerTools][googlecontainertools] +- [container-diff](https://github.com/GoogleContainerTools/container-diff) - :skull: An image tool for comparing and analyzing container images by [@GoogleContainerTools][googlecontainertools] - [container-factory](https://github.com/mutable/container-factory) - Produces Docker images from tarballs of application source code by [@mutable](https://github.com/mutable) - [copy-docker-image](https://github.com/mdlavin/copy-docker-image) - Copy a Docker image between registries without a full Docker installation by [@mdlavin](https://github.com/mdlavin) - [Derrick](https://github.com/alibaba/derrick) - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [@alibaba](https://github.com/alibaba). @@ -504,14 +504,14 @@ Applications designed to help or simplify building **new** images - [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components by [@NVIDIA][nvidia] - [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder by [@genuinetools][genuinetools] - [kaniko](https://github.com/GoogleContainerTools/kaniko) - Build Container Images In Kubernetes. By [@GoogleContainerTools][googlecontainertools] -- [makisu](https://github.com/uber/makisu) - Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber) +- [makisu](https://github.com/uber/makisu) - :skull: Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber) - [packer](https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible - [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images by [@duedil-ltd](https://github.com/duedil-ltd) - [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. - [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi) - [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers by [@lavie](https://github.com/lavie) - [SkinnyWhale](https://github.com/djosephsen/skinnywhale) :skull: - Skinnywhale helps you make smaller (as in megabytes) Docker containers. -- [Smith](https://github.com/oracle/smith) - A Micocontainer Builder and can perform multi-stage builds after the image is built [Oracle][oracle] +- [Smith](https://github.com/oracle/smith) - :skull: A Micocontainer Builder and can perform multi-stage builds after the image is built [Oracle][oracle] - [userdef](https://github.com/theAkito/userdef) - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito] - [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles by [@P3GLEG](https://github.com/P3GLEG/). - [Whales](https://github.com/Gueils/whales) - A tool to automatically dockerize your applications by [@icalialabs](https://github.com/IcaliaLabs). @@ -523,7 +523,7 @@ Applications designed to help or simplify building **new** images - [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. - [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [@PatrickHoefler](https://github.com/patrickhoefler) - [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. Maintained by [@CollageLabs](https://github.com/CollageLabs). -- [dockmoor](https://github.com/MeneDev/dockmoor) :construction: - Manage docker image references and help to create reproducible builds with Docker. By [@MeneDev](https://github.com/MeneDev) +- [dockmoor](https://github.com/MeneDev/dockmoor) :skull: - Manage docker image references and help to create reproducible builds with Docker. By [@MeneDev](https://github.com/MeneDev) - [Vektorcloud](https://github.com/vektorcloud) - A collection of minimal, Alpine-based Docker images Examples by: @@ -545,7 +545,7 @@ Examples by: - [dockfmt](https://github.com/jessfraz/dockfmt) :construction: - Dockerfile formatter and parser by [@jessfraz][jessfraz] - [FROM:latest](https://github.com/replicatedhq/dockerfilelint) - An opinionated Dockerfile linter by [@replicatedhq](https://github.com/replicatedhq) - [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions; by [@lukasmartinelli](https://github.com/lukasmartinelli) -- [Whale-linter](https://github.com/jeromepin/whale-linter) - A simple and small Dockerfile linter written in Python3+ without dependencies by [@jeromepin](https://github.com/jeromepin) +- [Whale-linter](https://github.com/jeromepin/whale-linter) - :skull: A simple and small Dockerfile linter written in Python3+ without dependencies by [@jeromepin](https://github.com/jeromepin) ### Metadata @@ -593,17 +593,17 @@ Services to securely store your Docker images. - [docker-it-scala](https://github.com/whisklabs/docker-it-scala) - Docker integration testing kit with Scala by [@whisklabs](https://github.com/whisklabs) - [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [@amihaiemil](https://github.com/amihaiemil) - [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images by [@fabric8io](https://github.com/fabric8io) -- [Docker-PowerShell](https://github.com/Microsoft/Docker-PowerShell) - PowerShell Module for Docker +- [Docker-PowerShell](https://github.com/Microsoft/Docker-PowerShell) - :skull: PowerShell Module for Docker - [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API by [@ahmetb](https://github.com/ahmetb) - [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [@rquackenbush](https://github.com/rquackenbush) -- [dockerfile-maven](https://github.com/spotify/dockerfile-maven) - A Maven plugin for building and pushing Docker images by [@spotify][spotify] +- [dockerfile-maven](https://github.com/spotify/dockerfile-maven) - :skull: A Maven plugin for building and pushing Docker images by [@spotify][spotify] - [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module by [@apocas](https://github.com/apocas) - [DoMonit](https://github.com/eon01/DoMonit) - A simple Docker Monitoring wrapper For Docker API - [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API by [@fsouza](https://github.com/fsouza/) - [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle by [@gesellix][gesellix] -- [libcompose](https://github.com/docker/libcompose) - Go library for Docker Compose. +- [libcompose](https://github.com/docker/libcompose) - :skull: Go library for Docker Compose. - [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) :construction: - Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [@greenled](https://github.com/greenled). -- [sbt-docker-compose](https://github.com/Tapad/sbt-docker-compose) - Integrates Docker Compose functionality into sbt by [@kurtkopchik](https://github.com/kurtkopchik/) +- [sbt-docker-compose](https://github.com/Tapad/sbt-docker-compose) - :skull: Integrates Docker Compose functionality into sbt by [@kurtkopchik](https://github.com/kurtkopchik/) - [sbt-docker](https://github.com/marcuslonnberg/sbt-docker) - Create Docker images directly from sbt by [@marcuslonnberg](https://github.com/marcuslonnberg) ### CI/CD @@ -633,15 +633,15 @@ Services to securely store your Docker images. ### Development Environment -- [batect](https://github.com/batect/batect) - build and testing environments as code tool: Dockerised build and testing environments made easy by [@charleskorn](https://github.com/charleskorn) +- [batect](https://github.com/batect/batect) - :skull: build and testing environments as code tool: Dockerised build and testing environments made easy by [@charleskorn](https://github.com/charleskorn) - [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [@TechnologyAdvice](https://github.com/TechnologyAdvice)) - [Boot2Docker](https://github.com/boot2docker/boot2docker) :skull: - Docker for OSX and Windows - [coder](https://github.com/coder/coder) - remote development machines powered by Terraform or Docker by [@coder](https://github.com/coder) - [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment by [@lstephen](https://github.com/lstephen) -- [Crashcart](https://github.com/oracle/crashcart) - Sideload Linux binaries into a running container for troubleshooting by [@Oracle][oracle] +- [Crashcart](https://github.com/oracle/crashcart) - :skull: Sideload Linux binaries into a running container for troubleshooting by [@Oracle][oracle] - [dde](https://github.com/whatwedo/dde) :construction: - Local development environment toolset based on Docker. By [@whatwedo](https://github.com/whatwedo) - [Devstep](https://github.com/fgrehm/devstep) :skull: - Development environments powered by Docker and buildpacks by [@fgrehm][fgrehm] -- [Dinghy](https://github.com/codekitchen/dinghy) - An alternative way to use Docker on Mac OS X using Docker Machine with virtualbox, vmware, xhyve or parallels +- [Dinghy](https://github.com/codekitchen/dinghy) - :skull: An alternative way to use Docker on Mac OS X using Docker Machine with virtualbox, vmware, xhyve or parallels - [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [@bibendi](https://github.com/bibendi) - [DLite](https://github.com/nlf/dlite) :skull: - Simplest way to use Docker on OSX, no VM needed. By [@nlf](https://github.com/nlf) - [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [@dnephin](https://github.com/dnephin) @@ -650,13 +650,13 @@ Services to securely store your Docker images. - [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [@Ph3nol](https://github.com/ph3nol) - [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer) - [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant) by [@shyiko](https://github.com/shyiko) -- [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. +- [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - :skull: Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. - [DockerDL](https://github.com/matifali/dockerdl) - Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. -- [Dusty](https://github.com/gamechanger/dusty) - Managed Docker development environments on OS X +- [Dusty](https://github.com/gamechanger/dusty) - :skull: Managed Docker development environments on OS X - [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE - [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [@EnvCLI](https://github.com/EnvCLI) - [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [@Hpsaturn](https://github.com/hpsaturn) -- [footloose](https://github.com/weaveworks/footloose) - Spin containers that look like Virtual Machines - By [@dlespiau](https://github.com/dlespiau) +- [footloose](https://github.com/weaveworks/footloose) - :skull: Spin containers that look like Virtual Machines - By [@dlespiau](https://github.com/dlespiau) - [forward2docker](https://github.com/bsideup/forward2docker) :skull: - Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM by [@bsideup](https://github.com/bsideup) - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. - [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [@senges](https://github.com/senges) @@ -673,7 +673,7 @@ Services to securely store your Docker images. - [docker_gc](https://github.com/pdacity/docker_gc) - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service by [@pdacity](https://github.com/pdacity) - [Docker-cleanup](https://github.com/meltwater/docker-cleanup) :skull: - Automatic Docker image, container and volume cleanup by [@meltwater](https://github.com/meltwater) - [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [@Yelp](https://github.com/Yelp) -- [docker-garby](https://github.com/konstruktoid/docker-garby) - Docker garbage collection script by [@konstruktoid](https://github.com/konstruktoid). +- [docker-garby](https://github.com/konstruktoid/docker-garby) - :skull: Docker garbage collection script by [@konstruktoid](https://github.com/konstruktoid). - [docker-gc](https://github.com/spotify/docker-gc) :skull: - A cron job that will delete old stopped containers and unused images by [@spotify][spotify] - [Docuum](https://github.com/stepchowfun/docuum) - Least recently used (LRU) eviction of Docker images by [@stepchowfun](https://github.com/stepchowfun) - [sherdock](https://github.com/rancher/sherdock) :skull: - Automatic GC of images based on regexp by [@rancher][rancher] @@ -682,7 +682,7 @@ Services to securely store your Docker images. - [AMP](https://github.com/appcelerator-archive/amp) :skull: - The open source unified CaaS/FaaS platform for Docker, batteries included. By [@Appcelerator](https://github.com/appcelerator-archive) - [Apache OpenWhisk](https://github.com/apache/openwhisk) - a serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache) -- [Docker-Lambda](https://github.com/lambci/docker-lambda) - Docker images and test runners that replicate the live AWS Lambda environment. By [@lamb-ci](https://github.com/lambci) +- [Docker-Lambda](https://github.com/lambci/docker-lambda) - :skull: Docker images and test runners that replicate the live AWS Lambda environment. By [@lamb-ci](https://github.com/lambci) - [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [@bfirsh](https://github.com/bfirsh) - [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions - [Koyeb](https://www.koyeb.com/) :heavy_dollar_sign: - Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. @@ -704,7 +704,7 @@ Services to securely store your Docker images. ### Wrappers - [Ansible](https://docs.ansible.com/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat -- [Azk](https://github.com/azukiapp/azk) - Orchestrate development environments on your local machine by [@azukiapp](https://github.com/azukiapp) +- [Azk](https://github.com/azukiapp/azk) - :skull: Orchestrate development environments on your local machine by [@azukiapp](https://github.com/azukiapp) - [Beluga](https://github.com/cortexmedia/Beluga) :skull: - CLI to deploy docker containers on a single server or low amount of servers. By [@cortextmedia](https://github.com/cortexmedia) - [dexec](https://github.com/docker-exec/dexec) - Command line interface written in Go for running code with Docker Exec images. - [dockerized](https://github.com/benzaita/dockerized-cli) - Seamlessly execute commands in a container. @@ -714,7 +714,7 @@ Services to securely store your Docker images. - [Preevy](https://github.com/livecycle/preevy) - Preview environments for Docker and Docker Compose projects. Test your changes and get feedback from devs and non-devs (Product/Design) by deploying pull requests to the your cloud provider as part of your CI pipeline. - [Shutit](https://github.com/ianmiell/shutit) - Tool for building and maintaining complex Docker deployments by [@ianmiell](https://github.com/ianmiell) - [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker -- [T.A.D.S. boilerplate](https://github.com/Thomvaill/tads-boilerplate) - The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By [@Thomvaill](https://github.com/Thomvaill) +- [T.A.D.S. boilerplate](https://github.com/Thomvaill/tads-boilerplate) - :skull: The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By [@Thomvaill](https://github.com/Thomvaill) - [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM - [Turbo](https://github.com/ramitsurana/turbo) - Simple and Powerful utility for docker. By [@ramitsurana][ramitsurana] - [udocker](https://github.com/indigo-dc/udocker) - A tool to execute simple docker containers in batch or interactive systems without root privileges by [@inidigo-dc](https://github.com/indigo-dc) From 9bd9d88c994d72707b3795fa4a55d09e9d975c18 Mon Sep 17 00:00:00 2001 From: Baikare Sandip Date: Fri, 25 Apr 2025 07:17:07 +0530 Subject: [PATCH 170/327] Update README.md (#1168) Updated awesome-stacks description --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1c9be3bee..3f6023ba4 100644 --- a/README.md +++ b/README.md @@ -182,7 +182,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Deployment and Infrastructure -- [awesome-stacks](https://github.com/ethibox/awesome-stacks) - Deploy 80+ open-source web apps with one Docker command +- [awesome-stacks](https://github.com/ethibox/awesome-stacks) - Deploy 150+ open-source web apps with one Docker command - [blackfish](https://gitlab.com/blackfish/blackfish) - a CoreOS VM to build swarm clusters for Dev & Production by [@blackfish](https://gitlab.com/blackfish/) - [BosnD](https://gitlab.com/n0r1sk/bosnd) - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments. - [Centurion](https://github.com/newrelic/centurion) - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [@newrelic](https://github.com/newrelic) From 0e0e1eb688338e3deabab950ac85a3af1ae97118 Mon Sep 17 00:00:00 2001 From: Piotr Hajdas <7317318+Lasim@users.noreply.github.com> Date: Thu, 8 May 2025 00:33:23 +0200 Subject: [PATCH 171/327] Add docker-to-iac: Convert Docker configurations to Infrastructure as Code templates (#1167) * Update README.md * Update for alphabetical order * Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f6023ba4..b9739d766 100644 --- a/README.md +++ b/README.md @@ -190,6 +190,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Conduit](https://github.com/ehazlett/conduit) - Experimental deployment system for Docker by [@ehazlett](https://github.com/ehazlett) - [depcon](https://github.com/ContainX/depcon) - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [@ContainX][containx] - [deploy](https://github.com/ttiny/deploy) :skull: - Git and Docker deployment tool. A middle ground between simple Docker composition tools and full blown cluster orchestration by [@ttiny](https://github.com/ttiny) +- [docker-to-iac](https://github.com/deploystackio/docker-to-iac) - Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean by [@DeployStack](https://github.com/deploystackio) - [dockit](https://github.com/humblec/dockit) :skull: - Do docker actions and Deploy gluster containers! By [@humblec](https://github.com/humblec) - [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [@Hasura](https://github.com/hasura/). - [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas) From 2be78fd663080c4b153333ad6ebddf72acaac71a Mon Sep 17 00:00:00 2001 From: Resul Date: Sun, 18 May 2025 11:37:12 +0300 Subject: [PATCH 172/327] Add Label Backup to README.md as a new Docker-aware backup agent (#1171) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b9739d766..d2bae9e1f 100644 --- a/README.md +++ b/README.md @@ -348,6 +348,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Convoy](https://github.com/rancher/convoy) :skull: - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher] - [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) :skull: - Activates NFS for an existing boot2docker box created through Docker Machine on OS X. - [Docker Unison](https://github.com/leighmcculloch/docker-unison) - :skull: A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch) +- - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. - [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [@offen](https://github.com/offen) - [Local Persist](https://github.com/MatchbookLab/local-persist) Specify a mountpoint for your local volumes (created via `docker volume create`) so that files will always persist and so you can mount to different directories in different containers. - [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers From d7c9729d668ade44a7145bca3c04c4aabfaf4991 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Jun 2025 09:02:04 +0200 Subject: [PATCH 173/327] Bump undici from 6.21.1 to 6.21.3 (#1169) Bumps [undici](https://github.com/nodejs/undici) from 6.21.1 to 6.21.3. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v6.21.1...v6.21.3) --- updated-dependencies: - dependency-name: undici dependency-version: 6.21.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c7e855bf..bd674af34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -735,9 +735,9 @@ } }, "node_modules/undici": { - "version": "6.21.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", - "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==", + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", + "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", "license": "MIT", "engines": { "node": ">=18.17" @@ -1358,9 +1358,9 @@ } }, "undici": { - "version": "6.21.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", - "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==" + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", + "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==" }, "universalify": { "version": "2.0.0", From 6e8b83b5a8f317b791fb9b62642781aef2df42d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 18:29:04 +0200 Subject: [PATCH 174/327] Bump cheerio from 1.0.0 to 1.1.0 (#1172) Bumps [cheerio](https://github.com/cheeriojs/cheerio) from 1.0.0 to 1.1.0. - [Release notes](https://github.com/cheeriojs/cheerio/releases) - [Commits](https://github.com/cheeriojs/cheerio/compare/v1.0.0...v1.1.0) --- updated-dependencies: - dependency-name: cheerio dependency-version: 1.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 155 +++++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 100 insertions(+), 57 deletions(-) diff --git a/package-lock.json b/package-lock.json index bd674af34..5eb1f8b29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "Apache-2.0", "dependencies": { - "cheerio": "1.0.0", + "cheerio": "1.1.0", "draftlog": "1.0.13", "fs-extra": "11.3.0", "node-fetch": "3.3.2", @@ -83,20 +83,21 @@ } }, "node_modules/cheerio": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", - "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.0.tgz", + "integrity": "sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==", + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", + "domutils": "^3.2.2", "encoding-sniffer": "^0.2.0", - "htmlparser2": "^9.1.0", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^7.0.0", + "htmlparser2": "^10.0.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", - "undici": "^6.19.5", + "undici": "^7.10.0", "whatwg-mimetype": "^4.0.0" }, "engines": { @@ -232,9 +233,10 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -371,9 +373,9 @@ "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -381,11 +383,24 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/iconv-lite": { @@ -522,22 +537,24 @@ "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", "dependencies": { - "domhandler": "^5.0.2", + "domhandler": "^5.0.3", "parse5": "^7.0.0" }, "funding": { @@ -555,6 +572,18 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -735,12 +764,12 @@ } }, "node_modules/undici": { - "version": "6.21.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", - "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.10.0.tgz", + "integrity": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==", "license": "MIT", "engines": { - "node": ">=18.17" + "node": ">=20.18.1" } }, "node_modules/universalify": { @@ -926,20 +955,20 @@ } }, "cheerio": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", - "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.0.tgz", + "integrity": "sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==", "requires": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", + "domutils": "^3.2.2", "encoding-sniffer": "^0.2.0", - "htmlparser2": "^9.1.0", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^7.0.0", + "htmlparser2": "^10.0.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", - "undici": "^6.19.5", + "undici": "^7.10.0", "whatwg-mimetype": "^4.0.0" } }, @@ -1030,9 +1059,9 @@ } }, "domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "requires": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -1123,14 +1152,21 @@ "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", "requires": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" + "domutils": "^3.2.1", + "entities": "^6.0.0" + }, + "dependencies": { + "entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==" + } } }, "iconv-lite": { @@ -1216,19 +1252,26 @@ "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" }, "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "requires": { - "entities": "^4.4.0" + "entities": "^6.0.0" + }, + "dependencies": { + "entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==" + } } }, "parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", "requires": { - "domhandler": "^5.0.2", + "domhandler": "^5.0.3", "parse5": "^7.0.0" } }, @@ -1358,9 +1401,9 @@ } }, "undici": { - "version": "6.21.3", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", - "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==" + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.10.0.tgz", + "integrity": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==" }, "universalify": { "version": "2.0.0", diff --git a/package.json b/package.json index 3fdc3bae6..d39ce0318 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "homepage": "https://github.com/veggiemonk/awesome-docker#readme", "dependencies": { - "cheerio": "1.0.0", + "cheerio": "1.1.0", "draftlog": "1.0.13", "fs-extra": "11.3.0", "node-fetch": "3.3.2", From 5002c486cfb2a29a7deb2125330134f4cea660cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Jun 2025 09:29:56 +0200 Subject: [PATCH 175/327] Bump brace-expansion from 2.0.1 to 2.0.2 (#1173) Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 2.0.1 to 2.0.2. - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](https://github.com/juliangruber/brace-expansion/compare/v2.0.1...v2.0.2) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 2.0.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5eb1f8b29..7584d6ef4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -75,9 +75,10 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -947,9 +948,9 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "requires": { "balanced-match": "^1.0.0" } From 603875dddfcf694561f1d5503cd846e6265d9858 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 07:09:46 +0200 Subject: [PATCH 176/327] Bump cheerio from 1.1.0 to 1.1.2 (#1177) Bumps [cheerio](https://github.com/cheeriojs/cheerio) from 1.1.0 to 1.1.2. - [Release notes](https://github.com/cheeriojs/cheerio/releases) - [Commits](https://github.com/cheeriojs/cheerio/compare/v1.1.0...v1.1.2) --- updated-dependencies: - dependency-name: cheerio dependency-version: 1.1.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 50 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7584d6ef4..bce7ee3e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "Apache-2.0", "dependencies": { - "cheerio": "1.1.0", + "cheerio": "1.1.2", "draftlog": "1.0.13", "fs-extra": "11.3.0", "node-fetch": "3.3.2", @@ -84,25 +84,24 @@ } }, "node_modules/cheerio": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.0.tgz", - "integrity": "sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==", - "license": "MIT", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.2.tgz", + "integrity": "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", - "encoding-sniffer": "^0.2.0", + "encoding-sniffer": "^0.2.1", "htmlparser2": "^10.0.0", "parse5": "^7.3.0", "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", - "undici": "^7.10.0", + "undici": "^7.12.0", "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": ">=18.17" + "node": ">=20.18.1" }, "funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" @@ -263,9 +262,9 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/encoding-sniffer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", - "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", "dependencies": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" @@ -765,10 +764,9 @@ } }, "node_modules/undici": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.10.0.tgz", - "integrity": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==", - "license": "MIT", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.12.0.tgz", + "integrity": "sha512-GrKEsc3ughskmGA9jevVlIOPMiiAHJ4OFUtaAH+NhfTUSiZ1wMPIQqQvAJUrJspFXJt3EBWgpAeoHEDVT1IBug==", "engines": { "node": ">=20.18.1" } @@ -956,20 +954,20 @@ } }, "cheerio": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.0.tgz", - "integrity": "sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.2.tgz", + "integrity": "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==", "requires": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", - "encoding-sniffer": "^0.2.0", + "encoding-sniffer": "^0.2.1", "htmlparser2": "^10.0.0", "parse5": "^7.3.0", "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", - "undici": "^7.10.0", + "undici": "^7.12.0", "whatwg-mimetype": "^4.0.0" } }, @@ -1085,9 +1083,9 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "encoding-sniffer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", - "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", "requires": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" @@ -1402,9 +1400,9 @@ } }, "undici": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.10.0.tgz", - "integrity": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==" + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.12.0.tgz", + "integrity": "sha512-GrKEsc3ughskmGA9jevVlIOPMiiAHJ4OFUtaAH+NhfTUSiZ1wMPIQqQvAJUrJspFXJt3EBWgpAeoHEDVT1IBug==" }, "universalify": { "version": "2.0.0", diff --git a/package.json b/package.json index d39ce0318..43fccae07 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "homepage": "https://github.com/veggiemonk/awesome-docker#readme", "dependencies": { - "cheerio": "1.1.0", + "cheerio": "1.1.2", "draftlog": "1.0.13", "fs-extra": "11.3.0", "node-fetch": "3.3.2", From fe842e3617188abd9faba3fcb9da169d75c2c2d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Aug 2025 18:26:27 +0200 Subject: [PATCH 177/327] Bump fs-extra from 11.3.0 to 11.3.1 (#1179) Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.3.0 to 11.3.1. - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.3.0...11.3.1) --- updated-dependencies: - dependency-name: fs-extra dependency-version: 11.3.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index bce7ee3e6..d12d941e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cheerio": "1.1.2", "draftlog": "1.0.13", - "fs-extra": "11.3.0", + "fs-extra": "11.3.1", "node-fetch": "3.3.2", "rimraf": "6.0.1", "showdown": "^2.1.0" @@ -333,9 +333,9 @@ } }, "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1123,9 +1123,9 @@ } }, "fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", + "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/package.json b/package.json index 43fccae07..ee398a175 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "cheerio": "1.1.2", "draftlog": "1.0.13", - "fs-extra": "11.3.0", + "fs-extra": "11.3.1", "node-fetch": "3.3.2", "rimraf": "6.0.1", "showdown": "^2.1.0" From 4d95f6faf35e0ef835f41c98fd0a9f8d459a2104 Mon Sep 17 00:00:00 2001 From: 100tomer <43668725+100tomer@users.noreply.github.com> Date: Wed, 27 Aug 2025 01:37:56 +0300 Subject: [PATCH 178/327] =?UTF-8?q?Add=20RepoFlow=20=E2=80=93=20a=20simple?= =?UTF-8?q?=20Docker-compatible=20package=20management=20platform=20(#1174?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d2bae9e1f..aae76084f 100644 --- a/README.md +++ b/README.md @@ -578,6 +578,7 @@ Services to securely store your Docker images. - [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. - [Quay.io :heavy_dollar_sign:](https://quay.io/) (part of CoreOS) - Secure hosting for private Docker repositories - [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry +- [RepoFlow](https://www.repoflow.io) - A simple and easy-to-use package management platform with Docker support alongside other formats like PyPI, Maven, npm, and Helm. Includes smart search, built-in Docker image scanning, and a great free option for both self-hosted and cloud use. - [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source) by [@noteed](https://github.com/noteed) - [Sonatype Nexus Repository](https://www.sonatype.com/products/sonatype-nexus-repository) - Manage binaries and build artifacts across your software supply chain. From 1763c33c6135a2c524bdd5ea34d0bbad86d806bb Mon Sep 17 00:00:00 2001 From: Byte Sharky Date: Thu, 11 Sep 2025 01:45:14 +0800 Subject: [PATCH 179/327] Add docker-dns to Service Discovery (#1181) * Add docker-dns to Service Discovery Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. .docker) on the host to simplify service discovery. * docs: add missing user information Updated docker-dns description to include author attribution --------- Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index aae76084f..9ebccb4f8 100644 --- a/README.md +++ b/README.md @@ -337,6 +337,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Service Discovery - [docker-consul](https://github.com/gliderlabs/docker-consul) by [@progrium][progrium] +- [docker-dns](https://github.com/bytesharky/docker-dns) - Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. `.docker`) on the host to simplify service discovery by [@bytesharky](https://github.com/bytesharky) - [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [@etcd-io](https://github.com/etcd-io) (former part of CoreOS) - [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices by [@istio](https://github.com/istio) - [proxy](https://github.com/factorish/proxy) :skull: - lightweight nginx based load balancer self using service discovery provided by registrator. by [@factorish](https://github.com/factorish) From 56c94319453b1db1356d7ecedc8cd2918732cd50 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 08:19:42 +0200 Subject: [PATCH 180/327] Bump fs-extra from 11.3.1 to 11.3.2 (#1182) Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.3.1 to 11.3.2. - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.3.1...11.3.2) --- updated-dependencies: - dependency-name: fs-extra dependency-version: 11.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index d12d941e2..76d8cb94e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cheerio": "1.1.2", "draftlog": "1.0.13", - "fs-extra": "11.3.1", + "fs-extra": "11.3.2", "node-fetch": "3.3.2", "rimraf": "6.0.1", "showdown": "^2.1.0" @@ -333,9 +333,9 @@ } }, "node_modules/fs-extra": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", - "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1123,9 +1123,9 @@ } }, "fs-extra": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", - "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/package.json b/package.json index ee398a175..5318f8ca2 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dependencies": { "cheerio": "1.1.2", "draftlog": "1.0.13", - "fs-extra": "11.3.1", + "fs-extra": "11.3.2", "node-fetch": "3.3.2", "rimraf": "6.0.1", "showdown": "^2.1.0" From 035af2a05b3b5fd8fb0521539fcd65d237480d4d Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sat, 20 Sep 2025 20:33:46 +0200 Subject: [PATCH 181/327] feat: add defang (#1184) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ebccb4f8..03162da70 100644 --- a/README.md +++ b/README.md @@ -615,6 +615,7 @@ Services to securely store your Docker images. - [Buddy :heavy_dollar_sign:](https://buddy.works) - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. - [Captain](https://github.com/harbur/captain) - Convert your Git workflow to Docker containers ready for Continuous Delivery by [@harbur](https://github.com/harbur). - [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources by [@caicloud](https://github.com/caicloud). +- [Defang](https://github.com/DefangLabs/defang) - Deploy Docker Compose to your favorite cloud in minutes by [@DefangLabs](https://github.com/DefangLabs) - [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). - [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max]. - [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. From 43bde87b9d1b4ede620b130db2927755c21776c5 Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sat, 20 Sep 2025 20:34:19 +0200 Subject: [PATCH 182/327] feat: add DockStat (#1185) * feat: add DockStat * fix: use correct order for :construction: sign * fix: use description of repository https://github.com/its4nik/dockstat instead of the one provided by @its4nik --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 03162da70..3a16f55d3 100644 --- a/README.md +++ b/README.md @@ -757,6 +757,7 @@ Services to securely store your Docker images. - [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) :heavy_dollar_sign: - Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies) - [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) - [Datadog](https://www.datadoghq.com/) :heavy_dollar_sign: - Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. +- [DockStat](https://github.com/its4nik/dockstat) :construction: - A full fletched (WIP) Docker management solution featuring plugin support and community integration by [its4nik](https://github.com/its4nik) - [Prometheus](https://prometheus.io/) :heavy_dollar_sign: - Open-source service monitoring system and time series database - [Site24x7](https://www.site24x7.com/docker-monitoring.html) :heavy_dollar_sign: - Docker Monitoring for DevOps and IT is a SaaS Pay per Host model - [SPM for Docker](https://github.com/sematext/sematext-agent-docker) :heavy_dollar_sign: - Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [@sematext](https://github.com/sematext) From f060745a7ddb89ccff1114d40cc5f3024467a94a Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Sun, 21 Sep 2025 14:20:11 +0200 Subject: [PATCH 183/327] hotfix: adjust broken links (#1183) * hotfix: adjust broken links as mentioned in https://github.com/veggiemonk/awesome-docker/actions/runs/17872390689/job/50828260945 * hotfix: adjust broken links #2 as mentioned in https://github.com/veggiemonk/awesome-docker/actions/runs/17881642309/job/50850052160?pr=1183 * hotfix: adjust broken links #3 as mentioned in https://github.com/veggiemonk/awesome-docker/actions/runs/17881663351/job/50850098802?pr=1183 --- README.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 3a16f55d3..b6727b0c8 100644 --- a/README.md +++ b/README.md @@ -94,21 +94,20 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) # Where to start -- [Benefits of using Docker](https://semaphoreci.com/blog/docker-benefits) for development and delivery, with a practical roadmap for adoption. +- [Benefits of using Docker](https://semaphore.io/blog/docker-benefits) for development and delivery, with a practical roadmap for adoption. - [Bootstrapping Microservices](https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform) by [Ashley Davis](https://twitter.com/ashleydavis75) - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster. - [Docker Curriculum](https://github.com/prakhar1989/docker-curriculum): A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service. - [Docker Documentation](https://docs.docker.com/): the official documentation. - [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. - [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. -- [Docker Hands-on Labs](https://labex.io/skilltrees/docker) A structured Docker skill tree with 100 beginner-friendly hands-on labs by LabEx. +- [Docker Hands-on Labs](https://labex.io/learn/docker) A structured Docker skill tree with 100 beginner-friendly hands-on labs by LabEx. - [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. -- [Docker Latest Tutorial](https://www.techgeekbuzz.com/tutorial/docker/what-is-docker/) — This is a series of latest docker tutorial, where you can learn what is docker, docker lifecycle, how to run Nginx Web Server in Docker?, how to run mysql on docker container, how to use Python on docker and many other important topics. - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: -- [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) — In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. +- [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) —In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. - [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... - [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) -- [Learn Docker (Visually)](https://pagertree.com/learn/docker) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. +- [Learn Docker (Visually)](https://pagertree.com/learn/docker/overview) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. - [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. - [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This Spanish guide contains the use of basic docker commands with real life examples. - [Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology. @@ -211,7 +210,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. - [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by [@stefanprodan](https://github.com/stefanprodan) - [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [@amerkurev](https://github.com/amerkurev) -- [Dozzle](https://github.com/amir20/dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) +- [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) - [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands - [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] @@ -330,7 +329,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) :heavy_dollar_sign: - (previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. - [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. - [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. -- [Sysdig Secure](https://sysdig.com/solutions/cloud-threat-detection-and-response/) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. +- [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. - [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) :heavy_dollar_sign: - Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. - [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). @@ -394,7 +393,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) - [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box by [@ajay-dsan](https://github.com/ajayd-san) - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) -- [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](https://github.com/amir20/dozzle) but for the terminal with support for fuzzy find, regex and output coloring +- [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring - [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://www.rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard), by [@mrjackwills](https://github.com/mrjackwills) - [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine, by [@TomasTomecek][tomastomecek] @@ -573,7 +572,7 @@ Services to securely store your Docker images. - [GCP Artifact Registry :heavy_dollar_sign:](https://cloud.google.com/artifact-registry/docs) Fast, private Docker image storage on Google Cloud Platform. - [Gitea Container Registry](https://docs.gitea.com/usage/packages/container) - Integrated Docker registry in Gitea, ideal for private, small-scale image hosting. - [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - GitHub's solution for storing and managing Docker images, with tight integration into GitHub Actions. -- [GitLab Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/) - Registry focused on using its images in GitLab CI +- [GitLab Container Registry](https://docs.gitlab.com/user/packages/container_registry/) - Registry focused on using its images in GitLab CI - [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] - [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well - [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. @@ -665,7 +664,7 @@ Services to securely store your Docker images. - [forward2docker](https://github.com/bsideup/forward2docker) :skull: - Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM by [@bsideup](https://github.com/bsideup) - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. - [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [@senges](https://github.com/senges) -- [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://thinktandem.io/) +- [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://www.thinktandem.io/) - [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) - Container solution to compile Rust projects for Linux, macOS and Windows. By [@Peco602][peco602] - [uniget](https://github.com/uniget-org/cli) - uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [@nicholasdille](https://github.com/nicholasdille) - [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments by [@tailhook](https://github.com/tailhook/) @@ -733,7 +732,7 @@ Services to securely store your Docker images. - [CodeFresh](https://codefresh.io) :heavy_dollar_sign: - Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. - [CodeShip](https://www.cloudbees.com/products/codeship) :heavy_dollar_sign: - Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. - [ConcourseCI](https://concourse-ci.org) :heavy_dollar_sign: - A CI SaaS platform for developers and DevOps teams pipeline oriented. -- [Semaphore CI](https://semaphoreci.com/) :heavy_dollar_sign: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. +- [Semaphore CI](https://semaphore.io/) :heavy_dollar_sign: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. - [TravisCI](https://www.travis-ci.com/) :heavy_dollar_sign: - A Free github projects continuous integration Saas platform for developers and Devops. ### CaaS @@ -761,12 +760,11 @@ Services to securely store your Docker images. - [Prometheus](https://prometheus.io/) :heavy_dollar_sign: - Open-source service monitoring system and time series database - [Site24x7](https://www.site24x7.com/docker-monitoring.html) :heavy_dollar_sign: - Docker Monitoring for DevOps and IT is a SaaS Pay per Host model - [SPM for Docker](https://github.com/sematext/sematext-agent-docker) :heavy_dollar_sign: - Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [@sematext](https://github.com/sematext) -- [Sysdig Monitor](https://sysdig.com/products/monitor/) :heavy_dollar_sign: - Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. +- [Sysdig Monitor](https://www.sysdig.com/products/monitor) :heavy_dollar_sign: - Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. # Useful Resources - **[Valuable Docker Links](http://nane.kratzke.pages.mylab.th-luebeck.de/about/blog/2014/08/24/valuable-docker-links/)** High quality articles about docker! **MUST SEE** -- [Become a Docker Power User with Visual Studio Code](https://www.thebyte.io/become-docker-power-user-with-vs-code) - :heavy_dollar_sign: A training course to help you become a Docker Power user with Visual Studio Code - [Cloud Native Landscape](https://github.com/cncf/landscape) - [Docker Blog](https://www.docker.com/blog/) - regular updates about Docker, the community and tools - [Docker Certification](https://intellipaat.com/docker-training-course/?US) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. @@ -799,7 +797,7 @@ Services to securely store your Docker images. - [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** - [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [@jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015 -- [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/docker-vs-vms-combining-both-for-cloud-portability-nirvana/) +- [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/) - [Dockerfile best practices](https://github.com/hexops/dockerfile) - This repository has best-practices for writing Dockerfiles - [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [@King Chung Huang](https://github.com/kinghuang) - [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [@fgrehm][fgrehm] @@ -890,6 +888,7 @@ Services to securely store your Docker images. [docker-flow]: https://github.com/docker-flow [docker-for-windows]: https://docs.docker.com/desktop/setup/install/windows-install/ [docker]: https://github.com/docker +[dozzle]: https://github.com/amir20/dozzle [editreadme]: https://github.com/veggiemonk/awesome-docker/edit/master/README.md [fgrehm]: https://github.com/fgrehm [gesellix]: https://github.com/gesellix From cb2b7788f2281488c2727238a41bbee38846fafb Mon Sep 17 00:00:00 2001 From: UUSEC Technology Date: Fri, 26 Sep 2025 15:18:57 +0800 Subject: [PATCH 184/327] Add OpenResty Manager (#1170) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b6727b0c8..80fad3ac3 100644 --- a/README.md +++ b/README.md @@ -293,6 +293,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [muguet](https://github.com/mattallty/muguet) :skull: - DNS Server & Reverse proxy for Docker environments. By [@mattallty](https://github.com/mattallty) - [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [@jc21](https://github.com/jc21) - [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [@jwilder][jwilder] +- [OpenResty Manager](https://github.com/Safe3/openresty-manager) - The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. By [@Safe3](https://github.com/Safe3/) - [Swarm Ingress Router](https://github.com/tpbowden/swarm-ingress-router) :skull: - Route DNS names to Swarm services based on labels. By [@tpbowden](https://github.com/tpbowden/) - [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [@flavioaiello](https://github.com/flavioaiello) - [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [@EmileVauge](https://github.com/emilevauge) From 5b464510142c9085b916895eff1f682d2e77926d Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Thu, 2 Oct 2025 15:03:59 +0200 Subject: [PATCH 185/327] Modernization (thanks to AI) (#1187) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * - ✅ Removed 3 broken links (labex.io, hashnode.com entries) - ✅ Fixed rust-lang.org redirect issue - ✅ Added problematic domains to exclusion list (YouTube playlists, aquasec, cloudsmith) - ✅ Updated all npm dependencies to latest versions - ✅ **health_check.mjs** - Comprehensive repository health checker - Detects archived repositories - Identifies stale projects (2+ years inactive) - Flags inactive projects (1-2 years) - Generates detailed health reports - Run with: `npm run health-check` - ✅ **test_all.mjs** - Now detects archived repositories - Added `isArchived` field to GraphQL query - Warns about archived repos that should be marked `:skull:` - Non-blocking warnings (doesn't fail builds) - Runs every Monday at 9 AM UTC - Checks all 731+ GitHub repositories for health - Auto-creates/updates GitHub issue with findings - Labels: `health-report`, `maintenance` - Manual trigger available - Runs every Saturday at 2 AM UTC - Tests all external links - Auto-creates issue when links break - Auto-closes issue when all links fixed - Labels: `broken-links`, `bug` - Already checks for duplicates - Now also checks for archived repos - Validates link format and availability - ✅ **MAINTENANCE.md** - Complete guide for maintainers - Monthly, quarterly, and annual tasks - Emergency procedures - Quality standards - Metrics to track - ✅ **AGENTS.md** - Updated with new commands - Added health-check command - Noted GITHUB_TOKEN requirements - Added alphabetical sorting guideline - **Total Links**: 883 (731 GitHub repos + 152 external) - **Working Links**: >99% (after fixes) - **Abandoned Projects**: 15 marked with `:skull:` - **Automated Checks**: 3 workflows running - **Automatic detection** of abandoned/archived projects - **Weekly monitoring** ensures issues are caught early - **Proactive alerts** via GitHub issues - No more manual link checking (automated weekly) - Archived repos detected automatically - Contributors get instant PR feedback - Health metrics tracked over time - Clear standards documented - Easy onboarding for new maintainers - Monday: Health report generated and posted - Saturday: Link validation runs - Review health report issue - Mark any newly archived projects with `:skull:` - Run full health check: `npm run health-check` - Review inactive projects (1-2 years) - Consider removing very old abandoned projects - Deep cleanup of `:skull:` projects - Update documentation - Review categories and organization 1. **Auto-PR for Archived Repos**: Bot could auto-create PRs to mark archived repos 2. **Contribution Stats**: Track and display top contributors 3. **Category Health**: Per-category health metrics 4. **Dependency Updates**: Dependabot for npm packages 5. **Star Trending**: Track which projects are gaining popularity - `tests/health_check.mjs` - Health checker script - `.github/workflows/health_report.yml` - Weekly health workflow - `.github/workflows/broken_links.yml` - Link validation workflow - `.github/MAINTENANCE.md` - Maintainer guide - `AGENTS.md` - AI agent guidelines - `README.md` - Removed 3 broken links, fixed 1 redirect - `tests/test_all.mjs` - Added archive detection - `tests/exclude_in_test.json` - Added problematic domains - `package.json` - Added health-check script - `package-lock.json` - Updated dependencies Before: Manual maintenance, broken links accumulate, outdated projects linger After: **Automated health monitoring, proactive issue detection, systematic maintenance** The list is now **self-maintaining** with minimal human oversight required. --- *Generated: 2025-10-01* * update github actions * remove dead links * set timeout * Add badges --- .github/MAINTENANCE.md | 116 ++++ .github/PULL_REQUEST_TEMPLATE.md | 9 +- .github/workflows/broken_links.yml | 134 +++++ .github/workflows/deploy-pages.yml | 51 ++ .github/workflows/health_report.yml | 84 +++ .github/workflows/pull_request.yml | 8 +- AGENTS.md | 28 + README.md | 13 +- package-lock.json | 854 ++++++---------------------- package.json | 3 +- tests/common.mjs | 2 + tests/exclude_in_test.json | 5 +- tests/health_check.mjs | 206 +++++++ tests/pull_request.mjs | 5 +- tests/test_all.mjs | 18 +- 15 files changed, 825 insertions(+), 711 deletions(-) create mode 100644 .github/MAINTENANCE.md create mode 100644 .github/workflows/broken_links.yml create mode 100644 .github/workflows/deploy-pages.yml create mode 100644 .github/workflows/health_report.yml create mode 100644 AGENTS.md create mode 100644 tests/health_check.mjs diff --git a/.github/MAINTENANCE.md b/.github/MAINTENANCE.md new file mode 100644 index 000000000..5fe326845 --- /dev/null +++ b/.github/MAINTENANCE.md @@ -0,0 +1,116 @@ +# 🔧 Maintenance Guide for Awesome Docker + +This guide helps maintainers keep the awesome-docker list up-to-date and high-quality. + +## 🤖 Automated Systems + +### Weekly Health Reports +- **What**: Checks all GitHub repositories for activity, archived status, and maintenance +- **When**: Every Monday at 9 AM UTC +- **Where**: Creates/updates a GitHub issue with label `health-report` +- **Action**: Review the report and mark abandoned projects with `:skull:` + +### Broken Links Detection +- **What**: Tests all links in README.md for availability +- **When**: Every Saturday at 2 AM UTC + on every PR +- **Where**: Creates/updates a GitHub issue with label `broken-links` +- **Action**: Fix or remove broken links, or add to exclusion list + +### PR Validation +- **What**: Checks for duplicate links and basic validation +- **When**: On every pull request +- **Action**: Automated - contributors see results immediately + +## 📋 Manual Maintenance Tasks + +### Monthly Review (First Monday of the month) +1. Check health report issue for archived/stale projects +2. Mark archived projects with `:skull:` in README.md +3. Review projects with 2+ years of inactivity +4. Remove projects that are truly abandoned/broken + +### Quarterly Deep Dive (Every 3 months) +1. Run: `npm run health-check` for detailed report +2. Review project categories - are they still relevant? +3. Check for popular new Docker tools to add +4. Update documentation links if newer versions exist + +### Annual Cleanup (January) +1. Remove all `:skull:` projects older than 1 year +2. Review CONTRIBUTING.md guidelines +3. Update year references in documentation +4. Check Node.js version requirements + +## 🛠️ Maintenance Commands + +```bash +# Test all links (requires GITHUB_TOKEN) +npm test + +# Test PR changes only +npm run test-pr + +# Generate health report (requires GITHUB_TOKEN) +npm run health-check + +# Build the website +npm run build + +# Update dependencies +npm update +``` + +## 📊 Quality Standards + +### Adding New Projects +- Must have clear documentation (README with install/usage) +- Should have activity within last 18 months +- GitHub project preferred over website links +- Must be Docker/container-related + +### Marking Projects as Abandoned +Use `:skull:` emoji when: +- Repository is archived on GitHub +- No commits for 2+ years +- Project explicitly states it's deprecated +- Maintainer confirms abandonment + +### Removing Projects +Only remove (don't just mark `:skull:`): +- Broken/404 links that can't be fixed +- Duplicate entries +- Spam or malicious projects +- Projects that never met quality standards + +## 🚨 Emergency Procedures + +### Critical Broken Links +If important resources are down: +1. Check if they moved (update URL) +2. Search for alternatives +3. Check Internet Archive for mirrors +4. Temporarily comment out until resolved + +### Spam Pull Requests +1. Close immediately +2. Mark as spam +3. Block user if repeated offense +4. Don't engage in comments + +## 📈 Metrics to Track + +- Total projects: ~731 GitHub repos +- Health status: aim for <5% archived +- Link availability: aim for >98% working +- PR merge time: aim for <7 days +- Weekly contributor engagement + +## 🤝 Getting Help + +- Open a discussion in GitHub Discussions +- Check AGENTS.md for AI assistant guidelines +- Review CONTRIBUTING.md for contributor info + +--- + +*Last updated: 2025-10-01* diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index d671330ce..2079360fe 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -2,18 +2,16 @@ - -# Quality Standards +## Quality Standards Note that we can help you achieve those standards, just try your best and be brave. We'll guide you to the best of our abilities. @@ -48,4 +46,3 @@ But usually, we are pretty relaxed people, so just come and say hi, we'll figure Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. -#### Your commit message will be a [tweet](https://twitter.com/awesome_docker) so write a [good commit message](https://chris.beams.io/posts/git-commit/), keep that in mind :) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml new file mode 100644 index 000000000..ee10f4e77 --- /dev/null +++ b/.github/workflows/broken_links.yml @@ -0,0 +1,134 @@ +name: Broken Links Report + +on: + schedule: + # Run every Saturday at 2 AM UTC + - cron: "0 2 * * 6" + workflow_dispatch: + +jobs: + check-links: + runs-on: ubuntu-latest + permissions: + contents: read + issues: write + + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5.0.0 + + - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # ratchet:actions/setup-node@v5.0.0 + with: + node-version: lts/* + + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # ratchet:actions/cache@v4.3.0 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install Dependencies + run: npm ci --ignore-scripts --no-audit --no-progress --prefer-offline + + - name: Run Link Check + id: link_check + run: | + npm test > link_check_output.txt 2>&1 || true + if grep -q "❌ ERROR" link_check_output.txt; then + echo "has_errors=true" >> $GITHUB_OUTPUT + else + echo "has_errors=false" >> $GITHUB_OUTPUT + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create/Update Issue for Broken Links + if: steps.link_check.outputs.has_errors == 'true' + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 + with: + script: | + const fs = require('fs'); + const output = fs.readFileSync('link_check_output.txt', 'utf8'); + + // Extract error information + const errorMatch = output.match(/❌ ERROR[\s\S]*$/); + const errorInfo = errorMatch ? errorMatch[0] : 'Link check failed - see workflow logs'; + + const issueBody = `# 🔗 Broken Links Detected + + The weekly link check has found broken or inaccessible links in the repository. + + ## Error Details + + \`\`\` + ${errorInfo} + \`\`\` + + ## Action Required + + Please review and fix the broken links above. Options: + - Update the URL if the resource moved + - Remove the entry if it's permanently unavailable + - Add to \`tests/exclude_in_test.json\` if it's a known false positive + + --- + *Auto-generated by [broken_links.yml](https://github.com/veggiemonk/awesome-docker/blob/master/.github/workflows/broken_links.yml)* + `; + + // Check for existing issue + const issues = await github.rest.issues.listForRepo({ + owner: context.repo.owner, + repo: context.repo.repo, + state: 'open', + labels: 'broken-links', + per_page: 1 + }); + + if (issues.data.length > 0) { + await github.rest.issues.update({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issues.data[0].number, + body: issueBody + }); + console.log(`Updated issue #${issues.data[0].number}`); + } else { + const issue = await github.rest.issues.create({ + owner: context.repo.owner, + repo: context.repo.repo, + title: '🔗 Broken Links Detected - Action Required', + body: issueBody, + labels: ['broken-links', 'bug'] + }); + console.log(`Created issue #${issue.data.number}`); + } + + - name: Close Issue if No Errors + if: steps.link_check.outputs.has_errors == 'false' + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 + with: + script: | + const issues = await github.rest.issues.listForRepo({ + owner: context.repo.owner, + repo: context.repo.repo, + state: 'open', + labels: 'broken-links', + per_page: 1 + }); + + if (issues.data.length > 0) { + await github.rest.issues.update({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issues.data[0].number, + state: 'closed', + state_reason: 'completed' + }); + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issues.data[0].number, + body: '✅ All links are now working! Closing this issue.' + }); + console.log(`Closed issue #${issues.data[0].number}`); + } diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml new file mode 100644 index 000000000..beb96271c --- /dev/null +++ b/.github/workflows/deploy-pages.yml @@ -0,0 +1,51 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: + - master + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5 + + - name: Setup Node.js + uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # ratchet:actions/setup-node@v5 + with: + node-version-file: '.nvmrc' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Build website + run: npm run build + + - name: Upload artifact + uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # ratchet:actions/upload-pages-artifact@v4 + with: + path: ./website + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # ratchet:actions/deploy-pages@v4 diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml new file mode 100644 index 000000000..d190f43d1 --- /dev/null +++ b/.github/workflows/health_report.yml @@ -0,0 +1,84 @@ +name: Weekly Health Report + +on: + schedule: + # Run every Monday at 9 AM UTC + - cron: "0 9 * * 1" + workflow_dispatch: # Allow manual trigger + +jobs: + health-check: + runs-on: ubuntu-latest + permissions: + contents: write + issues: write + + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5.0.0 + + - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # ratchet:actions/setup-node@v5.0.0 + with: + node-version: lts/* + + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # ratchet:actions/cache@v4.3.0 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install Dependencies + run: npm ci --ignore-scripts --no-audit --no-progress --prefer-offline + + - name: Run Health Check + run: node tests/health_check.mjs + continue-on-error: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload Health Report + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4 + with: + name: health-report + path: HEALTH_REPORT.md + + - name: Create Issue with Health Report + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 + with: + script: | + const fs = require('fs'); + + // Read the health report + const report = fs.readFileSync('HEALTH_REPORT.md', 'utf8'); + + // Check if there's already an open issue + const issues = await github.rest.issues.listForRepo({ + owner: context.repo.owner, + repo: context.repo.repo, + state: 'open', + labels: 'health-report', + per_page: 1 + }); + + const issueBody = report + '\n\n---\n*This report is auto-generated weekly. See [health_check.mjs](https://github.com/veggiemonk/awesome-docker/blob/master/tests/health_check.mjs) for details.*'; + + if (issues.data.length > 0) { + // Update existing issue + await github.rest.issues.update({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issues.data[0].number, + body: issueBody + }); + console.log(`Updated issue #${issues.data[0].number}`); + } else { + // Create new issue + const issue = await github.rest.issues.create({ + owner: context.repo.owner, + repo: context.repo.repo, + title: '🏥 Weekly Health Report - Repository Maintenance Needed', + body: issueBody, + labels: ['health-report', 'maintenance'] + }); + console.log(`Created issue #${issue.data.number}`); + } diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 241c04125..683ed2b8f 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -5,18 +5,18 @@ on: branches: - master schedule: - - cron: '0 0 * * 6' + - cron: "0 0 * * 6" jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.2.2 - - uses: actions/setup-node@v4.3.0 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5.0.0 + - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # ratchet:actions/setup-node@v5.0.0 with: node-version: lts/* - - uses: actions/cache@v4.2.3 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # ratchet:actions/cache@v4.3.0 id: cache with: path: ~/.npm diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..c557da74a --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,28 @@ +# Agent Guidelines for awesome-docker + +## Commands +- Build website: `npm run build` (converts README.md to website/index.html) +- Test all links: `npm test` (runs tests/test_all.mjs, requires GITHUB_TOKEN) +- Test PR changes: `npm run test-pr` (runs tests/pull_request.mjs, checks duplicates) +- Health check: `npm run health-check` (generates HEALTH_REPORT.md, requires GITHUB_TOKEN) + +## Architecture +- **Main content**: README.md - curated list of Docker resources (markdown format) +- **Build script**: build.js - converts README.md to HTML using showdown & cheerio +- **Tests**: tests/*.mjs - link validation, duplicate detection, URL checking +- **Website**: website/ - static site deployment folder + +## Code Style +- **Language**: Node.js with ES modules (.mjs) for tests, CommonJS for build.js +- **Imports**: Use ES6 imports in .mjs files, require() in .js files +- **Error handling**: Use try/catch with LOG.error() and process.exit(1) for failures +- **Logging**: Use LOG object with error/debug methods (see build.js for pattern) +- **Async**: Prefer async/await over callbacks + +## Content Guidelines (from CONTRIBUTING.md) +- Link to GitHub projects, not websites +- Entries are listed alphabetically (from A to Z) +- Entries must be Docker/container-related with clear documentation +- Include project description, installation, and usage examples +- Mark WIP projects explicitly +- Avoid outdated tutorials/blog posts unless advanced/specific diff --git a/README.md b/README.md index 80fad3ac3..b05ebb740 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Awesome Docker [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)][sindresorhus] [![Netlify Status](https://api.netlify.com/api/v1/badges/8ca86717-11ba-46d4-9d0a-700d8527f13b/deploy-status)](https://app.netlify.com/sites/awesome-docker/deploys) +# Awesome Docker [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)][sindresorhus] [![Netlify Status](https://api.netlify.com/api/v1/badges/8ca86717-11ba-46d4-9d0a-700d8527f13b/deploy-status)](https://app.netlify.com/sites/awesome-docker/deploys)[![Track Awesome List](https://www.trackawesomelist.com/badge.svg)](https://www.trackawesomelist.com/veggiemonk/awesome-docker/)[![Last Commit](https://img.shields.io/github/last-commit/veggiemonk/awesome-docker)](https://github.com/veggiemonk/awesome-docker/commits/main) > A curated list of Docker resources and projects @@ -100,17 +100,16 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker Documentation](https://docs.docker.com/): the official documentation. - [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. - [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. -- [Docker Hands-on Labs](https://labex.io/learn/docker) A structured Docker skill tree with 100 beginner-friendly hands-on labs by LabEx. + - [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: -- [Docker Tutorial for Beginners (Updated 2019 version)](https://hashnode.com/post/docker-tutorial-for-beginners-cjrj2hg5001s2ufs1nker9he2) —In this Docker tutorial, you'll learn all the basics and learn how you can containerize Node.js and Go applications. Even if you aren't familiar with these languages it should be easy for you to follow this tutorial and use any other language. + - [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... - [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) - [Learn Docker (Visually)](https://pagertree.com/learn/docker/overview) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. - [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. - [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This Spanish guide contains the use of basic docker commands with real life examples. -- [Practical Introduction to Container Terminology](https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction) The landscape for container technologies is larger than just docker. Without a good handle on the terminology, It can be difficult to grasp the key differences between docker and (pick your favorites, CRI-O, rkt, lxc/lxd) or understand what the Open Container Initiative is doing to standardize container technology. - [Setting Python Development Environment with VScode and Docker](https://github.com/RamiKrispin/vscode-python): A step-by-step tutorial for setting up a dockerized Python development environment with VScode, Docker, and the Dev Container extension. - [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. @@ -124,7 +123,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) # Where to start (Windows) -- [A Comparative Study of Docker Engine on Windows Server vs Linux Platform](https://collabnix.com/a-comparative-study-of-docker-engine-on-windows-server-vs-linux-platform/) Comparing the feature sets and implementations of Docker on Windows and Linux - [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [@kaitoedter](https://twitter.com/kaitoedter) - [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. - [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker @@ -395,7 +393,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box by [@ajay-dsan](https://github.com/ajayd-san) - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) - [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring -- [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://www.rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard), by [@mrjackwills](https://github.com/mrjackwills) +- [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard), by [@mrjackwills](https://github.com/mrjackwills) - [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine, by [@TomasTomecek][tomastomecek] ##### CLI tools @@ -745,7 +743,6 @@ Services to securely store your Docker images. - [Giant Swarm](https://www.giantswarm.io/) :heavy_dollar_sign: - Simple microservice infrastructure. Deploy your containers in seconds. - [Google Container Engine](https://cloud.google.com/kubernetes-engine/docs/) :heavy_dollar_sign: - Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. - [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) :heavy_dollar_sign: - Integrated platform for data and containers built on Apache Mesos by [@mesosphere](https://d2iq.com) -- [Red Hat CodeReady Workspaces](https://developers.redhat.com/products/openshift-dev-spaces/overview) - A collaborative Kubernetes-native solution for rapid application development that delivers consistent developer environments on Red Hat OpenShift to allow anyone with a browser to contribute code in under two minutes. - [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) :heavy_dollar_sign: - Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud - [Triton](https://www.joyent.com/) :heavy_dollar_sign: - Elastic container-native infrastructure by Joyent. - [Virtuozzo Application Platform](https://www.virtuozzo.com/application-platform-partners/) :heavy_dollar_sign: - Deploy and manage your projects with turnkey PaaS across a wide network of reliable service providers @@ -769,7 +766,7 @@ Services to securely store your Docker images. - [Cloud Native Landscape](https://github.com/cncf/landscape) - [Docker Blog](https://www.docker.com/blog/) - regular updates about Docker, the community and tools - [Docker Certification](https://intellipaat.com/docker-training-course/?US) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. -- [Docker Community on Hashnode](https://hashnode.com/n/docker) + - [Docker dev bookmarks](https://www.codever.dev/search?q=docker) - use the tag [docker](https://www.codever.dev/bookmarks/t/docker) - [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) - [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) diff --git a/package-lock.json b/package-lock.json index 76d8cb94e..1afbebfca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "awesome-docker-website", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -17,10 +17,32 @@ "showdown": "^2.1.0" } }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -33,19 +55,11 @@ "node": ">=12" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -54,9 +68,10 @@ } }, "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -64,29 +79,17 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" }, "node_modules/cheerio": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.2.tgz", "integrity": "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==", + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -111,6 +114,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -127,6 +131,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -137,12 +142,14 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/commander": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", - "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } @@ -151,6 +158,7 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -161,9 +169,10 @@ } }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -176,9 +185,10 @@ } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -187,9 +197,10 @@ } }, "node_modules/data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -198,6 +209,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -216,12 +228,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -249,22 +263,26 @@ "node_modules/draftlog": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/draftlog/-/draftlog-1.0.13.tgz", - "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" + "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==", + "license": "MIT" }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, "node_modules/encoding-sniffer": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "license": "MIT", "dependencies": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" @@ -277,6 +295,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -285,9 +304,9 @@ } }, "node_modules/fetch-blob": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", - "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "funding": [ { "type": "github", @@ -298,6 +317,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -307,11 +327,12 @@ } }, "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -325,6 +346,7 @@ "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -336,6 +358,7 @@ "version": "11.3.2", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -346,13 +369,14 @@ } }, "node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" @@ -368,9 +392,10 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/htmlparser2": { "version": "10.0.0", @@ -407,6 +432,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -418,6 +444,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -425,12 +452,14 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/jackspeak": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", - "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -439,15 +468,13 @@ }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -456,19 +483,21 @@ } }, "node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "license": "ISC", "engines": { "node": "20 || >=22" } }, "node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { "node": "20 || >=22" @@ -481,6 +510,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -489,6 +519,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", "funding": [ { "type": "github", @@ -499,6 +530,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } @@ -507,6 +539,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -524,6 +557,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -532,9 +566,10 @@ } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" }, "node_modules/parse5": { "version": "7.3.0", @@ -565,6 +600,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "license": "MIT", "dependencies": { "parse5": "^7.0.0" }, @@ -588,6 +624,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -596,6 +633,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" @@ -611,6 +649,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "license": "ISC", "dependencies": { "glob": "^11.0.0", "package-json-from-dist": "^1.0.0" @@ -628,12 +667,14 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -645,6 +686,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } @@ -653,6 +695,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==", + "license": "MIT", "dependencies": { "commander": "^9.0.0" }, @@ -668,6 +711,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -679,6 +723,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -696,6 +741,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -709,6 +755,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -716,12 +763,14 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -730,9 +779,10 @@ } }, "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -748,6 +798,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -759,30 +810,34 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/undici": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.12.0.tgz", - "integrity": "sha512-GrKEsc3ughskmGA9jevVlIOPMiiAHJ4OFUtaAH+NhfTUSiZ1wMPIQqQvAJUrJspFXJt3EBWgpAeoHEDVT1IBug==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.16.0.tgz", + "integrity": "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==", + "license": "MIT", "engines": { "node": ">=20.18.1" } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -791,6 +846,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, @@ -802,6 +858,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", "engines": { "node": ">=18" } @@ -810,6 +867,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -824,6 +882,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -841,6 +900,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -857,6 +917,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -865,6 +926,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -878,12 +940,14 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -897,6 +961,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -904,594 +969,5 @@ "node": ">=8" } } - }, - "dependencies": { - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true - }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cheerio": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.2.tgz", - "integrity": "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==", - "requires": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.2", - "encoding-sniffer": "^0.2.1", - "htmlparser2": "^10.0.0", - "parse5": "^7.3.0", - "parse5-htmlparser2-tree-adapter": "^7.1.0", - "parse5-parser-stream": "^7.1.2", - "undici": "^7.12.0", - "whatwg-mimetype": "^4.0.0" - } - }, - "cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "requires": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "commander": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", - "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==" - }, - "cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, - "data-uri-to-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" - }, - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "requires": { - "domelementtype": "^2.3.0" - } - }, - "domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - } - }, - "draftlog": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/draftlog/-/draftlog-1.0.13.tgz", - "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==" - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "encoding-sniffer": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", - "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", - "requires": { - "iconv-lite": "^0.6.3", - "whatwg-encoding": "^3.1.1" - } - }, - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" - }, - "fetch-blob": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", - "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", - "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, - "foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - } - }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "requires": { - "fetch-blob": "^3.1.2" - } - }, - "fs-extra": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", - "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "htmlparser2": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", - "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.1", - "entities": "^6.0.0" - }, - "dependencies": { - "entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==" - } - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "jackspeak": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", - "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==" - }, - "minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" - }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" - }, - "node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { - "boolbase": "^1.0.0" - } - }, - "package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" - }, - "parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", - "requires": { - "entities": "^6.0.0" - }, - "dependencies": { - "entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==" - } - } - }, - "parse5-htmlparser2-tree-adapter": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", - "requires": { - "domhandler": "^5.0.3", - "parse5": "^7.0.0" - } - }, - "parse5-parser-stream": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", - "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", - "requires": { - "parse5": "^7.0.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "requires": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - } - }, - "rimraf": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", - "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", - "requires": { - "glob": "^11.0.0", - "package-json-from-dist": "^1.0.0" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "showdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", - "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==", - "requires": { - "commander": "^9.0.0" - } - }, - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - } - } - }, - "undici": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.12.0.tgz", - "integrity": "sha512-GrKEsc3ughskmGA9jevVlIOPMiiAHJ4OFUtaAH+NhfTUSiZ1wMPIQqQvAJUrJspFXJt3EBWgpAeoHEDVT1IBug==" - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "web-streams-polyfill": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", - "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" - }, - "whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", - "requires": { - "iconv-lite": "0.6.3" - } - }, - "whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - } } } diff --git a/package.json b/package.json index 5318f8ca2..ad8e945fa 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "scripts": { "build": "rimraf ./dist/ && node build.js", "test-pr": "node tests/pull_request.mjs", - "test": "node tests/test_all.mjs" + "test": "node tests/test_all.mjs", + "health-check": "node tests/health_check.mjs" }, "repository": { "type": "git", diff --git a/tests/common.mjs b/tests/common.mjs index c8338ee63..7afc01e5a 100644 --- a/tests/common.mjs +++ b/tests/common.mjs @@ -9,6 +9,8 @@ const LINKS_OPTIONS = { 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', }, + timeout: 60000, // 1m + signal: AbortSignal.timeout(60000), }; const LOG = { diff --git a/tests/exclude_in_test.json b/tests/exclude_in_test.json index 6a0cb574a..099e76497 100644 --- a/tests/exclude_in_test.json +++ b/tests/exclude_in_test.json @@ -10,5 +10,8 @@ "https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg", "https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security", "https://www.reddit.com/r/docker/", - "https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615" + "https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615", + "https://www.youtube.com/playlist", + "https://www.aquasec.com", + "https://cloudsmith.com" ] diff --git a/tests/health_check.mjs b/tests/health_check.mjs new file mode 100644 index 000000000..cb5b4d3e2 --- /dev/null +++ b/tests/health_check.mjs @@ -0,0 +1,206 @@ +import fs from 'fs-extra'; +import fetch from 'node-fetch'; +import helper from './common.mjs'; + +const README = 'README.md'; +const GITHUB_GQL_API = 'https://api.github.com/graphql'; +const TOKEN = process.env.GITHUB_TOKEN || ''; + +if (!TOKEN) { + console.error('GITHUB_TOKEN environment variable is required'); + process.exit(1); +} + +const Authorization = `token ${TOKEN}`; + +const LOG = { + info: (...args) => console.log('ℹ️ ', ...args), + warn: (...args) => console.warn('⚠️ ', ...args), + error: (...args) => console.error('❌', ...args), +}; + +// Extract GitHub repos from links +const extract_repos = (arr) => + arr + .map((e) => e.substr('https://github.com/'.length).split('/')) + .filter((r) => r.length === 2 && r[1] !== ''); + +// Generate GraphQL query to check repo health +const generate_health_query = (repos) => { + const repoQueries = repos.map(([owner, name]) => { + const safeName = `repo_${owner.replace(/(-|\.)/g, '_')}_${name.replace(/(-|\.)/g, '_')}`; + return `${safeName}: repository(owner: "${owner}", name:"${name}"){ + nameWithOwner + isArchived + pushedAt + createdAt + stargazerCount + forkCount + isDisabled + isFork + isLocked + isPrivate + }`; + }).join('\n'); + + return `query REPO_HEALTH { ${repoQueries} }`; +}; + +// Batch repos into smaller chunks for GraphQL +function* batchRepos(repos, size = 50) { + for (let i = 0; i < repos.length; i += size) { + yield repos.slice(i, i + size); + } +} + +async function checkRepoHealth(repos) { + const results = { + archived: [], + stale: [], // No commits in 2+ years + inactive: [], // No commits in 1-2 years + healthy: [], + disabled: [], + total: repos.length, + }; + + const twoYearsAgo = new Date(); + twoYearsAgo.setFullYear(twoYearsAgo.getFullYear() - 2); + + const oneYearAgo = new Date(); + oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1); + + LOG.info(`Checking health of ${repos.length} repositories...`); + + for (const batch of batchRepos(repos)) { + const query = generate_health_query(batch); + const options = { + method: 'POST', + headers: { + Authorization, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ query }), + }; + + try { + const response = await fetch(GITHUB_GQL_API, options); + const data = await response.json(); + + if (data.errors) { + LOG.error('GraphQL errors:', data.errors); + continue; + } + + for (const [key, repo] of Object.entries(data.data)) { + if (!repo) continue; + + const pushedAt = new Date(repo.pushedAt); + const repoInfo = { + name: repo.nameWithOwner, + pushedAt: repo.pushedAt, + stars: repo.stargazerCount, + url: `https://github.com/${repo.nameWithOwner}`, + }; + + if (repo.isArchived) { + results.archived.push(repoInfo); + } else if (repo.isDisabled) { + results.disabled.push(repoInfo); + } else if (pushedAt < twoYearsAgo) { + results.stale.push(repoInfo); + } else if (pushedAt < oneYearAgo) { + results.inactive.push(repoInfo); + } else { + results.healthy.push(repoInfo); + } + } + } catch (error) { + LOG.error('Batch fetch error:', error.message); + } + + // Rate limiting - wait a bit between batches + await new Promise(resolve => setTimeout(resolve, 1000)); + } + + return results; +} + +function generateReport(results) { + const report = []; + + report.push('# 🏥 Awesome Docker - Health Check Report\n'); + report.push(`**Generated:** ${new Date().toISOString()}\n`); + report.push(`**Total Repositories:** ${results.total}\n`); + + report.push('\n## 📊 Summary\n'); + report.push(`- ✅ Healthy (updated in last year): ${results.healthy.length}`); + report.push(`- ⚠️ Inactive (1-2 years): ${results.inactive.length}`); + report.push(`- 🪦 Stale (2+ years): ${results.stale.length}`); + report.push(`- 📦 Archived: ${results.archived.length}`); + report.push(`- 🚫 Disabled: ${results.disabled.length}\n`); + + if (results.archived.length > 0) { + report.push('\n## 📦 Archived Repositories (Should mark as :skull:)\n'); + results.archived.forEach(repo => { + report.push(`- [${repo.name}](${repo.url}) - ⭐ ${repo.stars} - Last push: ${repo.pushedAt}`); + }); + } + + if (results.stale.length > 0) { + report.push('\n## 🪦 Stale Repositories (No activity in 2+ years)\n'); + results.stale.slice(0, 50).forEach(repo => { + report.push(`- [${repo.name}](${repo.url}) - ⭐ ${repo.stars} - Last push: ${repo.pushedAt}`); + }); + if (results.stale.length > 50) { + report.push(`\n... and ${results.stale.length - 50} more`); + } + } + + if (results.inactive.length > 0) { + report.push('\n## ⚠️ Inactive Repositories (No activity in 1-2 years)\n'); + report.push('_These may still be stable/complete projects - review individually_\n'); + results.inactive.slice(0, 30).forEach(repo => { + report.push(`- [${repo.name}](${repo.url}) - ⭐ ${repo.stars} - Last push: ${repo.pushedAt}`); + }); + if (results.inactive.length > 30) { + report.push(`\n... and ${results.inactive.length - 30} more`); + } + } + + return report.join('\n'); +} + +async function main() { + const markdown = await fs.readFile(README, 'utf8'); + let links = helper.extract_all_links(markdown); + + const github_links = links.filter(link => + link.startsWith('https://github.com') && + !helper.exclude_from_list(link) && + !link.includes('/issues') && + !link.includes('/pull') && + !link.includes('/wiki') && + !link.includes('#') + ); + + const repos = extract_repos(github_links); + const results = await checkRepoHealth(repos); + + const report = generateReport(results); + + // Save report + await fs.writeFile('HEALTH_REPORT.md', report); + LOG.info('Health report saved to HEALTH_REPORT.md'); + + // Also print summary to console + console.log('\n' + report); + + // Exit with error if there are actionable items + if (results.archived.length > 0 || results.stale.length > 10) { + LOG.warn(`Found ${results.archived.length} archived and ${results.stale.length} stale repos`); + process.exit(1); + } +} + +console.log('Starting health check...'); +main(); diff --git a/tests/pull_request.mjs b/tests/pull_request.mjs index 2b7e82b4a..9ad470d83 100644 --- a/tests/pull_request.mjs +++ b/tests/pull_request.mjs @@ -63,4 +63,7 @@ async function main() { } console.log('starting...'); -main(); +main().catch((error) => { + console.error('Fatal error:', error); + process.exit(1); +}); diff --git a/tests/test_all.mjs b/tests/test_all.mjs index 371469f32..3130660b7 100644 --- a/tests/test_all.mjs +++ b/tests/test_all.mjs @@ -39,7 +39,7 @@ const generate_GQL_query = (arr) => `repo_${owner.replace(/(-|\.)/g, '_')}_${name.replace( /(-|\.)/g, '_', - )}: repository(owner: "${owner}", name:"${name}"){ nameWithOwner } `, + )}: repository(owner: "${owner}", name:"${name}"){ nameWithOwner isArchived } `, ) .join('')} }`; @@ -95,6 +95,22 @@ async function main() { has_error.github_repos = gql_response.errors; } + // Check for archived repositories + console.log('checking for archived repositories...'); + const archived_repos = []; + if (gql_response.data) { + for (const [key, repo] of Object.entries(gql_response.data)) { + if (repo && repo.isArchived) { + archived_repos.push(repo.nameWithOwner); + } + } + } + if (archived_repos.length > 0) { + console.warn(`⚠️ Found ${archived_repos.length} archived repositories that should be marked with :skull:`); + console.warn('Archived repos:', archived_repos); + // Don't fail the build, just warn + } + console.log({ TEST_PASSED: has_error.show, GITHUB_REPOSITORY: github_links.length, From 05737bcde861f44eca9df6b12f2ba577486f0290 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Thu, 2 Oct 2025 20:47:37 +0200 Subject: [PATCH 186/327] Update issue templates --- .github/ISSUE_TEMPLATE/add-a-project.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/add-a-project.md diff --git a/.github/ISSUE_TEMPLATE/add-a-project.md b/.github/ISSUE_TEMPLATE/add-a-project.md new file mode 100644 index 000000000..6b0333e6b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/add-a-project.md @@ -0,0 +1,18 @@ +--- +name: Add a project +about: Add a new project to the list +title: add [PROJECT_NAME] +labels: pending-evaluation +assignees: '' + +--- + +Repository link: +Description: +Author: + +Or directly write it: + +```markdown +[REPO](https://github.com/AUTHOR/REPO) - DESCRIPTION. By [@AUTHOR](https://github.com/AUTHOR) +``` From ed3af6676b2c8d85f6058abfb78ed47cd3746774 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Thu, 2 Oct 2025 20:49:52 +0200 Subject: [PATCH 187/327] Delete .github/ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 243bff497..000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,15 +0,0 @@ -Hi, - -I would like to add a link. - -**REPO**: - -**DESCRIPTION**: - -**AUTHOR**: - -Or directly write it: -```markdown -[REPO](https://github.com/AUTHOR/REPO) - DESCRIPTION. By [@AUTHOR](https://github.com/AUTHOR) -``` - From 2860a20ad6061e6b7481b0e3803c1f7479a57a05 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Thu, 2 Oct 2025 20:50:12 +0200 Subject: [PATCH 188/327] Delete .github/weekly-digest.yml (#1190) --- .github/weekly-digest.yml | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .github/weekly-digest.yml diff --git a/.github/weekly-digest.yml b/.github/weekly-digest.yml deleted file mode 100644 index 6d4ba7e83..000000000 --- a/.github/weekly-digest.yml +++ /dev/null @@ -1,7 +0,0 @@ -# Configuration for weekly-digest - https://github.com/apps/weekly-digest -publishDay: sun -canPublishIssues: true -canPublishPullRequests: true -canPublishContributors: true -canPublishStargazers: true -canPublishCommits: true \ No newline at end of file From 0d32406949c09ebd1f1631505ab930d842725472 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Thu, 2 Oct 2025 20:51:23 +0200 Subject: [PATCH 189/327] Delete .github/config.yml (#1191) --- .github/config.yml | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .github/config.yml diff --git a/.github/config.yml b/.github/config.yml deleted file mode 100644 index 258738ec7..000000000 --- a/.github/config.yml +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration for welcome - https://github.com/behaviorbot/welcome - -# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome - -# Comment to be posted to on first time issues -newIssueWelcomeComment: > - Thanks for opening your first issue here! - -# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome - -# Comment to be posted to on PRs from first time contributors in your repository -newPRWelcomeComment: > - Thank you for contributing. Please check out our contributing guidelines and welcome! - -# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge - -# Comment to be posted to on pull requests merged by a first time user -firstPRMergeComment: > - Congrats on merging your first pull request! - -# It is recommend to include as many gifs and emojis as possible From f6188cc0281a12a245dc707ef4d0279d5f652b15 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Thu, 2 Oct 2025 21:04:29 +0200 Subject: [PATCH 190/327] Update dependabot.yml --- .github/dependabot.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8abca405f..a409b8462 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,11 +1,17 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - version: 2 updates: - - package-ecosystem: "npm" # See documentation for possible values - directory: "/" # Location of package manifests + # Enable version updates for npm + - package-ecosystem: "npm" + # Look for `package.json` and `lock` files in the `root` directory + directory: "/" + # Check the npm registry for updates every day (weekdays) + schedule: + interval: "weekly" + + # Enable version updates for GitHub Actions + - package-ecosystem: "github-actions" + # Workflow files stored in the default location of `.github/workflows` + # You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`. + directory: "/" schedule: - interval: "daily" + interval: "weekly" From 8c0fd0b960c08cbe27cf81f30a830deb84412c1a Mon Sep 17 00:00:00 2001 From: Abian Suarez <33789675+AbianS@users.noreply.github.com> Date: Tue, 7 Oct 2025 21:54:46 +0100 Subject: [PATCH 191/327] Add Docker DB Manager - Desktop app for managing Docker database containers (#1194) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b05ebb740..40beb9532 100644 --- a/README.md +++ b/README.md @@ -372,6 +372,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) Native desktop applications for managing and monitoring docker hosts and clusters - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS +- [Docker DB Manager](https://github.com/AbianS/docker-db-manager) - Desktop app for managing Docker database containers with visual interface and one-click operations. - [Dockeron](https://github.com/dockeron/dockeron) :skull: - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) - [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station) - [Lifeboat](https://github.com/jplhomer/lifeboat) - :skull: An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer) From 3e73b8444a0acbf4227a87ddedf872619fd5ee3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Oct 2025 19:13:13 +0200 Subject: [PATCH 192/327] Bump actions/setup-node from 5.0.0 to 6.0.0 (#1197) * Bump actions/setup-node from 5.0.0 to 6.0.0 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5.0.0 to 6.0.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/a0853c24544627f65ddf259abe73b1d18a591444...2028fbc5c25fe9cf00d9f06a71cc4710d4507903) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andreas Gebhardt --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index ee10f4e77..d680dce48 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5.0.0 - - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # ratchet:actions/setup-node@v5.0.0 + - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 with: node-version: lts/* diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index beb96271c..a9a2895b3 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5 - name: Setup Node.js - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # ratchet:actions/setup-node@v5 + uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6 with: node-version-file: '.nvmrc' cache: 'npm' diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index d190f43d1..269b49fbc 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5.0.0 - - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # ratchet:actions/setup-node@v5.0.0 + - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 with: node-version: lts/* diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 683ed2b8f..e839557f6 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5.0.0 - - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # ratchet:actions/setup-node@v5.0.0 + - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 with: node-version: lts/* From fd885ff12f3f4d52428fb9ea4bcbcaa3ee252b6c Mon Sep 17 00:00:00 2001 From: Luca Bello <36242061+lucabello@users.noreply.github.com> Date: Wed, 22 Oct 2025 21:05:15 +0200 Subject: [PATCH 193/327] Add docker-captain (#1198) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 40beb9532..000a1d7e4 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [@exdx](https://github.com/exdx) - [dctl](https://github.com/FabienD/docker-stack) - dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD) - [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. By [@s0rg](https://github.com/s0rg) +- [docker-captain](https://github.com/lucabello/docker-captain) - A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. - [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries by [@mayflower](https://github.com/mayflower) - [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck) - [dockersql](https://github.com/crosbymichael/dockersql) - :skull: A command line interface to query Docker using SQL by [@crosbymichael](https://github.com/crosbymichael) From 2cf19bc7ac07c27d150ad4deba450c6f004d45e3 Mon Sep 17 00:00:00 2001 From: Joshua Harding Date: Wed, 29 Oct 2025 16:38:00 -0400 Subject: [PATCH 194/327] Add nscr (registry) to README.md (#1199) New and Shiny Container Registry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 000a1d7e4..8cabecb54 100644 --- a/README.md +++ b/README.md @@ -577,6 +577,7 @@ Services to securely store your Docker images. - [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] - [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well - [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. +- [nscr](https://github.com/jhstatewide/nscr) - A light-weight, self-contained container registry that's easy to run and maintain. - [Quay.io :heavy_dollar_sign:](https://quay.io/) (part of CoreOS) - Secure hosting for private Docker repositories - [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry - [RepoFlow](https://www.repoflow.io) - A simple and easy-to-use package management platform with Docker support alongside other formats like PyPI, Maven, npm, and Helm. Includes smart search, built-in Docker image scanning, and a great free option for both self-hosted and cloud use. From 4365494c7337a1340856df40129a34823e0d36fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 22:16:28 +0100 Subject: [PATCH 195/327] Bump actions/upload-artifact from 4.6.2 to 5.0.0 (#1200) * Bump actions/upload-artifact from 4.6.2 to 5.0.0 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 5.0.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/ea165f8d65b6e75b540449e92b4886f43607fa02...330a01c490aca151604b8cf639adc76d48f6c5d4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andreas Gebhardt --- .github/workflows/health_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 269b49fbc..2ce29cdfd 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -37,7 +37,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload Health Report - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # ratchet:actions/upload-artifact@v5 with: name: health-report path: HEALTH_REPORT.md From ce01549b76aab5056d69437693f5867a419dbf60 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 19:45:44 +0100 Subject: [PATCH 196/327] Bump rimraf from 6.0.1 to 6.1.0 (#1201) Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.0.1 to 6.1.0. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v6.0.1...v6.1.0) --- updated-dependencies: - dependency-name: rimraf dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1afbebfca..864d63ff5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.3.2", "node-fetch": "3.3.2", - "rimraf": "6.0.1", + "rimraf": "6.1.0", "showdown": "^2.1.0" } }, @@ -646,13 +646,13 @@ } }, "node_modules/rimraf": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", - "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", - "license": "ISC", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.0.tgz", + "integrity": "sha512-DxdlA1bdNzkZK7JiNWH+BAx1x4tEJWoTofIopFo6qWUU94jYrFZ0ubY05TqH3nWPJ1nKa1JWVFDINZ3fnrle/A==", + "license": "BlueOak-1.0.0", "dependencies": { - "glob": "^11.0.0", - "package-json-from-dist": "^1.0.0" + "glob": "^11.0.3", + "package-json-from-dist": "^1.0.1" }, "bin": { "rimraf": "dist/esm/bin.mjs" diff --git a/package.json b/package.json index ad8e945fa..e3757277f 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "draftlog": "1.0.13", "fs-extra": "11.3.2", "node-fetch": "3.3.2", - "rimraf": "6.0.1", + "rimraf": "6.1.0", "showdown": "^2.1.0" } } From 2edc4efb028ddb0f99c1c4f7e2943542550ac473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=D0=B0ramtamt=C4=81m?= <7326800+tarampampam@users.noreply.github.com> Date: Sun, 16 Nov 2025 21:22:19 +0400 Subject: [PATCH 197/327] Add microcheck utility to README (#1202) * Add microcheck utility to README Added microcheck utility for lightweight health checks in Docker. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8cabecb54..06050d236 100644 --- a/README.md +++ b/README.md @@ -474,6 +474,7 @@ Tools and applications that are either installed inside containers or designed t - [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool) by [@tianon](https://github.com/tianon) - [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container by [@sindresorhus][sindresorhus] - [lstags](https://github.com/ivanilves/lstags) - sync Docker images across registries by [@ivanilves](https://github.com/ivanilves) +- [microcheck](https://github.com/tarampampam/microcheck) - Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. by [@tarampampam](https://github.com/tarampampam) - [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - :skull: The NVIDIA Container Runtime for Docker by [@NVIDIA][nvidia] - [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. - [SparkView](https://github.com/beyondssl/sparkview-container) - Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. From 1736a09b8ca443124e3234d5a1cfc823bf92fb3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 16:00:30 +0100 Subject: [PATCH 198/327] Bump glob from 11.0.3 to 11.1.0 (#1203) Bumps [glob](https://github.com/isaacs/node-glob) from 11.0.3 to 11.1.0. - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](https://github.com/isaacs/node-glob/compare/v11.0.3...v11.1.0) --- updated-dependencies: - dependency-name: glob dependency-version: 11.1.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 864d63ff5..b36e6ee56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -369,14 +369,14 @@ } }, "node_modules/glob": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", - "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", - "license": "ISC", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "license": "BlueOak-1.0.0", "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", - "minimatch": "^10.0.3", + "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" @@ -492,10 +492,10 @@ } }, "node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "license": "ISC", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/brace-expansion": "^5.0.0" }, From 88da43ac4d3563dee7862027cf953ad39ae12a64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 18:55:22 +0100 Subject: [PATCH 199/327] Bump rimraf from 6.1.0 to 6.1.2 (#1205) Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.1.0 to 6.1.2. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v6.1.0...v6.1.2) --- updated-dependencies: - dependency-name: rimraf dependency-version: 6.1.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 403 ++-------------------------------------------- package.json | 2 +- 2 files changed, 12 insertions(+), 393 deletions(-) diff --git a/package-lock.json b/package-lock.json index b36e6ee56..e23e4ebda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "draftlog": "1.0.13", "fs-extra": "11.3.2", "node-fetch": "3.3.2", - "rimraf": "6.1.0", + "rimraf": "6.1.2", "showdown": "^2.1.0" } }, @@ -38,47 +38,6 @@ "node": "20 || >=22" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -127,24 +86,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/commander": { "version": "9.5.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", @@ -154,20 +95,6 @@ "node": "^12.20.0 || >=14" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/css-select": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", @@ -266,18 +193,6 @@ "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==", "license": "MIT" }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, "node_modules/encoding-sniffer": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", @@ -326,22 +241,6 @@ "node": "^12.20 || >= 14.13" } }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -369,21 +268,15 @@ } }, "node_modules/glob": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", - "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", "license": "BlueOak-1.0.0", "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", "minimatch": "^10.1.1", "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, "engines": { "node": "20 || >=22" }, @@ -440,36 +333,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", - "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/jsonfile": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", @@ -620,19 +483,10 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", @@ -646,12 +500,12 @@ } }, "node_modules/rimraf": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.0.tgz", - "integrity": "sha512-DxdlA1bdNzkZK7JiNWH+BAx1x4tEJWoTofIopFo6qWUU94jYrFZ0ubY05TqH3nWPJ1nKa1JWVFDINZ3fnrle/A==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.2.tgz", + "integrity": "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==", "license": "BlueOak-1.0.0", "dependencies": { - "glob": "^11.0.3", + "glob": "^13.0.0", "package-json-from-dist": "^1.0.1" }, "bin": { @@ -670,27 +524,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/showdown": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", @@ -707,114 +540,6 @@ "url": "https://www.paypal.me/tiviesantos" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/undici": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici/-/undici-7.16.0.tgz", @@ -862,112 +587,6 @@ "engines": { "node": ">=18" } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } } } } diff --git a/package.json b/package.json index e3757277f..7fbd67301 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "draftlog": "1.0.13", "fs-extra": "11.3.2", "node-fetch": "3.3.2", - "rimraf": "6.1.0", + "rimraf": "6.1.2", "showdown": "^2.1.0" } } From 24248c4aadc6272bbb70448bf5977d05eeaea442 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 19:00:12 +0100 Subject: [PATCH 200/327] Bump actions/checkout from 5.0.0 to 6.0.0 (#1206) * Bump actions/checkout from 5.0.0 to 6.0.0 Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/08c6903cd8c0fde910a37f88322edcfb5dd907a8...1af3b93b6815bc44a9784bd300feb67ff0d1eeb3) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andreas Gebhardt --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index d680dce48..95fcff01c 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -14,7 +14,7 @@ jobs: issues: write steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # ratchet:actions/checkout@v6.0.0 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 with: diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index a9a2895b3..2dae98a5b 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # ratchet:actions/checkout@v6.0.0 - name: Setup Node.js uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6 diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 2ce29cdfd..0f1c52fd6 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -14,7 +14,7 @@ jobs: issues: write steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # ratchet:actions/checkout@v6.0.0 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 with: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index e839557f6..87b6b180f 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,7 +11,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/checkout@v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # ratchet:actions/checkout@v6.0.0 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 with: node-version: lts/* From a4c8146fd07b247ca5e682a190e53f0dff8efba5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 08:02:32 +0100 Subject: [PATCH 201/327] Bump actions/checkout from 6.0.0 to 6.0.1 (#1210) Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/1af3b93b6815bc44a9784bd300feb67ff0d1eeb3...8e8c483db84b4bee98b60c0593521ed34d9990e8) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index 95fcff01c..54b508cf5 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -14,7 +14,7 @@ jobs: issues: write steps: - - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # ratchet:actions/checkout@v6.0.0 + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 with: diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 2dae98a5b..32d1b4c8f 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # ratchet:actions/checkout@v6.0.0 + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - name: Setup Node.js uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6 diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 0f1c52fd6..efd75827e 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -14,7 +14,7 @@ jobs: issues: write steps: - - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # ratchet:actions/checkout@v6.0.0 + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 with: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 87b6b180f..f12993135 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,7 +11,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # ratchet:actions/checkout@v6.0.0 + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 with: node-version: lts/* From 9527d7e290d5402cd5a8601662771b004c5ee63f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 08:20:13 +0100 Subject: [PATCH 202/327] Bump actions/setup-node from 6.0.0 to 6.1.0 (#1211) * Bump actions/setup-node from 6.0.0 to 6.1.0 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.0.0 to 6.1.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/2028fbc5c25fe9cf00d9f06a71cc4710d4507903...395ad3262231945c25e8478fd5baf05154b1d79f) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Update Node.js setup action to v6.1.0 --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andreas Gebhardt --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index 54b508cf5..e84fef8c9 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 + - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # ratchet:actions/setup-node@v6.1.0 with: node-version: lts/* diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 32d1b4c8f..504b2377d 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - name: Setup Node.js - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6 + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # ratchet:actions/setup-node@v6.1.0 with: node-version-file: '.nvmrc' cache: 'npm' diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index efd75827e..d40f937d3 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 + - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # ratchet:actions/setup-node@v6.1.0 with: node-version: lts/* diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index f12993135..d5ae9cc15 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/setup-node@v6.0.0 + - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # ratchet:actions/setup-node@v6.1.0 with: node-version: lts/* From cbf1df24321d167f37387d3f50cd5248ff62a0b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 22:34:03 +0100 Subject: [PATCH 203/327] Bump actions/upload-artifact from 5.0.0 to 6.0.0 (#1214) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/330a01c490aca151604b8cf639adc76d48f6c5d4...b7c566a772e6b6bfb58ed0dc250532a479d7789f) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/health_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index d40f937d3..441353d06 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -37,7 +37,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload Health Report - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # ratchet:actions/upload-artifact@v5 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # ratchet:actions/upload-artifact@v5 with: name: health-report path: HEALTH_REPORT.md From a301665db576e7c903436bdac98fc1416f8d8504 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 22:35:15 +0100 Subject: [PATCH 204/327] Bump actions/cache from 4.3.0 to 5.0.1 (#1213) Bumps [actions/cache](https://github.com/actions/cache) from 4.3.0 to 5.0.1. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/0057852bfaa89a56745cba8c7296529d2fc39830...9255dc7a253b0ccc959486e2bca901246202afeb) --- updated-dependencies: - dependency-name: actions/cache dependency-version: 5.0.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index e84fef8c9..6f889c05e 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -20,7 +20,7 @@ jobs: with: node-version: lts/* - - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # ratchet:actions/cache@v4.3.0 + - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # ratchet:actions/cache@v5.0.1 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 441353d06..caba6fffe 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -20,7 +20,7 @@ jobs: with: node-version: lts/* - - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # ratchet:actions/cache@v4.3.0 + - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # ratchet:actions/cache@v5.0.1 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index d5ae9cc15..70b2ae4f6 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -16,7 +16,7 @@ jobs: with: node-version: lts/* - - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # ratchet:actions/cache@v4.3.0 + - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # ratchet:actions/cache@v5.0.1 id: cache with: path: ~/.npm From f421d823546e840dae5942da8253b374aad38ffe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Dec 2025 19:02:07 +0100 Subject: [PATCH 205/327] Bump fs-extra from 11.3.2 to 11.3.3 (#1217) Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.3.2 to 11.3.3. - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](https://github.com/jprichardson/node-fs-extra/compare/11.3.2...11.3.3) --- updated-dependencies: - dependency-name: fs-extra dependency-version: 11.3.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e23e4ebda..b12ef420a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "cheerio": "1.1.2", "draftlog": "1.0.13", - "fs-extra": "11.3.2", + "fs-extra": "11.3.3", "node-fetch": "3.3.2", "rimraf": "6.1.2", "showdown": "^2.1.0" @@ -254,9 +254,9 @@ } }, "node_modules/fs-extra": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", - "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", + "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", diff --git a/package.json b/package.json index 7fbd67301..2094bf3d7 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dependencies": { "cheerio": "1.1.2", "draftlog": "1.0.13", - "fs-extra": "11.3.2", + "fs-extra": "11.3.3", "node-fetch": "3.3.2", "rimraf": "6.1.2", "showdown": "^2.1.0" From 4df86b48d62661ee63e8be44995a5220727af9f2 Mon Sep 17 00:00:00 2001 From: JRK Date: Sun, 18 Jan 2026 15:01:16 +0100 Subject: [PATCH 206/327] Add d4s to terminal UI tools list (#1227) Added d4s to the list of terminal UI tools for Docker management. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 06050d236..279d2be7b 100644 --- a/README.md +++ b/README.md @@ -384,6 +384,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster ##### Terminal UI - [ctop (1)](https://github.com/yadutaf/ctop) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python) by [@yadutaf](https://github.com/yadutaf) - [ctop (2)](https://github.com/bcicen/ctop) - :skull: Top-like interface for container metrics (Golang) by [@bcicen](https://github.com/bcicen/) +- [d4s](https://github.com/jr-k/d4s) - A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s by [@jr-k](https://github.com/jr-k/) - [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). - [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [@byrnedo] - [Docker-mon](https://github.com/icecrime/docker-mon) :skull: - Console-based Docker monitoring by [@icecrime](https://github.com/icecrime) From 301e019185a0edcac276ba12ca5ddfe627f2e7cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Jan 2026 15:03:13 +0100 Subject: [PATCH 207/327] Bump undici from 7.16.0 to 7.18.2 (#1225) Bumps [undici](https://github.com/nodejs/undici) from 7.16.0 to 7.18.2. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v7.16.0...v7.18.2) --- updated-dependencies: - dependency-name: undici dependency-version: 7.18.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andreas Gebhardt --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b12ef420a..b4194ae13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -541,9 +541,9 @@ } }, "node_modules/undici": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.16.0.tgz", - "integrity": "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.18.2.tgz", + "integrity": "sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==", "license": "MIT", "engines": { "node": ">=20.18.1" From f9d4f888eb271b1835f521ca094f9e86c8d56812 Mon Sep 17 00:00:00 2001 From: Shubhransh <126972172+shubh-io@users.noreply.github.com> Date: Sun, 18 Jan 2026 19:43:48 +0530 Subject: [PATCH 208/327] Docs: Add DockMate in README.md (#1224) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 279d2be7b..41d2c0bda 100644 --- a/README.md +++ b/README.md @@ -389,6 +389,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [@byrnedo] - [Docker-mon](https://github.com/icecrime/docker-mon) :skull: - Console-based Docker monitoring by [@icecrime](https://github.com/icecrime) - [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers by [@lirantal](https://github.com/lirantal) +- [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface, by [@shubh-io](https://github.com/shubh-io). - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters) - [docui](https://github.com/skanehira/docui) - :skull: An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira] - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) From 3cf210a0dc3dc8bb6e09a200a13caf1a2794350e Mon Sep 17 00:00:00 2001 From: Juan Torrente <79209573+jxtrt@users.noreply.github.com> Date: Sun, 18 Jan 2026 15:23:03 +0100 Subject: [PATCH 209/327] Mark Weave as abandoned (#1218) Linked repo is archived, website is dead. I left the "(The Docker network)" comment intact but might be good to delete too. Co-authored-by: Andreas Gebhardt --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 41d2c0bda..1fbb7712e 100644 --- a/README.md +++ b/README.md @@ -233,7 +233,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [MyIP](https://github.com/jason5ng32/MyIP) - All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [@jason5ng32](https://github.com/jason5ng32) - [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues by [@nicolaka](https://github.com/nicolaka) - [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [@jpetazzo][jpetazzo] -- [Weave][weave] (The Docker network) - Weave creates a virtual network that connects Docker containers deployed across multiple hosts. +- [Weave][weave] (The Docker network) :skull: - Weave creates a virtual network that connects Docker containers deployed across multiple hosts. ### Orchestration From f55163208a95daac9c57dd7981a5d92f0e8c9199 Mon Sep 17 00:00:00 2001 From: David J Berube Date: Sun, 18 Jan 2026 09:32:30 -0500 Subject: [PATCH 210/327] Add dprs - A developer-focused TUI for Docker container management (#1212) dprs is a terminal user interface built with Rust for managing Docker containers during software development, featuring real-time log streaming and efficient container management. There's a lot of these out there; this one, in particular, is designed to make dev easier, with easy access to container ips and single key access to restart, stop, and so on. Also supports vim-style visual mode to stop/restart multiple containers at once. Co-authored-by: Andreas Gebhardt --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1fbb7712e..70e988740 100644 --- a/README.md +++ b/README.md @@ -392,6 +392,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface, by [@shubh-io](https://github.com/shubh-io). - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters) - [docui](https://github.com/skanehira/docui) - :skull: An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira] +- [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [@durableprogramming](https://github.com/durableprogramming) - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) - [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box by [@ajay-dsan](https://github.com/ajayd-san) - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) From f9b727041d6422bb01d3ccbd1a3184cdd8bc2fc8 Mon Sep 17 00:00:00 2001 From: furkan Date: Sun, 18 Jan 2026 17:54:21 +0300 Subject: [PATCH 211/327] Add dockerlings (#1208) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 70e988740..41e4ee8ac 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: +- [Dockerlings](https://github.com/furkan/dockerlings): Learn docker from inside your terminal, with a modern TUI and bite sized exercises (by [furkan](https://github.com/furkan)) - [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... - [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) From 2cd6c044502644829afa0fe7d98c4436d29b7005 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jan 2026 09:16:31 +0100 Subject: [PATCH 212/327] Bump actions/setup-node from 6.1.0 to 6.2.0 (#1228) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.1.0 to 6.2.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/395ad3262231945c25e8478fd5baf05154b1d79f...6044e13b5dc448c55e2357c09f80417699197238) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: 6.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index 6f889c05e..0ddbea390 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # ratchet:actions/setup-node@v6.1.0 + - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 with: node-version: lts/* diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 504b2377d..108f9b4b6 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - name: Setup Node.js - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # ratchet:actions/setup-node@v6.1.0 + uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 with: node-version-file: '.nvmrc' cache: 'npm' diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index caba6fffe..7470ef1d0 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # ratchet:actions/setup-node@v6.1.0 + - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 with: node-version: lts/* diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 70b2ae4f6..e4cfabd75 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 - - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # ratchet:actions/setup-node@v6.1.0 + - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 with: node-version: lts/* From ecf0a3a94fab372957f1ed2d265f1b301bb0bcba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jan 2026 09:18:55 +0100 Subject: [PATCH 213/327] Bump actions/cache from 5.0.1 to 5.0.2 (#1229) Bumps [actions/cache](https://github.com/actions/cache) from 5.0.1 to 5.0.2. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/9255dc7a253b0ccc959486e2bca901246202afeb...8b402f58fbc84540c8b491a91e594a4576fec3d7) --- updated-dependencies: - dependency-name: actions/cache dependency-version: 5.0.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index 0ddbea390..a42b0dc80 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -20,7 +20,7 @@ jobs: with: node-version: lts/* - - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # ratchet:actions/cache@v5.0.1 + - uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # ratchet:actions/cache@v5.0.2 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 7470ef1d0..7a72c8137 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -20,7 +20,7 @@ jobs: with: node-version: lts/* - - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # ratchet:actions/cache@v5.0.1 + - uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # ratchet:actions/cache@v5.0.2 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index e4cfabd75..fc1d3d94e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -16,7 +16,7 @@ jobs: with: node-version: lts/* - - uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # ratchet:actions/cache@v5.0.1 + - uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # ratchet:actions/cache@v5.0.2 id: cache with: path: ~/.npm From ee4634e435e52d5cbe212ff8a1da1ad523a4eeda Mon Sep 17 00:00:00 2001 From: Daniel Vigueras Date: Tue, 20 Jan 2026 09:20:59 +0100 Subject: [PATCH 214/327] Add Dockadvisor (#1222) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 41e4ee8ac..057f0b566 100644 --- a/README.md +++ b/README.md @@ -548,6 +548,7 @@ Examples by: ### Linter +- [Dockadvisor](https://github.com/deckrun/dockadvisor) - Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks by [@deckrun](https://github.com/deckrun) - [docker-image-size-limit](https://github.com/wemake-services/docker-image-size-limit) - A tool to keep an eye on your docker images size. - [Dockerfile Linter action](https://github.com/buddy-works/dockerfile-linter) - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. - [dockfmt](https://github.com/jessfraz/dockfmt) :construction: - Dockerfile formatter and parser by [@jessfraz][jessfraz] From c39e924cf9632a3d0d0ebed8a8e799e04863c964 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 22:43:16 +0100 Subject: [PATCH 215/327] Bump actions/checkout from 6.0.1 to 6.0.2 (#1232) Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/8e8c483db84b4bee98b60c0593521ed34d9990e8...de0fac2e4500dabe0009e67214ff5f5447ce83dd) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index a42b0dc80..ae7d3706a 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -14,7 +14,7 @@ jobs: issues: write steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6.0.2 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 with: diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 108f9b4b6..5ec560af5 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6.0.2 - name: Setup Node.js uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 7a72c8137..475b916a6 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -14,7 +14,7 @@ jobs: issues: write steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6.0.2 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 with: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index fc1d3d94e..aaceffad8 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,7 +11,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # ratchet:actions/checkout@v6.0.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6.0.2 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 with: node-version: lts/* From 5ab9f7d46aed951ebfa8af58f3bfdf0d0763cc56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 22:43:46 +0100 Subject: [PATCH 216/327] Bump cheerio from 1.1.2 to 1.2.0 (#1231) Bumps [cheerio](https://github.com/cheeriojs/cheerio) from 1.1.2 to 1.2.0. - [Release notes](https://github.com/cheeriojs/cheerio/releases) - [Commits](https://github.com/cheeriojs/cheerio/compare/v1.1.2...v1.2.0) --- updated-dependencies: - dependency-name: cheerio dependency-version: 1.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 34 +++++++++++++++++----------------- package.json | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4194ae13..df3297aed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "Apache-2.0", "dependencies": { - "cheerio": "1.1.2", + "cheerio": "1.2.0", "draftlog": "1.0.13", "fs-extra": "11.3.3", "node-fetch": "3.3.2", @@ -45,9 +45,9 @@ "license": "ISC" }, "node_modules/cheerio": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.2.tgz", - "integrity": "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", + "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", @@ -55,11 +55,11 @@ "domhandler": "^5.0.3", "domutils": "^3.2.2", "encoding-sniffer": "^0.2.1", - "htmlparser2": "^10.0.0", + "htmlparser2": "^10.1.0", "parse5": "^7.3.0", "parse5-htmlparser2-tree-adapter": "^7.1.0", "parse5-parser-stream": "^7.1.2", - "undici": "^7.12.0", + "undici": "^7.19.0", "whatwg-mimetype": "^4.0.0" }, "engines": { @@ -291,9 +291,9 @@ "license": "ISC" }, "node_modules/htmlparser2": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", - "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -305,14 +305,14 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.2.1", - "entities": "^6.0.0" + "domutils": "^3.2.2", + "entities": "^7.0.1" } }, "node_modules/htmlparser2/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -541,9 +541,9 @@ } }, "node_modules/undici": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.18.2.tgz", - "integrity": "sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.19.1.tgz", + "integrity": "sha512-Gpq0iNm5M6cQWlyHQv9MV+uOj1jWk7LpkoE5vSp/7zjb4zMdAcUD+VL5y0nH4p9EbUklq00eVIIX/XcDHzu5xg==", "license": "MIT", "engines": { "node": ">=20.18.1" diff --git a/package.json b/package.json index 2094bf3d7..d2035e4e2 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "homepage": "https://github.com/veggiemonk/awesome-docker#readme", "dependencies": { - "cheerio": "1.1.2", + "cheerio": "1.2.0", "draftlog": "1.0.13", "fs-extra": "11.3.3", "node-fetch": "3.3.2", From bf75f67ac531341a566af4479191e36b6114c896 Mon Sep 17 00:00:00 2001 From: Ivan Charapanau <38184623+av@users.noreply.github.com> Date: Mon, 26 Jan 2026 23:23:05 +0100 Subject: [PATCH 217/327] Add av/harbor to Container Composition (#1215) * Add av/harbor to Container Composition * refactor: change order of entries for harbor, add author --------- Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 057f0b566..0c20fd5e8 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: - [Dockerlings](https://github.com/furkan/dockerlings): Learn docker from inside your terminal, with a modern TUI and bite sized exercises (by [furkan](https://github.com/furkan)) -- [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... +- [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... - [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) - [Learn Docker (Visually)](https://pagertree.com/learn/docker/overview) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. - [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. @@ -167,6 +167,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [elsy](https://github.com/cisco/elsy) - An opinionated, multi-language, build tool based on Docker and Docker Compose - [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker by [@cloud66](https://github.com/cloud66) - [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes +- [LLM Harbor](https://github.com/av/harbor) - A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [@av](https://github.com/av) - [Maestro](https://github.com/toscanini/maestro) :skull: - Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit by [@tascanini](https://github.com/toscanini) - [percheron](https://github.com/ashmckenzie/percheron) :skull: - Organise your Docker containers with muscle and intelligence by [@ashmckenzie](https://github.com/ashmckenzie) - [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. From 0b51a5e7c349b652841f6a2bc817a74651720f0c Mon Sep 17 00:00:00 2001 From: BookJJun-IJ Date: Tue, 27 Jan 2026 07:45:09 +0900 Subject: [PATCH 218/327] Add mesh-router (nsl.sh) to Networking section (#1226) * Add nsl.sh (mesh-router) to readme.md * Changed position according to alphabetical order and added description. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0c20fd5e8..e0c1dec88 100644 --- a/README.md +++ b/README.md @@ -290,6 +290,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [fabio](https://github.com/fabiolb/fabio) - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [@magiconair](https://github.com/magiconair) (Frank Schroeder) - [h2o-proxy](https://github.com/zchee/h2o-proxy) :skull: - Automated H2O reverse proxy for Docker containers. An alternative to [jwilder/nginx-proxy][nginxproxy] by [@zchee](https://github.com/zchee) - [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [@JrCs](https://github.com/JrCs) +- [mesh-router](https://github.com/Yundera/mesh-router) - Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [@Yundera](https://github.com/Yundera) - [muguet](https://github.com/mattallty/muguet) :skull: - DNS Server & Reverse proxy for Docker environments. By [@mattallty](https://github.com/mattallty) - [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [@jc21](https://github.com/jc21) - [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [@jwilder][jwilder] From 6ceee1e06321539638efcabfb2cc53fee1a7b5af Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 27 Jan 2026 19:59:32 +0100 Subject: [PATCH 219/327] added DLIA in monitoring (#1233) * added DLIA in monitoring * add author to DLIA entry in README Updated DLIA description to include attribution to the author. * unify author mention for DLIA in README --------- Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e0c1dec88..a3424f31b 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Axibase Collector](https://axibase.com/docs/axibase-collector/) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. Created by [@Google][google] - [Checkmate](https://github.com/bluewave-labs/checkmate) - Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. +- [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [@zorak1103](https://github.com/zorak1103) - [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics - [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically by [@docker-flow][docker-flow] - [Dockerana](https://github.com/dockerana/dockerana) :skull: - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. From 7eddf73cf09b9eeec4bd2ba9ca9981c9586a321d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Feb 2026 19:49:17 +0100 Subject: [PATCH 220/327] Bump actions/cache from 5.0.2 to 5.0.3 (#1234) Bumps [actions/cache](https://github.com/actions/cache) from 5.0.2 to 5.0.3. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/8b402f58fbc84540c8b491a91e594a4576fec3d7...cdf6c1fa76f9f475f3d7449005a359c84ca0f306) --- updated-dependencies: - dependency-name: actions/cache dependency-version: 5.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index ae7d3706a..f320d6209 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -20,7 +20,7 @@ jobs: with: node-version: lts/* - - uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # ratchet:actions/cache@v5.0.2 + - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # ratchet:actions/cache@v5.0.3 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 475b916a6..5eac6118c 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -20,7 +20,7 @@ jobs: with: node-version: lts/* - - uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # ratchet:actions/cache@v5.0.2 + - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # ratchet:actions/cache@v5.0.3 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index aaceffad8..041e5b1bc 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -16,7 +16,7 @@ jobs: with: node-version: lts/* - - uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7 # ratchet:actions/cache@v5.0.2 + - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # ratchet:actions/cache@v5.0.3 id: cache with: path: ~/.npm From 914d188dcf09912f88b2c6f29370997b1a9e23dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 20:56:42 +0100 Subject: [PATCH 221/327] Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 (#1235) Bumps @isaacs/brace-expansion from 5.0.0 to 5.0.1. --- updated-dependencies: - dependency-name: "@isaacs/brace-expansion" dependency-version: 5.0.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index df3297aed..634bcb0c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,9 +27,9 @@ } }, "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", + "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", "license": "MIT", "dependencies": { "@isaacs/balanced-match": "^4.0.1" From 843c618e01c041104b4b471eee2903b3b0698dfb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 11:44:09 +0100 Subject: [PATCH 222/327] Bump rimraf from 6.1.2 to 6.1.3 (#1240) Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.1.2 to 6.1.3. - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v6.1.2...v6.1.3) --- updated-dependencies: - dependency-name: rimraf dependency-version: 6.1.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 83 +++++++++++++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 56 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index 634bcb0c7..b4ca0cc31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,26 +13,26 @@ "draftlog": "1.0.13", "fs-extra": "11.3.3", "node-fetch": "3.3.2", - "rimraf": "6.1.2", + "rimraf": "6.1.3", "showdown": "^2.1.0" } }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "license": "MIT", + "node_modules/@isaacs/cliui": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", + "license": "BlueOak-1.0.0", "engines": { - "node": "20 || >=22" + "node": ">=18" } }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", - "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", + "node_modules/balanced-match": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz", + "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==", "license": "MIT", "dependencies": { - "@isaacs/balanced-match": "^4.0.1" + "jackspeak": "^4.2.3" }, "engines": { "node": "20 || >=22" @@ -44,6 +44,18 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "license": "ISC" }, + "node_modules/brace-expansion": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", + "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/cheerio": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", @@ -268,12 +280,12 @@ } }, "node_modules/glob": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", - "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz", + "integrity": "sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==", "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.1.1", + "minimatch": "^10.2.0", "minipass": "^7.1.2", "path-scurry": "^2.0.0" }, @@ -333,6 +345,21 @@ "node": ">=0.10.0" } }, + "node_modules/jackspeak": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^9.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jsonfile": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", @@ -346,21 +373,21 @@ } }, "node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", - "license": "ISC", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", + "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" } }, "node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz", + "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==", "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" + "brace-expansion": "^5.0.2" }, "engines": { "node": "20 || >=22" @@ -500,12 +527,12 @@ } }, "node_modules/rimraf": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.2.tgz", - "integrity": "sha512-cFCkPslJv7BAXJsYlK1dZsbP8/ZNLkCAQ0bi1hf5EKX2QHegmDFEFA6QhuYJlk7UDdc+02JjO80YSOrWPpw06g==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", + "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", "license": "BlueOak-1.0.0", "dependencies": { - "glob": "^13.0.0", + "glob": "^13.0.3", "package-json-from-dist": "^1.0.1" }, "bin": { diff --git a/package.json b/package.json index d2035e4e2..f3faf1871 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "draftlog": "1.0.13", "fs-extra": "11.3.3", "node-fetch": "3.3.2", - "rimraf": "6.1.2", + "rimraf": "6.1.3", "showdown": "^2.1.0" } } From 6406f329adb85b2131ebe55af71b1d83f0d78b49 Mon Sep 17 00:00:00 2001 From: s-b-e-n-s-o-n <80784472+s-b-e-n-s-o-n@users.noreply.github.com> Date: Sat, 21 Feb 2026 14:38:37 -0500 Subject: [PATCH 223/327] Add Drydock to CI/CD section (#1238) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a3424f31b..cf6a60663 100644 --- a/README.md +++ b/README.md @@ -629,6 +629,7 @@ Services to securely store your Docker images. - [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). - [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max]. - [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. +- [Drydock](https://github.com/CodesWhat/drydock) - Open-source container update monitoring with web dashboard, 15 registries, 16 notification triggers, and security scanning. Drop-in WUD replacement. By [@CodesWhat](https://github.com/CodesWhat) - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. - [Gantry](https://github.com/shizunge/gantry) - Automatically update selected Docker swarm services. From 26e89f6467e532fefdfac1013bd8bf0ec86cd6fd Mon Sep 17 00:00:00 2001 From: wolffcatskyy <153394885+wolffcatskyy@users.noreply.github.com> Date: Sat, 21 Feb 2026 14:39:51 -0500 Subject: [PATCH 224/327] Add crowdsec-blocklist-import: 120k+ threat IPs for CrowdSec bouncers (#1239) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cf6a60663..5ec350ee2 100644 --- a/README.md +++ b/README.md @@ -319,6 +319,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [@dev-sec](https://github.com/dev-sec) - [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [@bridgecrew](https://github.com/bridgecrewio) - [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [@coreos][coreos] +- [crowdsec-blocklist-import](https://github.com/wolffcatskyy/crowdsec-blocklist-import) - Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [@wolffcatskyy](https://github.com/wolffcatskyy) - [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [@eliasgranderubio](https://github.com/eliasgranderubio) - [Deepfence Enterprise](https://deepfence.io) :heavy_dollar_sign: - Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [@deepfence][deepfence] - [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [@deepfence][deepfence] From 24cd357bb7c8b36be5ca329753d7bedcbadad472 Mon Sep 17 00:00:00 2001 From: "dash14.ack" Date: Sun, 22 Feb 2026 04:40:42 +0900 Subject: [PATCH 225/327] Add buildcage to README (#1241) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5ec350ee2..73c4434a9 100644 --- a/README.md +++ b/README.md @@ -315,6 +315,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Anchor Enterprise](https://anchore.com/) :heavy_dollar_sign: - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore) - [Aqua Security](https://www.aquasec.com) :heavy_dollar_sign: - Securing container-based applications from Dev to Production on any platform - [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers by [@genuinetools][genuinetools] +- [buildcage](https://github.com/dash14/buildcage) - Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions by [@dash14](https://github.com/dash14) - [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints - [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [@dev-sec](https://github.com/dev-sec) - [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [@bridgecrew](https://github.com/bridgecrewio) From 3159928d8574f6c611a4f0f04beb29546df6cc6c Mon Sep 17 00:00:00 2001 From: Fran Date: Tue, 24 Feb 2026 09:56:38 +0100 Subject: [PATCH 226/327] Add usulnet to web Docker management tools list (#1242) Adds usulnet to the Web Management section. usulnet is a self-hosted Docker management platform built with Go. It provides multi-node orchestration, security scanning, in-browser terminal/editor, backups, TOTP, and granular RBAC from a single web UI. I use it to manage Docker infrastructure across multiple servers and have all my ssh, scan for CVEs on containers, deploy stacks and much more. https://github.com/fr4nsys/usulnet --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 73c4434a9..2ad4e5b49 100644 --- a/README.md +++ b/README.md @@ -464,6 +464,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [Swarmpit](https://github.com/swarmpit/swarmpit) - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. - [Swirl](https://github.com/cuigh/swirl) - Swirl is a web management tool for Docker, focused on swarm cluster By [@cuigh](https://github.com/cuigh/) - [Theia](https://github.com/eclipse-theia/theia) - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. +- [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [@fr4nsys](https://github.com/fr4nsys) - [Yacht](https://github.com/SelfhostedPro/Yacht) :construction: - A Web UI for docker that focuses on templates and ease of use in order to make deployments as easy as possible. By [@SelfhostedPro](https://github.com/SelfhostedPro) ## Docker Images From 60c1df78f89e1de6ab1ee70cb58dbf9ef4ece049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Diot?= <57175294+TheophileDiot@users.noreply.github.com> Date: Tue, 24 Feb 2026 09:57:35 +0100 Subject: [PATCH 227/327] docs: Replace bunkerized-nginx with BunkerWeb in the Reverse Proxy section. (#1237) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ad4e5b49..d22f3bb71 100644 --- a/README.md +++ b/README.md @@ -282,7 +282,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Reverse Proxy -- [bunkerized-nginx](https://github.com/bunkerity/bunkerized-nginx) - Web app hosting and reverse proxy secure by default. By [@bunkerity](https://github.com/bunkerity) +- [BunkerWeb](https://github.com/bunkerity/bunkerweb) - Open-source and next-gen Web Application Firewall (WAF). By [Bunkerity](https://www.bunkerity.com) - [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. By [@lucaslorentz](https://github.com/lucaslorentz) - [caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams) - Docker upstreams module for Caddy, configured with container labels. By [@invzhi](https://github.com/invzhi) - [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. From 5f34822b7844d44d528901c0440011be31ea39cd Mon Sep 17 00:00:00 2001 From: Dor Morgenstern Date: Tue, 24 Feb 2026 10:59:17 +0200 Subject: [PATCH 228/327] Add segspec to Security section (#1243) Signed-off-by: dormstern --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d22f3bb71..4c2513f18 100644 --- a/README.md +++ b/README.md @@ -333,6 +333,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP) - [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) :heavy_dollar_sign: - (previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. - [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. +- [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [@dormstern](https://github.com/dormstern) - [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. - [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. - [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) :heavy_dollar_sign: - Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. From 5a83ccefa9c962bf20e0bd30930cf1a19100618b Mon Sep 17 00:00:00 2001 From: nimdaz <72629512+nimdaz@users.noreply.github.com> Date: Fri, 27 Feb 2026 09:44:28 +0100 Subject: [PATCH 229/327] Update Watchtower to abandoned (#1249) Watchtower was archived by the owner on Dec 17, 2025. It is now read-only. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c2513f18..e65cb9689 100644 --- a/README.md +++ b/README.md @@ -649,7 +649,7 @@ Services to securely store your Docker images. - [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository by [@Stratoscale](https://github.com/Stratoscale) - [SwarmCI](https://github.com/ghostsquad/swarmci) - Create a distributed, isolated task pipeline in your Docker Swarm. - [Tekton CD](https://tekton.dev/) - A cloud-native pipeline resource. -- [Watchtower](https://github.com/containrrr/watchtower) - Automatically update running Docker containers +- [Watchtower](https://github.com/containrrr/watchtower) :skull: - Automatically update running Docker containers ### Development Environment From d0538ddf8b3a5a0096adbbc2d561214d2ea5bc23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 09:45:49 +0100 Subject: [PATCH 230/327] Bump minimatch from 10.2.0 to 10.2.3 (#1246) Bumps [minimatch](https://github.com/isaacs/minimatch) from 10.2.0 to 10.2.3. - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](https://github.com/isaacs/minimatch/compare/v10.2.0...v10.2.3) --- updated-dependencies: - dependency-name: minimatch dependency-version: 10.2.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4ca0cc31..b41c74eeb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -382,15 +382,15 @@ } }, "node_modules/minimatch": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz", - "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==", + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz", + "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==", "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" From bae26ccdb120b4b694d61dabb9cbb6ecb5d02fa7 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 18:56:36 +0100 Subject: [PATCH 231/327] chore: add .worktrees to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 13ca927e8..46006cb6d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ website/table.html .idea **/.DS_Store +.worktrees From 08da394e71963585a2da47e4d690b0a72226b01d Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 19:03:06 +0100 Subject: [PATCH 232/327] feat: scaffold Go project with cobra CLI, Makefile, and config Set up the Go module, directory structure, and minimal CLI entrypoint for the awesome-docker Go rewrite. Includes: - cobra-based CLI with version command - Makefile with build/test/lint/check/health/report/clean targets - config/exclude.yaml migrated from tests/exclude_in_test.json - config/website.tmpl.html copied from website/index.tmpl.html - .gitignore updated for Go binary Co-Authored-By: Claude Opus 4.6 --- .gitignore | 3 + Makefile | 23 ++++ cmd/awesome-docker/main.go | 23 ++++ config/exclude.yaml | 18 +++ config/website.tmpl.html | 229 +++++++++++++++++++++++++++++++++++++ go.mod | 10 ++ go.sum | 10 ++ 7 files changed, 316 insertions(+) create mode 100644 Makefile create mode 100644 cmd/awesome-docker/main.go create mode 100644 config/exclude.yaml create mode 100644 config/website.tmpl.html create mode 100644 go.mod create mode 100644 go.sum diff --git a/.gitignore b/.gitignore index 46006cb6d..b3f098dbc 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ website/table.html .idea **/.DS_Store .worktrees + +# Go +/awesome-docker diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..9101c7e81 --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +BINARY := awesome-docker +.PHONY: build test lint check health report clean + +build: + go build -o $(BINARY) ./cmd/awesome-docker + +test: + go test ./internal/... -v + +lint: build + ./$(BINARY) lint + +check: build + ./$(BINARY) check + +health: build + ./$(BINARY) health + +report: build + ./$(BINARY) report + +clean: + rm -f $(BINARY) diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go new file mode 100644 index 000000000..1ac12ffdd --- /dev/null +++ b/cmd/awesome-docker/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "fmt" + "os" + + "github.com/spf13/cobra" +) + +func main() { + root := &cobra.Command{ + Use: "awesome-docker", + Short: "Quality tooling for the awesome-docker curated list", + } + root.AddCommand( + &cobra.Command{Use: "version", Short: "Print version", Run: func(cmd *cobra.Command, args []string) { + fmt.Println("awesome-docker v0.1.0") + }}, + ) + if err := root.Execute(); err != nil { + os.Exit(1) + } +} diff --git a/config/exclude.yaml b/config/exclude.yaml new file mode 100644 index 000000000..baf252d0e --- /dev/null +++ b/config/exclude.yaml @@ -0,0 +1,18 @@ +# URLs or URL prefixes to skip during link checking. +# These are known false positives or rate-limited domains. +domains: + - https://vimeo.com + - https://travis-ci.org/veggiemonk/awesome-docker.svg + - https://github.com/apps/ + - https://twitter.com + - https://www.meetup.com/ + - https://cycle.io/ + - https://www.manning.com/ + - https://deepfence.io + - https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg + - https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security + - https://www.reddit.com/r/docker/ + - https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615 + - https://www.youtube.com/playlist + - https://www.aquasec.com + - https://cloudsmith.com diff --git a/config/website.tmpl.html b/config/website.tmpl.html new file mode 100644 index 000000000..94e88e02f --- /dev/null +++ b/config/website.tmpl.html @@ -0,0 +1,229 @@ + + + + + + + Awesome-docker + + + + + + + + + + + +
+ + + + + diff --git a/go.mod b/go.mod new file mode 100644 index 000000000..7bed71c5b --- /dev/null +++ b/go.mod @@ -0,0 +1,10 @@ +module github.com/veggiemonk/awesome-docker + +go 1.25.0 + +require github.com/spf13/cobra v1.10.2 + +require ( + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/spf13/pflag v1.0.9 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 000000000..a6ee3e0fb --- /dev/null +++ b/go.sum @@ -0,0 +1,10 @@ +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From f2680c62214d3eeba8dfb201e883fb2f121a70ab Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:17:50 +0100 Subject: [PATCH 233/327] feat: add README parser with entry extraction and section tree building Co-Authored-By: Claude Opus 4.6 --- internal/parser/parser.go | 128 ++++++++++++++++++++++++++++ internal/parser/parser_test.go | 147 +++++++++++++++++++++++++++++++++ internal/parser/types.go | 35 ++++++++ 3 files changed, 310 insertions(+) create mode 100644 internal/parser/parser.go create mode 100644 internal/parser/parser_test.go create mode 100644 internal/parser/types.go diff --git a/internal/parser/parser.go b/internal/parser/parser.go new file mode 100644 index 000000000..fdc0854b0 --- /dev/null +++ b/internal/parser/parser.go @@ -0,0 +1,128 @@ +package parser + +import ( + "bufio" + "fmt" + "io" + "regexp" + "strings" +) + +// entryRe matches: - [Name](URL) - Description +var entryRe = regexp.MustCompile(`^[-*]\s+\[([^\]]+)\]\(([^)]+)\)\s+-\s+(.+)$`) + +// headingRe matches markdown headings: # Title, ## Title, etc. +var headingRe = regexp.MustCompile(`^(#{1,6})\s+(.+?)(?:\s*)?$`) + +var markerMap = map[string]Marker{ + ":skull:": MarkerAbandoned, + ":heavy_dollar_sign:": MarkerPaid, + ":construction:": MarkerWIP, +} + +// ParseEntry parses a single markdown list line into an Entry. +func ParseEntry(line string, lineNum int) (Entry, error) { + m := entryRe.FindStringSubmatch(strings.TrimSpace(line)) + if m == nil { + return Entry{}, fmt.Errorf("line %d: not a valid entry: %q", lineNum, line) + } + + desc := m[3] + var markers []Marker + + for text, marker := range markerMap { + if strings.Contains(desc, text) { + markers = append(markers, marker) + desc = strings.ReplaceAll(desc, text, "") + } + } + desc = strings.TrimSpace(desc) + + return Entry{ + Name: m[1], + URL: m[2], + Description: desc, + Markers: markers, + Line: lineNum, + Raw: line, + }, nil +} + +// Parse reads a full README and returns a Document. +func Parse(r io.Reader) (Document, error) { + scanner := bufio.NewScanner(r) + var doc Document + var allSections []struct { + section Section + level int + } + + lineNum := 0 + for scanner.Scan() { + lineNum++ + line := scanner.Text() + + // Check for heading + if hm := headingRe.FindStringSubmatch(line); hm != nil { + level := len(hm[1]) + title := strings.TrimSpace(hm[2]) + allSections = append(allSections, struct { + section Section + level int + }{ + section: Section{Title: title, Level: level, Line: lineNum}, + level: level, + }) + continue + } + + // Check for entry (list item with link) + if entry, err := ParseEntry(line, lineNum); err == nil { + if len(allSections) > 0 { + allSections[len(allSections)-1].section.Entries = append( + allSections[len(allSections)-1].section.Entries, entry) + } + continue + } + + // Everything else: preamble if no sections yet + if len(allSections) == 0 { + doc.Preamble = append(doc.Preamble, line) + } + } + + if err := scanner.Err(); err != nil { + return doc, err + } + + // Build section tree by nesting based on heading level + doc.Sections = buildTree(allSections) + return doc, nil +} + +func buildTree(flat []struct { + section Section + level int +}) []Section { + if len(flat) == 0 { + return nil + } + + var result []Section + for i := 0; i < len(flat); i++ { + current := flat[i].section + currentLevel := flat[i].level + + // Collect children: everything after this heading at a deeper level + j := i + 1 + for j < len(flat) && flat[j].level > currentLevel { + j++ + } + if j > i+1 { + current.Children = buildTree(flat[i+1 : j]) + } + result = append(result, current) + i = j - 1 + } + return result +} diff --git a/internal/parser/parser_test.go b/internal/parser/parser_test.go new file mode 100644 index 000000000..d414747fa --- /dev/null +++ b/internal/parser/parser_test.go @@ -0,0 +1,147 @@ +package parser + +import ( + "os" + "strings" + "testing" +) + +func TestParseEntry(t *testing.T) { + line := `- [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS.` + entry, err := ParseEntry(line, 1) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if entry.Name != "Docker Desktop" { + t.Errorf("name = %q, want %q", entry.Name, "Docker Desktop") + } + if entry.URL != "https://www.docker.com/products/docker-desktop/" { + t.Errorf("url = %q, want %q", entry.URL, "https://www.docker.com/products/docker-desktop/") + } + if entry.Description != "Official native app. Only for Windows and MacOS." { + t.Errorf("description = %q, want %q", entry.Description, "Official native app. Only for Windows and MacOS.") + } + if len(entry.Markers) != 0 { + t.Errorf("markers = %v, want empty", entry.Markers) + } +} + +func TestParseEntryWithMarkers(t *testing.T) { + line := `- [Docker Swarm](https://github.com/docker/swarm) - Swarm clustering system. :skull:` + entry, err := ParseEntry(line, 1) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if entry.Name != "Docker Swarm" { + t.Errorf("name = %q, want %q", entry.Name, "Docker Swarm") + } + if len(entry.Markers) != 1 || entry.Markers[0] != MarkerAbandoned { + t.Errorf("markers = %v, want [MarkerAbandoned]", entry.Markers) + } + if strings.Contains(entry.Description, ":skull:") { + t.Errorf("description should not contain marker text, got %q", entry.Description) + } +} + +func TestParseEntryMultipleMarkers(t *testing.T) { + line := `- [SomeProject](https://example.com) - A project. :heavy_dollar_sign: :construction:` + entry, err := ParseEntry(line, 1) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(entry.Markers) != 2 { + t.Fatalf("markers count = %d, want 2", len(entry.Markers)) + } +} + +func TestParseDocument(t *testing.T) { + input := `# Awesome Docker + +> A curated list + +# Contents + +- [Projects](#projects) + +# Legend + +- Abandoned :skull: + +# Projects + +## Tools + +- [ToolA](https://github.com/a/a) - Does A. +- [ToolB](https://github.com/b/b) - Does B. :skull: + +## Services + +- [ServiceC](https://example.com/c) - Does C. :heavy_dollar_sign: +` + doc, err := Parse(strings.NewReader(input)) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(doc.Sections) == 0 { + t.Fatal("expected at least one section") + } + // Find the "Projects" section + var projects *Section + for i := range doc.Sections { + if doc.Sections[i].Title == "Projects" { + projects = &doc.Sections[i] + break + } + } + if projects == nil { + t.Fatal("expected a Projects section") + } + if len(projects.Children) != 2 { + t.Errorf("projects children = %d, want 2", len(projects.Children)) + } + if projects.Children[0].Title != "Tools" { + t.Errorf("first child = %q, want %q", projects.Children[0].Title, "Tools") + } + if len(projects.Children[0].Entries) != 2 { + t.Errorf("Tools entries = %d, want 2", len(projects.Children[0].Entries)) + } +} + +func TestParseNotAnEntry(t *testing.T) { + _, err := ParseEntry("- Abandoned :skull:", 1) + if err == nil { + t.Error("expected error for non-entry list item") + } +} + +func TestParseRealREADME(t *testing.T) { + f, err := os.Open("../../README.md") + if err != nil { + t.Skip("README.md not found, skipping integration test") + } + defer f.Close() + + doc, err := Parse(f) + if err != nil { + t.Fatalf("failed to parse README: %v", err) + } + + if len(doc.Sections) == 0 { + t.Error("expected sections") + } + + total := countEntries(doc.Sections) + if total < 100 { + t.Errorf("expected at least 100 entries, got %d", total) + } + t.Logf("Parsed %d sections, %d total entries", len(doc.Sections), total) +} + +func countEntries(sections []Section) int { + n := 0 + for _, s := range sections { + n += len(s.Entries) + n += countEntries(s.Children) + } + return n +} diff --git a/internal/parser/types.go b/internal/parser/types.go new file mode 100644 index 000000000..43a1ccf4f --- /dev/null +++ b/internal/parser/types.go @@ -0,0 +1,35 @@ +package parser + +// Marker represents a status emoji on an entry. +type Marker int + +const ( + MarkerAbandoned Marker = iota // :skull: + MarkerPaid // :heavy_dollar_sign: + MarkerWIP // :construction: +) + +// Entry is a single link entry in the README. +type Entry struct { + Name string + URL string + Description string + Markers []Marker + Line int // 1-based line number in source + Raw string // original line text +} + +// Section is a heading with optional entries and child sections. +type Section struct { + Title string + Level int // heading level: 1 = #, 2 = ##, etc. + Entries []Entry + Children []Section + Line int +} + +// Document is the parsed representation of the full README. +type Document struct { + Preamble []string // lines before the first section + Sections []Section +} From a49077803c6880b35d8c8692d422bc873b945569 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:18:49 +0100 Subject: [PATCH 234/327] feat: add linter with formatting rules, duplicate detection, sorting, and auto-fix Co-Authored-By: Claude Opus 4.6 --- internal/linter/linter.go | 60 +++++++++++++++ internal/linter/linter_test.go | 111 +++++++++++++++++++++++++++ internal/linter/rules.go | 134 +++++++++++++++++++++++++++++++++ 3 files changed, 305 insertions(+) create mode 100644 internal/linter/linter.go create mode 100644 internal/linter/linter_test.go create mode 100644 internal/linter/rules.go diff --git a/internal/linter/linter.go b/internal/linter/linter.go new file mode 100644 index 000000000..4183b11df --- /dev/null +++ b/internal/linter/linter.go @@ -0,0 +1,60 @@ +package linter + +import ( + "github.com/veggiemonk/awesome-docker/internal/parser" +) + +// Result holds all lint issues found. +type Result struct { + Issues []Issue + Errors int + Warnings int +} + +// Lint checks an entire parsed document for issues. +func Lint(doc parser.Document) Result { + var result Result + + // Collect all entries for duplicate checking + allEntries := collectEntries(doc.Sections) + for _, issue := range CheckDuplicates(allEntries) { + addIssue(&result, issue) + } + + // Check each section + lintSections(doc.Sections, &result) + + return result +} + +func lintSections(sections []parser.Section, result *Result) { + for _, s := range sections { + for _, e := range s.Entries { + for _, issue := range CheckEntry(e) { + addIssue(result, issue) + } + } + for _, issue := range CheckSorted(s.Entries) { + addIssue(result, issue) + } + lintSections(s.Children, result) + } +} + +func collectEntries(sections []parser.Section) []parser.Entry { + var all []parser.Entry + for _, s := range sections { + all = append(all, s.Entries...) + all = append(all, collectEntries(s.Children)...) + } + return all +} + +func addIssue(result *Result, issue Issue) { + result.Issues = append(result.Issues, issue) + if issue.Severity == SeverityError { + result.Errors++ + } else { + result.Warnings++ + } +} diff --git a/internal/linter/linter_test.go b/internal/linter/linter_test.go new file mode 100644 index 000000000..bd4fd5e8d --- /dev/null +++ b/internal/linter/linter_test.go @@ -0,0 +1,111 @@ +package linter + +import ( + "testing" + + "github.com/veggiemonk/awesome-docker/internal/parser" +) + +func TestRuleDescriptionCapital(t *testing.T) { + entry := parser.Entry{Name: "Test", URL: "https://example.com", Description: "lowercase start.", Line: 10} + issues := CheckEntry(entry) + found := false + for _, issue := range issues { + if issue.Rule == RuleDescriptionCapital { + found = true + } + } + if !found { + t.Error("expected RuleDescriptionCapital issue for lowercase description") + } +} + +func TestRuleDescriptionPeriod(t *testing.T) { + entry := parser.Entry{Name: "Test", URL: "https://example.com", Description: "No period at end", Line: 10} + issues := CheckEntry(entry) + found := false + for _, issue := range issues { + if issue.Rule == RuleDescriptionPeriod { + found = true + } + } + if !found { + t.Error("expected RuleDescriptionPeriod issue") + } +} + +func TestRuleSorted(t *testing.T) { + entries := []parser.Entry{ + {Name: "Zebra", URL: "https://z.com", Description: "Z.", Line: 1}, + {Name: "Alpha", URL: "https://a.com", Description: "A.", Line: 2}, + } + issues := CheckSorted(entries) + if len(issues) == 0 { + t.Error("expected sorting issue") + } +} + +func TestRuleSortedOK(t *testing.T) { + entries := []parser.Entry{ + {Name: "Alpha", URL: "https://a.com", Description: "A.", Line: 1}, + {Name: "Zebra", URL: "https://z.com", Description: "Z.", Line: 2}, + } + issues := CheckSorted(entries) + if len(issues) != 0 { + t.Errorf("expected no sorting issues, got %d", len(issues)) + } +} + +func TestRuleDuplicateURL(t *testing.T) { + entries := []parser.Entry{ + {Name: "A", URL: "https://example.com/a", Description: "A.", Line: 1}, + {Name: "B", URL: "https://example.com/a", Description: "B.", Line: 5}, + } + issues := CheckDuplicates(entries) + if len(issues) == 0 { + t.Error("expected duplicate URL issue") + } +} + +func TestValidEntry(t *testing.T) { + entry := parser.Entry{Name: "Good", URL: "https://example.com", Description: "A good project.", Line: 10} + issues := CheckEntry(entry) + if len(issues) != 0 { + t.Errorf("expected no issues, got %v", issues) + } +} + +func TestFixDescriptionCapital(t *testing.T) { + entry := parser.Entry{Name: "Test", URL: "https://example.com", Description: "lowercase.", Line: 10} + fixed := FixEntry(entry) + if fixed.Description != "Lowercase." { + t.Errorf("description = %q, want %q", fixed.Description, "Lowercase.") + } +} + +func TestFixDescriptionPeriod(t *testing.T) { + entry := parser.Entry{Name: "Test", URL: "https://example.com", Description: "No period", Line: 10} + fixed := FixEntry(entry) + if fixed.Description != "No period." { + t.Errorf("description = %q, want %q", fixed.Description, "No period.") + } +} + +func TestLintDocument(t *testing.T) { + doc := parser.Document{ + Sections: []parser.Section{ + { + Title: "Tools", + Level: 2, + Entries: []parser.Entry{ + {Name: "Zebra", URL: "https://z.com", Description: "Z tool.", Line: 1}, + {Name: "Alpha", URL: "https://a.com", Description: "a tool", Line: 2}, + }, + }, + }, + } + result := Lint(doc) + if result.Errors == 0 { + t.Error("expected errors (unsorted, lowercase, no period)") + } +} diff --git a/internal/linter/rules.go b/internal/linter/rules.go new file mode 100644 index 000000000..03bc1b2b1 --- /dev/null +++ b/internal/linter/rules.go @@ -0,0 +1,134 @@ +package linter + +import ( + "fmt" + "sort" + "strings" + "unicode" + + "github.com/veggiemonk/awesome-docker/internal/parser" +) + +// Rule identifies a linting rule. +type Rule string + +const ( + RuleDescriptionCapital Rule = "description-capital" + RuleDescriptionPeriod Rule = "description-period" + RuleSorted Rule = "sorted" + RuleDuplicateURL Rule = "duplicate-url" +) + +// Severity of a lint issue. +type Severity int + +const ( + SeverityError Severity = iota + SeverityWarning +) + +// Issue is a single lint problem found. +type Issue struct { + Rule Rule + Severity Severity + Line int + Message string +} + +func (i Issue) String() string { + sev := "ERROR" + if i.Severity == SeverityWarning { + sev = "WARN" + } + return fmt.Sprintf("[%s] line %d: %s (%s)", sev, i.Line, i.Message, i.Rule) +} + +// CheckEntry validates a single entry against formatting rules. +func CheckEntry(e parser.Entry) []Issue { + var issues []Issue + + if len(e.Description) > 0 && !unicode.IsUpper(rune(e.Description[0])) { + issues = append(issues, Issue{ + Rule: RuleDescriptionCapital, + Severity: SeverityError, + Line: e.Line, + Message: fmt.Sprintf("%q: description should start with a capital letter", e.Name), + }) + } + + if len(e.Description) > 0 && !strings.HasSuffix(e.Description, ".") { + issues = append(issues, Issue{ + Rule: RuleDescriptionPeriod, + Severity: SeverityError, + Line: e.Line, + Message: fmt.Sprintf("%q: description should end with a period", e.Name), + }) + } + + return issues +} + +// CheckSorted verifies entries are in alphabetical order (case-insensitive). +func CheckSorted(entries []parser.Entry) []Issue { + var issues []Issue + for i := 1; i < len(entries); i++ { + prev := strings.ToLower(entries[i-1].Name) + curr := strings.ToLower(entries[i].Name) + if prev > curr { + issues = append(issues, Issue{ + Rule: RuleSorted, + Severity: SeverityError, + Line: entries[i].Line, + Message: fmt.Sprintf("%q should come before %q (alphabetical order)", entries[i].Name, entries[i-1].Name), + }) + } + } + return issues +} + +// CheckDuplicates finds entries with the same URL across the entire document. +func CheckDuplicates(entries []parser.Entry) []Issue { + var issues []Issue + seen := make(map[string]int) // URL -> first line number + for _, e := range entries { + url := strings.TrimRight(e.URL, "/") + if firstLine, exists := seen[url]; exists { + issues = append(issues, Issue{ + Rule: RuleDuplicateURL, + Severity: SeverityError, + Line: e.Line, + Message: fmt.Sprintf("duplicate URL %q (first seen at line %d)", e.URL, firstLine), + }) + } else { + seen[url] = e.Line + } + } + return issues +} + +// FixEntry returns a copy of the entry with auto-fixable issues corrected. +func FixEntry(e parser.Entry) parser.Entry { + fixed := e + if len(fixed.Description) > 0 { + // Capitalize first letter + runes := []rune(fixed.Description) + runes[0] = unicode.ToUpper(runes[0]) + fixed.Description = string(runes) + + // Ensure period at end + if !strings.HasSuffix(fixed.Description, ".") { + fixed.Description += "." + } + } + return fixed +} + +// SortEntries returns a sorted copy of entries (case-insensitive by Name). +func SortEntries(entries []parser.Entry) []parser.Entry { + sorted := make([]parser.Entry, len(entries)) + copy(sorted, entries) + sort.Slice(sorted, func(i, j int) bool { + return strings.ToLower(sorted[i].Name) < strings.ToLower(sorted[j].Name) + }) + return sorted +} From ddc32f45d0300c461423b489bc1bf2d8321df302 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:19:31 +0100 Subject: [PATCH 235/327] feat: add cache package for exclude list and health cache YAML read/write Co-Authored-By: Claude Opus 4.6 --- go.mod | 1 + go.sum | 2 + internal/cache/cache.go | 95 +++++++++++++++++++++++++++++++ internal/cache/cache_test.go | 105 +++++++++++++++++++++++++++++++++++ 4 files changed, 203 insertions(+) create mode 100644 internal/cache/cache.go create mode 100644 internal/cache/cache_test.go diff --git a/go.mod b/go.mod index 7bed71c5b..5e4eb4f6f 100644 --- a/go.mod +++ b/go.mod @@ -7,4 +7,5 @@ require github.com/spf13/cobra v1.10.2 require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/spf13/pflag v1.0.9 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index a6ee3e0fb..ff4d6eccc 100644 --- a/go.sum +++ b/go.sum @@ -8,3 +8,5 @@ github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/cache/cache.go b/internal/cache/cache.go new file mode 100644 index 000000000..a19089d8d --- /dev/null +++ b/internal/cache/cache.go @@ -0,0 +1,95 @@ +package cache + +import ( + "os" + "strings" + "time" + + "gopkg.in/yaml.v3" +) + +// ExcludeList holds URL prefixes to skip during checking. +type ExcludeList struct { + Domains []string `yaml:"domains"` +} + +// IsExcluded returns true if the URL starts with any excluded prefix. +func (e *ExcludeList) IsExcluded(url string) bool { + for _, d := range e.Domains { + if strings.HasPrefix(url, d) { + return true + } + } + return false +} + +// LoadExcludeList reads an exclude.yaml file. +func LoadExcludeList(path string) (*ExcludeList, error) { + data, err := os.ReadFile(path) + if err != nil { + return nil, err + } + var excl ExcludeList + if err := yaml.Unmarshal(data, &excl); err != nil { + return nil, err + } + return &excl, nil +} + +// HealthEntry stores metadata about a single entry. +type HealthEntry struct { + URL string `yaml:"url"` + Name string `yaml:"name"` + Status string `yaml:"status"` // healthy, inactive, stale, archived, dead + Stars int `yaml:"stars,omitempty"` + Forks int `yaml:"forks,omitempty"` + LastPush time.Time `yaml:"last_push,omitempty"` + HasLicense bool `yaml:"has_license,omitempty"` + HasReadme bool `yaml:"has_readme,omitempty"` + CheckedAt time.Time `yaml:"checked_at"` +} + +// HealthCache is the full YAML cache file. +type HealthCache struct { + Entries []HealthEntry `yaml:"entries"` +} + +// LoadHealthCache reads a health_cache.yaml file. Returns empty cache if file doesn't exist. +func LoadHealthCache(path string) (*HealthCache, error) { + data, err := os.ReadFile(path) + if err != nil { + if os.IsNotExist(err) { + return &HealthCache{}, nil + } + return nil, err + } + var hc HealthCache + if err := yaml.Unmarshal(data, &hc); err != nil { + return nil, err + } + return &hc, nil +} + +// SaveHealthCache writes the cache to a YAML file. +func SaveHealthCache(path string, hc *HealthCache) error { + data, err := yaml.Marshal(hc) + if err != nil { + return err + } + return os.WriteFile(path, data, 0644) +} + +// Merge updates the cache with new entries, replacing existing ones by URL. +func (hc *HealthCache) Merge(entries []HealthEntry) { + index := make(map[string]int) + for i, e := range hc.Entries { + index[e.URL] = i + } + for _, e := range entries { + if i, exists := index[e.URL]; exists { + hc.Entries[i] = e + } else { + hc.Entries = append(hc.Entries, e) + } + } +} diff --git a/internal/cache/cache_test.go b/internal/cache/cache_test.go new file mode 100644 index 000000000..03ec5144a --- /dev/null +++ b/internal/cache/cache_test.go @@ -0,0 +1,105 @@ +package cache + +import ( + "os" + "path/filepath" + "testing" + "time" +) + +func TestLoadExcludeList(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "exclude.yaml") + content := `domains: + - https://example.com + - https://test.org +` + if err := os.WriteFile(path, []byte(content), 0644); err != nil { + t.Fatal(err) + } + + excl, err := LoadExcludeList(path) + if err != nil { + t.Fatal(err) + } + if len(excl.Domains) != 2 { + t.Errorf("domains count = %d, want 2", len(excl.Domains)) + } + if !excl.IsExcluded("https://example.com/foo") { + t.Error("expected https://example.com/foo to be excluded") + } + if excl.IsExcluded("https://other.com") { + t.Error("expected https://other.com to NOT be excluded") + } +} + +func TestHealthCacheRoundTrip(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "health.yaml") + + original := &HealthCache{ + Entries: []HealthEntry{ + { + URL: "https://github.com/example/repo", + Name: "Example", + Status: "healthy", + Stars: 42, + LastPush: time.Date(2026, 1, 15, 0, 0, 0, 0, time.UTC), + HasLicense: true, + HasReadme: true, + CheckedAt: time.Date(2026, 2, 27, 9, 0, 0, 0, time.UTC), + }, + }, + } + + if err := SaveHealthCache(path, original); err != nil { + t.Fatal(err) + } + + loaded, err := LoadHealthCache(path) + if err != nil { + t.Fatal(err) + } + if len(loaded.Entries) != 1 { + t.Fatalf("entries = %d, want 1", len(loaded.Entries)) + } + if loaded.Entries[0].Stars != 42 { + t.Errorf("stars = %d, want 42", loaded.Entries[0].Stars) + } +} + +func TestLoadHealthCacheMissing(t *testing.T) { + hc, err := LoadHealthCache("/nonexistent/path.yaml") + if err != nil { + t.Fatal(err) + } + if len(hc.Entries) != 0 { + t.Errorf("entries = %d, want 0 for missing file", len(hc.Entries)) + } +} + +func TestMerge(t *testing.T) { + hc := &HealthCache{ + Entries: []HealthEntry{ + {URL: "https://github.com/a/a", Name: "A", Stars: 10}, + {URL: "https://github.com/b/b", Name: "B", Stars: 20}, + }, + } + + hc.Merge([]HealthEntry{ + {URL: "https://github.com/b/b", Name: "B", Stars: 25}, // update + {URL: "https://github.com/c/c", Name: "C", Stars: 30}, // new + }) + + if len(hc.Entries) != 3 { + t.Fatalf("entries = %d, want 3", len(hc.Entries)) + } + // B should be updated + if hc.Entries[1].Stars != 25 { + t.Errorf("B stars = %d, want 25", hc.Entries[1].Stars) + } + // C should be appended + if hc.Entries[2].Name != "C" { + t.Errorf("last entry = %q, want C", hc.Entries[2].Name) + } +} From bc46effe08c1a6f76230a70a524ea0e735126dd8 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:20:50 +0100 Subject: [PATCH 236/327] feat: add HTTP link checker and GitHub GraphQL repo checker Co-Authored-By: Claude Opus 4.6 --- go.mod | 3 + go.sum | 6 ++ internal/checker/github.go | 138 ++++++++++++++++++++++++++++++++ internal/checker/github_test.go | 52 ++++++++++++ internal/checker/http.go | 111 +++++++++++++++++++++++++ internal/checker/http_test.go | 80 ++++++++++++++++++ 6 files changed, 390 insertions(+) create mode 100644 internal/checker/github.go create mode 100644 internal/checker/github_test.go create mode 100644 internal/checker/http.go create mode 100644 internal/checker/http_test.go diff --git a/go.mod b/go.mod index 5e4eb4f6f..f60810063 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,9 @@ require github.com/spf13/cobra v1.10.2 require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed // indirect + github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf // indirect github.com/spf13/pflag v1.0.9 // indirect + golang.org/x/oauth2 v0.35.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index ff4d6eccc..8c787c056 100644 --- a/go.sum +++ b/go.sum @@ -2,11 +2,17 @@ github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6N github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed h1:KT7hI8vYXgU0s2qaMkrfq9tCA1w/iEPgfredVP+4Tzw= +github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed/go.mod h1:zqMwyHmnN/eDOZOdiTohqIUKUrTFX62PNlu7IJdu0q8= +github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf h1:o1uxfymjZ7jZ4MsgCErcwWGtVKSiNAXtS59Lhs6uI/g= +github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf/go.mod h1:9dIRpgIY7hVhoqfe0/FcYp0bpInZaT7dc3BYOprrIUE= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= +golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/checker/github.go b/internal/checker/github.go new file mode 100644 index 000000000..e1f1dac57 --- /dev/null +++ b/internal/checker/github.go @@ -0,0 +1,138 @@ +package checker + +import ( + "context" + "fmt" + "strings" + "time" + + "github.com/shurcooL/githubv4" + "golang.org/x/oauth2" +) + +// RepoInfo holds metadata about a GitHub repository. +type RepoInfo struct { + Owner string + Name string + URL string + IsArchived bool + IsDisabled bool + IsPrivate bool + PushedAt time.Time + Stars int + Forks int + HasLicense bool +} + +// ExtractGitHubRepo extracts owner/name from a GitHub URL. +// Returns false for non-repo URLs (issues, wiki, apps, etc.). +func ExtractGitHubRepo(url string) (owner, name string, ok bool) { + if !strings.HasPrefix(url, "https://github.com/") { + return "", "", false + } + path := strings.TrimPrefix(url, "https://github.com/") + path = strings.TrimRight(path, "/") + parts := strings.Split(path, "/") + if len(parts) != 2 || parts[0] == "" || parts[1] == "" { + return "", "", false + } + // Skip non-repo paths + if parts[0] == "apps" || parts[0] == "features" || parts[0] == "topics" { + return "", "", false + } + return parts[0], parts[1], true +} + +// PartitionLinks separates URLs into GitHub repos and external links. +func PartitionLinks(urls []string) (github, external []string) { + for _, url := range urls { + if _, _, ok := ExtractGitHubRepo(url); ok { + github = append(github, url) + } else { + external = append(external, url) + } + } + return +} + +// GitHubChecker uses the GitHub GraphQL API. +type GitHubChecker struct { + client *githubv4.Client +} + +// NewGitHubChecker creates a checker with the given OAuth token. +func NewGitHubChecker(token string) *GitHubChecker { + src := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token}) + httpClient := oauth2.NewClient(context.Background(), src) + return &GitHubChecker{client: githubv4.NewClient(httpClient)} +} + +// CheckRepo queries a single GitHub repository. +func (gc *GitHubChecker) CheckRepo(ctx context.Context, owner, name string) (RepoInfo, error) { + var query struct { + Repository struct { + IsArchived bool + IsDisabled bool + IsPrivate bool + PushedAt time.Time + StargazerCount int + ForkCount int + LicenseInfo *struct { + Name string + } + } `graphql:"repository(owner: $owner, name: $name)"` + } + + vars := map[string]interface{}{ + "owner": githubv4.String(owner), + "name": githubv4.String(name), + } + + if err := gc.client.Query(ctx, &query, vars); err != nil { + return RepoInfo{}, fmt.Errorf("github query %s/%s: %w", owner, name, err) + } + + r := query.Repository + return RepoInfo{ + Owner: owner, + Name: name, + URL: fmt.Sprintf("https://github.com/%s/%s", owner, name), + IsArchived: r.IsArchived, + IsDisabled: r.IsDisabled, + IsPrivate: r.IsPrivate, + PushedAt: r.PushedAt, + Stars: r.StargazerCount, + Forks: r.ForkCount, + HasLicense: r.LicenseInfo != nil, + }, nil +} + +// CheckRepos queries multiple repos in sequence with rate limiting. +func (gc *GitHubChecker) CheckRepos(ctx context.Context, urls []string, batchSize int) ([]RepoInfo, []error) { + if batchSize <= 0 { + batchSize = 50 + } + + var results []RepoInfo + var errs []error + + for i, url := range urls { + owner, name, ok := ExtractGitHubRepo(url) + if !ok { + continue + } + + info, err := gc.CheckRepo(ctx, owner, name) + if err != nil { + errs = append(errs, err) + continue + } + results = append(results, info) + + if (i+1)%batchSize == 0 { + time.Sleep(1 * time.Second) + } + } + + return results, errs +} diff --git a/internal/checker/github_test.go b/internal/checker/github_test.go new file mode 100644 index 000000000..7ac8fbe2e --- /dev/null +++ b/internal/checker/github_test.go @@ -0,0 +1,52 @@ +package checker + +import ( + "testing" +) + +func TestExtractGitHubRepo(t *testing.T) { + tests := []struct { + url string + owner string + name string + ok bool + }{ + {"https://github.com/docker/compose", "docker", "compose", true}, + {"https://github.com/moby/moby", "moby", "moby", true}, + {"https://github.com/user/repo/", "user", "repo", true}, + {"https://github.com/user/repo/issues", "", "", false}, + {"https://github.com/user/repo/wiki", "", "", false}, + {"https://github.com/apps/dependabot", "", "", false}, + {"https://example.com/not-github", "", "", false}, + {"https://github.com/user", "", "", false}, + } + + for _, tt := range tests { + owner, name, ok := ExtractGitHubRepo(tt.url) + if ok != tt.ok { + t.Errorf("ExtractGitHubRepo(%q): ok = %v, want %v", tt.url, ok, tt.ok) + continue + } + if ok { + if owner != tt.owner || name != tt.name { + t.Errorf("ExtractGitHubRepo(%q) = (%q, %q), want (%q, %q)", tt.url, owner, name, tt.owner, tt.name) + } + } + } +} + +func TestPartitionLinks(t *testing.T) { + urls := []string{ + "https://github.com/docker/compose", + "https://example.com/tool", + "https://github.com/moby/moby", + "https://github.com/user/repo/issues", + } + gh, ext := PartitionLinks(urls) + if len(gh) != 2 { + t.Errorf("github links = %d, want 2", len(gh)) + } + if len(ext) != 2 { + t.Errorf("external links = %d, want 2", len(ext)) + } +} diff --git a/internal/checker/http.go b/internal/checker/http.go new file mode 100644 index 000000000..3e1792974 --- /dev/null +++ b/internal/checker/http.go @@ -0,0 +1,111 @@ +package checker + +import ( + "context" + "net/http" + "sync" + "time" + + "github.com/veggiemonk/awesome-docker/internal/cache" +) + +const ( + defaultTimeout = 30 * time.Second + defaultConcurrency = 10 + userAgent = "awesome-docker-checker/1.0" +) + +// LinkResult holds the result of checking a single URL. +type LinkResult struct { + URL string + OK bool + StatusCode int + Redirected bool + RedirectURL string + Error string +} + +// CheckLink checks a single URL. Uses HEAD first, falls back to GET. +func CheckLink(url string, client *http.Client) LinkResult { + result := LinkResult{URL: url} + + ctx, cancel := context.WithTimeout(context.Background(), defaultTimeout) + defer cancel() + + // Try HEAD first + req, err := http.NewRequestWithContext(ctx, http.MethodHead, url, nil) + if err != nil { + result.Error = err.Error() + return result + } + req.Header.Set("User-Agent", userAgent) + + // Track redirects + var finalURL string + origCheckRedirect := client.CheckRedirect + client.CheckRedirect = func(req *http.Request, via []*http.Request) error { + finalURL = req.URL.String() + if len(via) >= 10 { + return http.ErrUseLastResponse + } + return nil + } + defer func() { client.CheckRedirect = origCheckRedirect }() + + resp, err := client.Do(req) + if err != nil { + // Fallback to GET + req, err2 := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) + if err2 != nil { + result.Error = err.Error() + return result + } + req.Header.Set("User-Agent", userAgent) + resp, err = client.Do(req) + if err != nil { + result.Error = err.Error() + return result + } + } + defer resp.Body.Close() + + result.StatusCode = resp.StatusCode + result.OK = resp.StatusCode >= 200 && resp.StatusCode < 400 + + if finalURL != "" && finalURL != url { + result.Redirected = true + result.RedirectURL = finalURL + } + + return result +} + +// CheckLinks checks multiple URLs concurrently. +func CheckLinks(urls []string, concurrency int, exclude *cache.ExcludeList) []LinkResult { + if concurrency <= 0 { + concurrency = defaultConcurrency + } + + results := make([]LinkResult, len(urls)) + sem := make(chan struct{}, concurrency) + var wg sync.WaitGroup + + for i, url := range urls { + if exclude != nil && exclude.IsExcluded(url) { + results[i] = LinkResult{URL: url, OK: true} + continue + } + + wg.Add(1) + go func(idx int, u string) { + defer wg.Done() + sem <- struct{}{} + defer func() { <-sem }() + client := &http.Client{Timeout: defaultTimeout} + results[idx] = CheckLink(u, client) + }(i, url) + } + + wg.Wait() + return results +} diff --git a/internal/checker/http_test.go b/internal/checker/http_test.go new file mode 100644 index 000000000..b8eef4527 --- /dev/null +++ b/internal/checker/http_test.go @@ -0,0 +1,80 @@ +package checker + +import ( + "net/http" + "net/http/httptest" + "testing" +) + +func TestCheckLinkOK(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + })) + defer server.Close() + + result := CheckLink(server.URL, &http.Client{}) + if !result.OK { + t.Errorf("expected OK, got status %d, error: %s", result.StatusCode, result.Error) + } +} + +func TestCheckLink404(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusNotFound) + })) + defer server.Close() + + result := CheckLink(server.URL, &http.Client{}) + if result.OK { + t.Error("expected not OK for 404") + } + if result.StatusCode != 404 { + t.Errorf("status = %d, want 404", result.StatusCode) + } +} + +func TestCheckLinkRedirect(t *testing.T) { + final := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + })) + defer final.Close() + + redir := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + http.Redirect(w, r, final.URL, http.StatusMovedPermanently) + })) + defer redir.Close() + + result := CheckLink(redir.URL, &http.Client{}) + if !result.OK { + t.Errorf("expected OK after following redirect, error: %s", result.Error) + } + if !result.Redirected { + t.Error("expected Redirected = true") + } +} + +func TestCheckLinks(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.Path == "/bad" { + w.WriteHeader(http.StatusNotFound) + return + } + w.WriteHeader(http.StatusOK) + })) + defer server.Close() + + urls := []string{server.URL + "/good", server.URL + "/bad", server.URL + "/also-good"} + results := CheckLinks(urls, 2, nil) + if len(results) != 3 { + t.Fatalf("results = %d, want 3", len(results)) + } + + for _, r := range results { + if r.URL == server.URL+"/bad" && r.OK { + t.Error("expected /bad to not be OK") + } + if r.URL == server.URL+"/good" && !r.OK { + t.Error("expected /good to be OK") + } + } +} From 804da83d7ba752dcba9db348a3d2c74dc7f9e7c0 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:21:37 +0100 Subject: [PATCH 237/327] feat: add health scorer with status classification and report generation Co-Authored-By: Claude Opus 4.6 --- internal/scorer/scorer.go | 133 +++++++++++++++++++++++++++++++++ internal/scorer/scorer_test.go | 100 +++++++++++++++++++++++++ 2 files changed, 233 insertions(+) create mode 100644 internal/scorer/scorer.go create mode 100644 internal/scorer/scorer_test.go diff --git a/internal/scorer/scorer.go b/internal/scorer/scorer.go new file mode 100644 index 000000000..c91aaf1e2 --- /dev/null +++ b/internal/scorer/scorer.go @@ -0,0 +1,133 @@ +package scorer + +import ( + "fmt" + "strings" + "time" + + "github.com/veggiemonk/awesome-docker/internal/cache" + "github.com/veggiemonk/awesome-docker/internal/checker" +) + +// Status represents the health status of an entry. +type Status string + +const ( + StatusHealthy Status = "healthy" + StatusInactive Status = "inactive" // 1-2 years since last push + StatusStale Status = "stale" // 2+ years since last push + StatusArchived Status = "archived" + StatusDead Status = "dead" // disabled or 404 +) + +// ScoredEntry is a repo with its computed health status. +type ScoredEntry struct { + URL string + Name string + Status Status + Stars int + Forks int + LastPush time.Time +} + +// Score computes the health status of a GitHub repo. +func Score(info checker.RepoInfo) Status { + if info.IsDisabled { + return StatusDead + } + if info.IsArchived { + return StatusArchived + } + + twoYearsAgo := time.Now().AddDate(-2, 0, 0) + oneYearAgo := time.Now().AddDate(-1, 0, 0) + + if info.PushedAt.Before(twoYearsAgo) { + return StatusStale + } + if info.PushedAt.Before(oneYearAgo) { + return StatusInactive + } + return StatusHealthy +} + +// ScoreAll scores a batch of repo infos. +func ScoreAll(infos []checker.RepoInfo) []ScoredEntry { + results := make([]ScoredEntry, len(infos)) + for i, info := range infos { + results[i] = ScoredEntry{ + URL: info.URL, + Name: fmt.Sprintf("%s/%s", info.Owner, info.Name), + Status: Score(info), + Stars: info.Stars, + Forks: info.Forks, + LastPush: info.PushedAt, + } + } + return results +} + +// ToCacheEntries converts scored entries to cache format. +func ToCacheEntries(scored []ScoredEntry) []cache.HealthEntry { + entries := make([]cache.HealthEntry, len(scored)) + now := time.Now().UTC() + for i, s := range scored { + entries[i] = cache.HealthEntry{ + URL: s.URL, + Name: s.Name, + Status: string(s.Status), + Stars: s.Stars, + Forks: s.Forks, + LastPush: s.LastPush, + CheckedAt: now, + } + } + return entries +} + +// GenerateReport produces a Markdown health report. +func GenerateReport(scored []ScoredEntry) string { + var b strings.Builder + + groups := map[Status][]ScoredEntry{} + for _, s := range scored { + groups[s.Status] = append(groups[s.Status], s) + } + + fmt.Fprintf(&b, "# Health Report\n\n") + fmt.Fprintf(&b, "**Generated:** %s\n\n", time.Now().UTC().Format(time.RFC3339)) + fmt.Fprintf(&b, "**Total:** %d repositories\n\n", len(scored)) + + fmt.Fprintf(&b, "## Summary\n\n") + fmt.Fprintf(&b, "- Healthy: %d\n", len(groups[StatusHealthy])) + fmt.Fprintf(&b, "- Inactive (1-2 years): %d\n", len(groups[StatusInactive])) + fmt.Fprintf(&b, "- Stale (2+ years): %d\n", len(groups[StatusStale])) + fmt.Fprintf(&b, "- Archived: %d\n", len(groups[StatusArchived])) + fmt.Fprintf(&b, "- Dead: %d\n\n", len(groups[StatusDead])) + + writeSection := func(title string, status Status, limit int) { + entries := groups[status] + if len(entries) == 0 { + return + } + fmt.Fprintf(&b, "## %s\n\n", title) + count := len(entries) + if limit > 0 && count > limit { + count = limit + } + for _, e := range entries[:count] { + fmt.Fprintf(&b, "- [%s](%s) - Stars: %d - Last push: %s\n", + e.Name, e.URL, e.Stars, e.LastPush.Format("2006-01-02")) + } + if len(entries) > count { + fmt.Fprintf(&b, "\n... and %d more\n", len(entries)-count) + } + b.WriteString("\n") + } + + writeSection("Archived (should mark :skull:)", StatusArchived, 0) + writeSection("Stale (2+ years inactive)", StatusStale, 50) + writeSection("Inactive (1-2 years)", StatusInactive, 30) + + return b.String() +} diff --git a/internal/scorer/scorer_test.go b/internal/scorer/scorer_test.go new file mode 100644 index 000000000..1aab44af9 --- /dev/null +++ b/internal/scorer/scorer_test.go @@ -0,0 +1,100 @@ +package scorer + +import ( + "strings" + "testing" + "time" + + "github.com/veggiemonk/awesome-docker/internal/checker" +) + +func TestScoreHealthy(t *testing.T) { + info := checker.RepoInfo{ + PushedAt: time.Now().AddDate(0, -3, 0), + IsArchived: false, + Stars: 100, + HasLicense: true, + } + status := Score(info) + if status != StatusHealthy { + t.Errorf("status = %q, want %q", status, StatusHealthy) + } +} + +func TestScoreInactive(t *testing.T) { + info := checker.RepoInfo{ + PushedAt: time.Now().AddDate(-1, -6, 0), + IsArchived: false, + } + status := Score(info) + if status != StatusInactive { + t.Errorf("status = %q, want %q", status, StatusInactive) + } +} + +func TestScoreStale(t *testing.T) { + info := checker.RepoInfo{ + PushedAt: time.Now().AddDate(-3, 0, 0), + IsArchived: false, + } + status := Score(info) + if status != StatusStale { + t.Errorf("status = %q, want %q", status, StatusStale) + } +} + +func TestScoreArchived(t *testing.T) { + info := checker.RepoInfo{ + PushedAt: time.Now(), + IsArchived: true, + } + status := Score(info) + if status != StatusArchived { + t.Errorf("status = %q, want %q", status, StatusArchived) + } +} + +func TestScoreDisabled(t *testing.T) { + info := checker.RepoInfo{ + IsDisabled: true, + } + status := Score(info) + if status != StatusDead { + t.Errorf("status = %q, want %q", status, StatusDead) + } +} + +func TestGenerateReport(t *testing.T) { + results := []ScoredEntry{ + {URL: "https://github.com/a/a", Name: "a/a", Status: StatusHealthy, Stars: 100, LastPush: time.Now()}, + {URL: "https://github.com/b/b", Name: "b/b", Status: StatusArchived, Stars: 50, LastPush: time.Now()}, + {URL: "https://github.com/c/c", Name: "c/c", Status: StatusStale, Stars: 10, LastPush: time.Now().AddDate(-3, 0, 0)}, + } + report := GenerateReport(results) + if !strings.Contains(report, "Healthy: 1") { + t.Error("report should contain 'Healthy: 1'") + } + if !strings.Contains(report, "Archived: 1") { + t.Error("report should contain 'Archived: 1'") + } + if !strings.Contains(report, "Stale") { + t.Error("report should contain 'Stale'") + } +} + +func TestScoreAll(t *testing.T) { + infos := []checker.RepoInfo{ + {Owner: "a", Name: "a", PushedAt: time.Now(), Stars: 10}, + {Owner: "b", Name: "b", PushedAt: time.Now().AddDate(-3, 0, 0), Stars: 5}, + } + scored := ScoreAll(infos) + if len(scored) != 2 { + t.Fatalf("scored = %d, want 2", len(scored)) + } + if scored[0].Status != StatusHealthy { + t.Errorf("first = %q, want healthy", scored[0].Status) + } + if scored[1].Status != StatusStale { + t.Errorf("second = %q, want stale", scored[1].Status) + } +} From ed04ff40179788ff2a7e78d55f7f5d5e904fa950 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:22:16 +0100 Subject: [PATCH 238/327] feat: add website builder using goldmark (replaces build.js) Co-Authored-By: Claude Opus 4.6 --- go.mod | 1 + go.sum | 2 + internal/builder/builder.go | 51 ++++++++++++++ internal/builder/builder_test.go | 113 +++++++++++++++++++++++++++++++ 4 files changed, 167 insertions(+) create mode 100644 internal/builder/builder.go create mode 100644 internal/builder/builder_test.go diff --git a/go.mod b/go.mod index f60810063..b72fbff74 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed // indirect github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf // indirect github.com/spf13/pflag v1.0.9 // indirect + github.com/yuin/goldmark v1.7.16 // indirect golang.org/x/oauth2 v0.35.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 8c787c056..0c38e5035 100644 --- a/go.sum +++ b/go.sum @@ -10,6 +10,8 @@ github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE= +github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= diff --git a/internal/builder/builder.go b/internal/builder/builder.go new file mode 100644 index 000000000..872072e81 --- /dev/null +++ b/internal/builder/builder.go @@ -0,0 +1,51 @@ +package builder + +import ( + "bytes" + "fmt" + "os" + "strings" + + "github.com/yuin/goldmark" + "github.com/yuin/goldmark/extension" + "github.com/yuin/goldmark/renderer/html" +) + +// Build converts a Markdown file to HTML using a template. +// The template must contain a placeholder element that will be replaced with the rendered content. +func Build(markdownPath, templatePath, outputPath string) error { + md, err := os.ReadFile(markdownPath) + if err != nil { + return fmt.Errorf("read markdown: %w", err) + } + + tmpl, err := os.ReadFile(templatePath) + if err != nil { + return fmt.Errorf("read template: %w", err) + } + + // Convert markdown to HTML + gm := goldmark.New( + goldmark.WithExtensions(extension.GFM), + goldmark.WithRendererOptions(html.WithUnsafe()), + ) + var buf bytes.Buffer + if err := gm.Convert(md, &buf); err != nil { + return fmt.Errorf("convert markdown: %w", err) + } + + // Inject into template — support both placeholder formats + output := string(tmpl) + replacements := []struct{ old, new string }{ + {`
`, `
` + buf.String() + `
`}, + {`
`, `
` + buf.String() + `
`}, + } + for _, r := range replacements { + output = strings.Replace(output, r.old, r.new, 1) + } + + if err := os.WriteFile(outputPath, []byte(output), 0644); err != nil { + return fmt.Errorf("write output: %w", err) + } + return nil +} diff --git a/internal/builder/builder_test.go b/internal/builder/builder_test.go new file mode 100644 index 000000000..cdf992dd1 --- /dev/null +++ b/internal/builder/builder_test.go @@ -0,0 +1,113 @@ +package builder + +import ( + "os" + "path/filepath" + "strings" + "testing" +) + +func TestBuild(t *testing.T) { + dir := t.TempDir() + + md := "# Test List\n\n- [Example](https://example.com) - A test entry.\n" + mdPath := filepath.Join(dir, "README.md") + if err := os.WriteFile(mdPath, []byte(md), 0644); err != nil { + t.Fatal(err) + } + + tmpl := ` + + +
+ +` + tmplPath := filepath.Join(dir, "template.html") + if err := os.WriteFile(tmplPath, []byte(tmpl), 0644); err != nil { + t.Fatal(err) + } + + outPath := filepath.Join(dir, "index.html") + if err := Build(mdPath, tmplPath, outPath); err != nil { + t.Fatalf("Build failed: %v", err) + } + + content, err := os.ReadFile(outPath) + if err != nil { + t.Fatal(err) + } + + html := string(content) + if !strings.Contains(html, "Test List") { + t.Error("expected 'Test List' in output") + } + if !strings.Contains(html, "https://example.com") { + t.Error("expected link in output") + } +} + +func TestBuildWithSectionPlaceholder(t *testing.T) { + dir := t.TempDir() + + md := "# Hello\n\nWorld.\n" + mdPath := filepath.Join(dir, "README.md") + if err := os.WriteFile(mdPath, []byte(md), 0644); err != nil { + t.Fatal(err) + } + + // This matches the actual template format + tmpl := ` + + +
+ +` + tmplPath := filepath.Join(dir, "template.html") + if err := os.WriteFile(tmplPath, []byte(tmpl), 0644); err != nil { + t.Fatal(err) + } + + outPath := filepath.Join(dir, "index.html") + if err := Build(mdPath, tmplPath, outPath); err != nil { + t.Fatalf("Build failed: %v", err) + } + + content, err := os.ReadFile(outPath) + if err != nil { + t.Fatal(err) + } + + if !strings.Contains(string(content), "Hello") { + t.Error("expected 'Hello' in output") + } + if !strings.Contains(string(content), `class="main-content"`) { + t.Error("expected section class preserved") + } +} + +func TestBuildRealREADME(t *testing.T) { + mdPath := "../../README.md" + tmplPath := "../../config/website.tmpl.html" + if _, err := os.Stat(mdPath); err != nil { + t.Skip("README.md not found") + } + if _, err := os.Stat(tmplPath); err != nil { + t.Skip("website template not found") + } + + dir := t.TempDir() + outPath := filepath.Join(dir, "index.html") + + if err := Build(mdPath, tmplPath, outPath); err != nil { + t.Fatalf("Build failed: %v", err) + } + + info, err := os.Stat(outPath) + if err != nil { + t.Fatal(err) + } + if info.Size() < 10000 { + t.Errorf("output too small: %d bytes", info.Size()) + } + t.Logf("Generated %d bytes", info.Size()) +} From 83211a492337b23e9bb77b54391d69136ab30d1e Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:23:25 +0100 Subject: [PATCH 239/327] feat: wire all packages into cobra CLI with lint, check, health, build, report, validate commands Co-Authored-By: Claude Opus 4.6 --- cmd/awesome-docker/main.go | 290 ++++++++++++++++++++++++++++++++++++- 1 file changed, 287 insertions(+), 3 deletions(-) diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index 1ac12ffdd..01c5beb27 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -1,10 +1,26 @@ package main import ( + "context" "fmt" "os" "github.com/spf13/cobra" + "github.com/veggiemonk/awesome-docker/internal/builder" + "github.com/veggiemonk/awesome-docker/internal/cache" + "github.com/veggiemonk/awesome-docker/internal/checker" + "github.com/veggiemonk/awesome-docker/internal/linter" + "github.com/veggiemonk/awesome-docker/internal/parser" + "github.com/veggiemonk/awesome-docker/internal/scorer" +) + +const ( + readmePath = "README.md" + excludePath = "config/exclude.yaml" + templatePath = "config/website.tmpl.html" + healthCachePath = "config/health_cache.yaml" + websiteOutput = "website/index.html" + version = "0.1.0" ) func main() { @@ -12,12 +28,280 @@ func main() { Use: "awesome-docker", Short: "Quality tooling for the awesome-docker curated list", } + root.AddCommand( - &cobra.Command{Use: "version", Short: "Print version", Run: func(cmd *cobra.Command, args []string) { - fmt.Println("awesome-docker v0.1.0") - }}, + versionCmd(), + lintCmd(), + checkCmd(), + healthCmd(), + buildCmd(), + reportCmd(), + validateCmd(), ) + if err := root.Execute(); err != nil { os.Exit(1) } } + +func versionCmd() *cobra.Command { + return &cobra.Command{ + Use: "version", + Short: "Print version", + Run: func(cmd *cobra.Command, args []string) { fmt.Printf("awesome-docker v%s\n", version) }, + } +} + +func parseReadme() (parser.Document, error) { + f, err := os.Open(readmePath) + if err != nil { + return parser.Document{}, err + } + defer f.Close() + return parser.Parse(f) +} + +func collectURLs(sections []parser.Section, urls *[]string) { + for _, s := range sections { + for _, e := range s.Entries { + *urls = append(*urls, e.URL) + } + collectURLs(s.Children, urls) + } +} + +func lintCmd() *cobra.Command { + var fix bool + cmd := &cobra.Command{ + Use: "lint", + Short: "Validate README formatting", + RunE: func(cmd *cobra.Command, args []string) error { + doc, err := parseReadme() + if err != nil { + return fmt.Errorf("parse: %w", err) + } + + result := linter.Lint(doc) + for _, issue := range result.Issues { + fmt.Println(issue) + } + + if result.Errors > 0 { + fmt.Printf("\n%d errors, %d warnings\n", result.Errors, result.Warnings) + if !fix { + return fmt.Errorf("lint failed with %d errors", result.Errors) + } + fmt.Println("Auto-fix mode: --fix is not yet fully implemented for file rewriting") + } else { + fmt.Printf("OK: %d warnings\n", result.Warnings) + } + + return nil + }, + } + cmd.Flags().BoolVar(&fix, "fix", false, "Auto-fix formatting issues") + return cmd +} + +func checkCmd() *cobra.Command { + var prMode bool + cmd := &cobra.Command{ + Use: "check", + Short: "Check links for reachability", + RunE: func(cmd *cobra.Command, args []string) error { + doc, err := parseReadme() + if err != nil { + return fmt.Errorf("parse: %w", err) + } + + var urls []string + collectURLs(doc.Sections, &urls) + + exclude, _ := cache.LoadExcludeList(excludePath) + + ghURLs, extURLs := checker.PartitionLinks(urls) + + fmt.Printf("Checking %d external links...\n", len(extURLs)) + results := checker.CheckLinks(extURLs, 10, exclude) + var broken []checker.LinkResult + var redirected []checker.LinkResult + for _, r := range results { + if !r.OK { + broken = append(broken, r) + } + if r.Redirected { + redirected = append(redirected, r) + } + } + + if !prMode { + token := os.Getenv("GITHUB_TOKEN") + if token != "" { + fmt.Printf("Checking %d GitHub repositories...\n", len(ghURLs)) + gc := checker.NewGitHubChecker(token) + _, errs := gc.CheckRepos(context.Background(), ghURLs, 50) + for _, e := range errs { + fmt.Printf(" GitHub error: %v\n", e) + } + } else { + fmt.Println("GITHUB_TOKEN not set, skipping GitHub repo checks") + } + } + + if len(redirected) > 0 { + fmt.Printf("\n%d redirected links (consider updating):\n", len(redirected)) + for _, r := range redirected { + fmt.Printf(" %s -> %s\n", r.URL, r.RedirectURL) + } + } + + if len(broken) > 0 { + fmt.Printf("\n%d broken links:\n", len(broken)) + for _, r := range broken { + fmt.Printf(" %s -> %d %s\n", r.URL, r.StatusCode, r.Error) + } + return fmt.Errorf("found %d broken links", len(broken)) + } + + fmt.Println("All links OK") + return nil + }, + } + cmd.Flags().BoolVar(&prMode, "pr", false, "PR mode: skip GitHub API checks") + return cmd +} + +func healthCmd() *cobra.Command { + return &cobra.Command{ + Use: "health", + Short: "Score repository health and update cache", + RunE: func(cmd *cobra.Command, args []string) error { + token := os.Getenv("GITHUB_TOKEN") + if token == "" { + return fmt.Errorf("GITHUB_TOKEN environment variable is required") + } + + doc, err := parseReadme() + if err != nil { + return fmt.Errorf("parse: %w", err) + } + + var urls []string + collectURLs(doc.Sections, &urls) + ghURLs, _ := checker.PartitionLinks(urls) + + fmt.Printf("Scoring %d GitHub repositories...\n", len(ghURLs)) + gc := checker.NewGitHubChecker(token) + infos, errs := gc.CheckRepos(context.Background(), ghURLs, 50) + for _, e := range errs { + fmt.Printf(" error: %v\n", e) + } + + scored := scorer.ScoreAll(infos) + cacheEntries := scorer.ToCacheEntries(scored) + + hc, _ := cache.LoadHealthCache(healthCachePath) + hc.Merge(cacheEntries) + if err := cache.SaveHealthCache(healthCachePath, hc); err != nil { + return fmt.Errorf("save cache: %w", err) + } + + fmt.Printf("Cache updated: %d entries in %s\n", len(hc.Entries), healthCachePath) + return nil + }, + } +} + +func buildCmd() *cobra.Command { + return &cobra.Command{ + Use: "build", + Short: "Generate website from README", + RunE: func(cmd *cobra.Command, args []string) error { + if err := builder.Build(readmePath, templatePath, websiteOutput); err != nil { + return err + } + fmt.Printf("Website built: %s\n", websiteOutput) + return nil + }, + } +} + +func reportCmd() *cobra.Command { + return &cobra.Command{ + Use: "report", + Short: "Generate health report from cache", + RunE: func(cmd *cobra.Command, args []string) error { + hc, err := cache.LoadHealthCache(healthCachePath) + if err != nil { + return fmt.Errorf("load cache: %w", err) + } + if len(hc.Entries) == 0 { + return fmt.Errorf("no cache data, run 'health' first") + } + + var scored []scorer.ScoredEntry + for _, e := range hc.Entries { + scored = append(scored, scorer.ScoredEntry{ + URL: e.URL, + Name: e.Name, + Status: scorer.Status(e.Status), + Stars: e.Stars, + LastPush: e.LastPush, + }) + } + + report := scorer.GenerateReport(scored) + fmt.Print(report) + return nil + }, + } +} + +func validateCmd() *cobra.Command { + return &cobra.Command{ + Use: "validate", + Short: "PR validation: lint + check --pr", + RunE: func(cmd *cobra.Command, args []string) error { + fmt.Println("=== Linting ===") + doc, err := parseReadme() + if err != nil { + return fmt.Errorf("parse: %w", err) + } + + result := linter.Lint(doc) + for _, issue := range result.Issues { + fmt.Println(issue) + } + if result.Errors > 0 { + fmt.Printf("\n%d errors, %d warnings\n", result.Errors, result.Warnings) + return fmt.Errorf("lint failed with %d errors", result.Errors) + } + fmt.Printf("Lint OK: %d warnings\n", result.Warnings) + + fmt.Println("\n=== Checking links (PR mode) ===") + var urls []string + collectURLs(doc.Sections, &urls) + exclude, _ := cache.LoadExcludeList(excludePath) + _, extURLs := checker.PartitionLinks(urls) + + fmt.Printf("Checking %d external links...\n", len(extURLs)) + results := checker.CheckLinks(extURLs, 10, exclude) + var broken []checker.LinkResult + for _, r := range results { + if !r.OK { + broken = append(broken, r) + } + } + if len(broken) > 0 { + fmt.Printf("\n%d broken links:\n", len(broken)) + for _, r := range broken { + fmt.Printf(" %s -> %d %s\n", r.URL, r.StatusCode, r.Error) + } + return fmt.Errorf("found %d broken links", len(broken)) + } + + fmt.Println("\nValidation passed") + return nil + }, + } +} From e5d55947754d136901d1392b7f5a73d7e12bf9b2 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:26:48 +0100 Subject: [PATCH 240/327] feat: update all GitHub Actions workflows from Node.js to Go Replace Node.js setup, npm install, and node/npm commands with Go setup, go build, and the new awesome-docker CLI binary in all four workflow files: pull_request, broken_links, health_report, and deploy-pages. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/broken_links.yml | 70 ++++++----------------------- .github/workflows/deploy-pages.yml | 18 ++++---- .github/workflows/health_report.yml | 60 +++++++++++-------------- .github/workflows/pull_request.yml | 22 ++++----- 4 files changed, 55 insertions(+), 115 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index f320d6209..678b89e02 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -2,7 +2,6 @@ name: Broken Links Report on: schedule: - # Run every Saturday at 2 AM UTC - cron: "0 2 * * 6" workflow_dispatch: @@ -14,68 +13,37 @@ jobs: issues: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6.0.2 + - uses: actions/checkout@v4 - - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 + - uses: actions/setup-go@v5 with: - node-version: lts/* + go-version: "1.22" - - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # ratchet:actions/cache@v5.0.3 - with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - - name: Install Dependencies - run: npm ci --ignore-scripts --no-audit --no-progress --prefer-offline + - name: Build + run: go build -o awesome-docker ./cmd/awesome-docker - name: Run Link Check id: link_check run: | - npm test > link_check_output.txt 2>&1 || true - if grep -q "❌ ERROR" link_check_output.txt; then - echo "has_errors=true" >> $GITHUB_OUTPUT + ./awesome-docker check > link_check_output.txt 2>&1 || true + if grep -q "broken links" link_check_output.txt; then + echo "has_errors=true" >> "$GITHUB_OUTPUT" else - echo "has_errors=false" >> $GITHUB_OUTPUT + echo "has_errors=false" >> "$GITHUB_OUTPUT" fi env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create/Update Issue for Broken Links if: steps.link_check.outputs.has_errors == 'true' - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 + uses: actions/github-script@v7 with: script: | const fs = require('fs'); const output = fs.readFileSync('link_check_output.txt', 'utf8'); - // Extract error information - const errorMatch = output.match(/❌ ERROR[\s\S]*$/); - const errorInfo = errorMatch ? errorMatch[0] : 'Link check failed - see workflow logs'; - - const issueBody = `# 🔗 Broken Links Detected - - The weekly link check has found broken or inaccessible links in the repository. - - ## Error Details - - \`\`\` - ${errorInfo} - \`\`\` - - ## Action Required + const issueBody = `# Broken Links Detected\n\nThe weekly link check found broken or inaccessible links.\n\n\`\`\`\n${output}\n\`\`\`\n\n## Action Required\n\n- Update the URL if the resource moved\n- Remove the entry if permanently unavailable\n- Add to \`config/exclude.yaml\` if a known false positive\n\n---\n*Auto-generated by broken_links.yml*`; - Please review and fix the broken links above. Options: - - Update the URL if the resource moved - - Remove the entry if it's permanently unavailable - - Add to \`tests/exclude_in_test.json\` if it's a known false positive - - --- - *Auto-generated by [broken_links.yml](https://github.com/veggiemonk/awesome-docker/blob/master/.github/workflows/broken_links.yml)* - `; - - // Check for existing issue const issues = await github.rest.issues.listForRepo({ owner: context.repo.owner, repo: context.repo.repo, @@ -91,21 +59,19 @@ jobs: issue_number: issues.data[0].number, body: issueBody }); - console.log(`Updated issue #${issues.data[0].number}`); } else { - const issue = await github.rest.issues.create({ + await github.rest.issues.create({ owner: context.repo.owner, repo: context.repo.repo, - title: '🔗 Broken Links Detected - Action Required', + title: 'Broken Links Detected', body: issueBody, labels: ['broken-links', 'bug'] }); - console.log(`Created issue #${issue.data.number}`); } - name: Close Issue if No Errors if: steps.link_check.outputs.has_errors == 'false' - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 + uses: actions/github-script@v7 with: script: | const issues = await github.rest.issues.listForRepo({ @@ -115,7 +81,6 @@ jobs: labels: 'broken-links', per_page: 1 }); - if (issues.data.length > 0) { await github.rest.issues.update({ owner: context.repo.owner, @@ -124,11 +89,4 @@ jobs: state: 'closed', state_reason: 'completed' }); - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: issues.data[0].number, - body: '✅ All links are now working! Closing this issue.' - }); - console.log(`Closed issue #${issues.data[0].number}`); } diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 5ec560af5..9d90e2583 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -20,22 +20,20 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6.0.2 + uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 + - uses: actions/setup-go@v5 with: - node-version-file: '.nvmrc' - cache: 'npm' + go-version: "1.22" - - name: Install dependencies - run: npm ci + - name: Build CLI + run: go build -o awesome-docker ./cmd/awesome-docker - name: Build website - run: npm run build + run: ./awesome-docker build - name: Upload artifact - uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # ratchet:actions/upload-pages-artifact@v4 + uses: actions/upload-pages-artifact@v4 with: path: ./website @@ -48,4 +46,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # ratchet:actions/deploy-pages@v4 + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 5eac6118c..3a95606f1 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -2,56 +2,52 @@ name: Weekly Health Report on: schedule: - # Run every Monday at 9 AM UTC - cron: "0 9 * * 1" - workflow_dispatch: # Allow manual trigger + workflow_dispatch: jobs: health-check: runs-on: ubuntu-latest permissions: - contents: write + contents: read issues: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6.0.2 + - uses: actions/checkout@v4 - - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 + - uses: actions/setup-go@v5 with: - node-version: lts/* + go-version: "1.22" - - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # ratchet:actions/cache@v5.0.3 - with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - - name: Install Dependencies - run: npm ci --ignore-scripts --no-audit --no-progress --prefer-offline + - name: Build + run: go build -o awesome-docker ./cmd/awesome-docker - - name: Run Health Check - run: node tests/health_check.mjs + - name: Run Health Scoring + run: ./awesome-docker health continue-on-error: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Upload Health Report - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # ratchet:actions/upload-artifact@v5 - with: - name: health-report - path: HEALTH_REPORT.md + - name: Generate Report + id: report + run: | + ./awesome-docker report > health_report.txt 2>&1 || true + if [ -s health_report.txt ]; then + echo "has_report=true" >> "$GITHUB_OUTPUT" + else + echo "has_report=false" >> "$GITHUB_OUTPUT" + fi - - name: Create Issue with Health Report - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 + - name: Create/Update Issue with Health Report + if: steps.report.outputs.has_report == 'true' + uses: actions/github-script@v7 with: script: | const fs = require('fs'); + const report = fs.readFileSync('health_report.txt', 'utf8'); - // Read the health report - const report = fs.readFileSync('HEALTH_REPORT.md', 'utf8'); + const issueBody = report + '\n\n---\n*Auto-generated weekly by health_report.yml*'; - // Check if there's already an open issue const issues = await github.rest.issues.listForRepo({ owner: context.repo.owner, repo: context.repo.repo, @@ -60,25 +56,19 @@ jobs: per_page: 1 }); - const issueBody = report + '\n\n---\n*This report is auto-generated weekly. See [health_check.mjs](https://github.com/veggiemonk/awesome-docker/blob/master/tests/health_check.mjs) for details.*'; - if (issues.data.length > 0) { - // Update existing issue await github.rest.issues.update({ owner: context.repo.owner, repo: context.repo.repo, issue_number: issues.data[0].number, body: issueBody }); - console.log(`Updated issue #${issues.data[0].number}`); } else { - // Create new issue - const issue = await github.rest.issues.create({ + await github.rest.issues.create({ owner: context.repo.owner, repo: context.repo.repo, - title: '🏥 Weekly Health Report - Repository Maintenance Needed', + title: 'Weekly Health Report - Repository Maintenance Needed', body: issueBody, labels: ['health-report', 'maintenance'] }); - console.log(`Created issue #${issue.data.number}`); } diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 041e5b1bc..bc613fc9f 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,22 +11,16 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6.0.2 - - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # ratchet:actions/setup-node@v6.2.0 - with: - node-version: lts/* + - uses: actions/checkout@v4 - - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # ratchet:actions/cache@v5.0.3 - id: cache + - uses: actions/setup-go@v5 with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- + go-version: "1.22" + + - name: Build + run: go build -o awesome-docker ./cmd/awesome-docker - - name: Install Dependencies - # if: steps.cache.outputs.cache-hit != 'true' - run: npm ci --ignore-scripts --no-audit --no-progress --prefer-offline - - run: npm run test-pr + - name: Validate + run: ./awesome-docker validate env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 0816049273a33da46d1e8a8ee927c38a50e0f909 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:31:57 +0100 Subject: [PATCH 241/327] feat: implement lint --fix and standardize README Add FixFile() to rewrite README entries: capitalize descriptions, add trailing periods, remove author attributions, and sort entries alphabetically within each section. Update parser regex to handle entries with markers between URL and description separator. Fix linter to check first letter (not first character) for capitalization. ~480 entries standardized across the README. Co-Authored-By: Claude Opus 4.6 --- README.md | 950 +++++++++++++++++----------------- cmd/awesome-docker/main.go | 6 +- internal/linter/fixer.go | 144 ++++++ internal/linter/fixer_test.go | 140 +++++ internal/linter/rules.go | 21 +- internal/parser/parser.go | 13 +- 6 files changed, 792 insertions(+), 482 deletions(-) create mode 100644 internal/linter/fixer.go create mode 100644 internal/linter/fixer_test.go diff --git a/README.md b/README.md index e65cb9689..acae942ff 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) # Where to start - [Benefits of using Docker](https://semaphore.io/blog/docker-benefits) for development and delivery, with a practical roadmap for adoption. -- [Bootstrapping Microservices](https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform) by [Ashley Davis](https://twitter.com/ashleydavis75) - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster. +- [Bootstrapping Microservices](https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform) - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster. - [Docker Curriculum](https://github.com/prakhar1989/docker-curriculum): A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service. - [Docker Documentation](https://docs.docker.com/): the official documentation. - [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. @@ -108,7 +108,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... - [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) -- [Learn Docker (Visually)](https://pagertree.com/learn/docker/overview) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. +- [Learn Docker (Visually)](https://pagertree.com/learn/docker/overview) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. - [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. - [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This Spanish guide contains the use of basic docker commands with real life examples. - [Setting Python Development Environment with VScode and Docker](https://github.com/RamiKrispin/vscode-python): A step-by-step tutorial for setting up a dockerized Python development environment with VScode, Docker, and the Dev Container extension. @@ -125,11 +125,11 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) # Where to start (Windows) - [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [@kaitoedter](https://twitter.com/kaitoedter) -- [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. +- [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. - [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker - [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] - [Running a Legacy ASP.NET App in a Windows Container](https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container/) Steps for Dockerizing a legacy ASP.NET app and running as a Windows container -- [Windows Containers and Docker: The 101](https://www.youtube.com/watch?v=N7SG2wEyQtM) :movie_camera: - A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps +- [Windows Containers and Docker: The 101](https://www.youtube.com/watch?v=N7SG2wEyQtM) - A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps. - [Windows Containers Quick Start](https://learn.microsoft.com/en-us/virtualization/windowscontainers/about/) Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016 --- @@ -153,216 +153,216 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Container Composition -- [bocker](https://github.com/icy/bocker) (2) :skull: - Write Dockerfile completely in Bash. Extensible and simple. --> Reusable by [@icy](https://github.com/icy) -- [bocker](https://github.com/p8952/bocker) (1) :skull: - Docker implemented in 100 lines of bash by [p8952](https://github.com/p8952) -- [box](https://github.com/box-builder/box) :skull: - Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation -- [Capitan](https://github.com/byrnedo/capitan) - Composable docker orchestration with added scripting support by [@byrnedo]. -- [compose_plantuml](https://github.com/funkwerk/compose_plantuml) :skull: - Generate Plantuml graphs from docker-compose files by [@funkwerk](https://github.com/funkwerk) -- [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files -- [crowdr](https://github.com/polonskiy/crowdr) - Tool for managing multiple Docker containers (`docker-compose` alternative) by [@polonskiy](https://github.com/polonskiy/) -- [ctk](https://github.com/ctk-hq/ctk) :construction: - Visual composer for container based workloads. By [@corpulent](https://github.com/corpulent) -- [docker-compose-graphviz](https://github.com/abesto/docker-compose-graphviz) :skull: - Turn a docker-compose.yml files into Graphviz .dot files by [@abesto](https://github.com/abesto) -- [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) - Utility to update docker configs and secrets for deploying in a compose file by [@sudo-bmitch](https://github.com/sudo-bmitch) -- [draw-compose](https://github.com/Alexis-benoist/draw-compose) :skull: - Utility to draw a schema of a docker compose by [@Alexis-benoist](https://github.com/Alexis-benoist) -- [elsy](https://github.com/cisco/elsy) - An opinionated, multi-language, build tool based on Docker and Docker Compose -- [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker by [@cloud66](https://github.com/cloud66) -- [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes -- [LLM Harbor](https://github.com/av/harbor) - A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [@av](https://github.com/av) -- [Maestro](https://github.com/toscanini/maestro) :skull: - Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit by [@tascanini](https://github.com/toscanini) -- [percheron](https://github.com/ashmckenzie/percheron) :skull: - Organise your Docker containers with muscle and intelligence by [@ashmckenzie](https://github.com/ashmckenzie) -- [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. -- [podman-compose](https://github.com/containers/podman-compose) - a script to run docker-compose.yml using podman by [@containers][containers] -- [rocker-compose](https://github.com/grammarly/rocker-compose) :skull: - Docker composition tool with idempotency features for deploying apps composed of multiple containers. By[@grammarly]. -- [rocker](https://github.com/grammarly/rocker) :skull: - Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by [@grammarly]. +- [bocker](https://github.com/icy/bocker) - :skull: Write Dockerfile completely in Bash. Extensible and simple. --> Reusable. +- [bocker](https://github.com/p8952/bocker) - :skull: Docker implemented in 100 lines of bash by [p8952](https://github.com/p8952). +- [box](https://github.com/box-builder/box) - :skull: Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation. +- [Capitan](https://github.com/byrnedo/capitan) - Composable docker orchestration with added scripting support by [@byrnedo]. +- [compose_plantuml](https://github.com/funkwerk/compose_plantuml) - :skull: Generate Plantuml graphs from docker-compose files. +- [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files. +- [crowdr](https://github.com/polonskiy/crowdr) - Tool for managing multiple Docker containers (`docker-compose` alternative). +- [ctk](https://github.com/ctk-hq/ctk) - :construction: Visual composer for container based workloads. By [@corpulent](https://github.com/corpulent). +- [docker-compose-graphviz](https://github.com/abesto/docker-compose-graphviz) - :skull: Turn a docker-compose.yml files into Graphviz .dot files. +- [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) - Utility to update docker configs and secrets for deploying in a compose file. +- [draw-compose](https://github.com/Alexis-benoist/draw-compose) - :skull: Utility to draw a schema of a docker compose. +- [elsy](https://github.com/cisco/elsy) - An opinionated, multi-language, build tool based on Docker and Docker Compose. +- [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker. +- [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes. +- [LLM Harbor](https://github.com/av/harbor) - A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [@av](https://github.com/av). +- [Maestro](https://github.com/toscanini/maestro) - :skull: Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit. +- [percheron](https://github.com/ashmckenzie/percheron) - :skull: Organise your Docker containers with muscle and intelligence. +- [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. +- [podman-compose](https://github.com/containers/podman-compose) - A script to run docker-compose.yml using podman. +- [rocker](https://github.com/grammarly/rocker) - :skull: Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by [@grammarly]. +- [rocker-compose](https://github.com/grammarly/rocker-compose) - :skull: Docker composition tool with idempotency features for deploying apps composed of multiple containers. By[@grammarly]. - [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [@roquie](https://github.com/roquie) -- [Stacker](https://github.com/stacker/stacker-cli) :skull: - Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience). -- [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [@alexaandrov](https://github.com/alexaandrov) -- [Zodiac](https://github.com/CenturyLinkLabs/zodiac) :skull: - A lightweight tool for easy deployment and rollback of dockerized applications. By [@CenturyLinkLabs][centurylinklabs] +- [Stacker](https://github.com/stacker/stacker-cli) - :skull: Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience). +- [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [@alexaandrov](https://github.com/alexaandrov). +- [Zodiac](https://github.com/CenturyLinkLabs/zodiac) - :skull: A lightweight tool for easy deployment and rollback of dockerized applications. By [@CenturyLinkLabs][centurylinklabs]. ### Deployment and Infrastructure -- [awesome-stacks](https://github.com/ethibox/awesome-stacks) - Deploy 150+ open-source web apps with one Docker command -- [blackfish](https://gitlab.com/blackfish/blackfish) - a CoreOS VM to build swarm clusters for Dev & Production by [@blackfish](https://gitlab.com/blackfish/) -- [BosnD](https://gitlab.com/n0r1sk/bosnd) - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments. -- [Centurion](https://github.com/newrelic/centurion) - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [@newrelic](https://github.com/newrelic) -- [Clocker](https://github.com/brooklyncentral/clocker) - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [@brooklyncentral](https://github.com/brooklyncentral) -- [Conduit](https://github.com/ehazlett/conduit) - Experimental deployment system for Docker by [@ehazlett](https://github.com/ehazlett) -- [depcon](https://github.com/ContainX/depcon) - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [@ContainX][containx] -- [deploy](https://github.com/ttiny/deploy) :skull: - Git and Docker deployment tool. A middle ground between simple Docker composition tools and full blown cluster orchestration by [@ttiny](https://github.com/ttiny) -- [docker-to-iac](https://github.com/deploystackio/docker-to-iac) - Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean by [@DeployStack](https://github.com/deploystackio) -- [dockit](https://github.com/humblec/dockit) :skull: - Do docker actions and Deploy gluster containers! By [@humblec](https://github.com/humblec) -- [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [@Hasura](https://github.com/hasura/). -- [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas) -- [Longshoreman](https://github.com/longshoreman/longshoreman) :skull: - Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By [longshoreman](https://github.com/longshoreman) -- [swarm-ansible](https://github.com/LombardiDaniel/swarm-ansible?tab=readme-ov-file) - Swarm-Ansible bootstraps a production-ready swarm cluster using ansible. Comes with tools to automate CI, help monitoring and traefik pre-configured for SSL certificates and simple-auth. Comes with a private registry and more! -- [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. -- [werf](https://github.com/werf/werf) - werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps by [@flant](https://github.com/flant) +- [awesome-stacks](https://github.com/ethibox/awesome-stacks) - Deploy 150+ open-source web apps with one Docker command. +- [blackfish](https://gitlab.com/blackfish/blackfish) - A CoreOS VM to build swarm clusters for Dev & Production. +- [BosnD](https://gitlab.com/n0r1sk/bosnd) - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments. +- [Centurion](https://github.com/newrelic/centurion) - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [@newrelic](https://github.com/newrelic). +- [Clocker](https://github.com/brooklyncentral/clocker) - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [@brooklyncentral](https://github.com/brooklyncentral). +- [Conduit](https://github.com/ehazlett/conduit) - Experimental deployment system for Docker. +- [depcon](https://github.com/ContainX/depcon) - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [@ContainX][containx]. +- [deploy](https://github.com/ttiny/deploy) - :skull: Git and Docker deployment tool. A middle ground between simple Docker composition tools and full blown cluster orchestration. +- [docker-to-iac](https://github.com/deploystackio/docker-to-iac) - Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean. +- [dockit](https://github.com/humblec/dockit) - :skull: Do docker actions and Deploy gluster containers! By [@humblec](https://github.com/humblec). +- [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [@Hasura](https://github.com/hasura/). +- [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas). +- [Longshoreman](https://github.com/longshoreman/longshoreman) - :skull: Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By [longshoreman](https://github.com/longshoreman). +- [swarm-ansible](https://github.com/LombardiDaniel/swarm-ansible?tab=readme-ov-file) - Swarm-Ansible bootstraps a production-ready swarm cluster using ansible. Comes with tools to automate CI, help monitoring and traefik pre-configured for SSL certificates and simple-auth. Comes with a private registry and more!. +- [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. +- [werf](https://github.com/werf/werf) - Werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps. ### Monitoring - [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. - [Axibase Collector](https://axibase.com/docs/axibase-collector/) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. -- [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. Created by [@Google][google] +- [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. - [Checkmate](https://github.com/bluewave-labs/checkmate) - Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. -- [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [@zorak1103](https://github.com/zorak1103) -- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics -- [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically by [@docker-flow][docker-flow] -- [Dockerana](https://github.com/dockerana/dockerana) :skull: - packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. +- [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [@zorak1103](https://github.com/zorak1103). +- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics. +- [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically. +- [Dockerana](https://github.com/dockerana/dockerana) - :skull: Packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. - [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. -- [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager by [@stefanprodan](https://github.com/stefanprodan) -- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [@amerkurev](https://github.com/amerkurev) -- [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20) -- [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) :heavy_dollar_sign: - Monitor containerized applications without installing agents or modifying your Run commands -- [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python by [@nicolargo](https://github.com/nicolargo) -- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc] +- [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. +- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [@amerkurev](https://github.com/amerkurev). +- [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20). +- [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) - :heavy_dollar_sign: Monitor containerized applications without installing agents or modifying your Run commands. +- [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python. +- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc]. - [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. -- [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor by [@vegasbrianc][vegasbrianc] -- [LogJam](https://github.com/gocardless/logjam) - :skull: Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash) by [@gocardless](https://github.com/gocardless) -- [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs by [@gliderlabs][gliderlabs] -- [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus] -- [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes by [@Nexclipper](https://github.com/NexClipper) +- [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor. +- [LogJam](https://github.com/gocardless/logjam) - :skull: Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash). +- [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs. +- [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus]. +- [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. - [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. -- [Sidekick](https://github.com/runsidekick/sidekick) 💲 - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. -- [SuperVisor CPM](https://t0xic0der.medium.com/simply-accessible-container-performance-monitoring-with-supervisor-7fb47f925f3b) [Frontend Service](https://github.com/t0xic0der/supervisor-frontend-service/) and [Driver Service](https://github.com/t0xic0der/supervisor-driver-service/) :construction: - A simple and accessible FOSS container performance monitoring service written in Python by [@t0xic0der](https://github.com/t0xic0der/) +- [Sidekick](https://github.com/runsidekick/sidekick) - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. +- [SuperVisor CPM](https://t0xic0der.medium.com/simply-accessible-container-performance-monitoring-with-supervisor-7fb47f925f3b) - :construction: A simple and accessible FOSS container performance monitoring service written in Python. - [SwarmAlert](https://github.com/gpulido/SwarmAlert) - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. -- [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. - [Zabbix Docker](https://github.com/gomex/docker-zabbix) - Monitor containers automatically using zabbix LLD feature. +- [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. ### Networking - [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. -- [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [@coreos][coreos] -- [Freeflow](https://github.com/Microsoft/Freeflow) - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [@Microsoft](https://github.com/Microsoft) -- [MyIP](https://github.com/jason5ng32/MyIP) - All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [@jason5ng32](https://github.com/jason5ng32) -- [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues by [@nicolaka](https://github.com/nicolaka) -- [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [@jpetazzo][jpetazzo] +- [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [@coreos][coreos]. +- [Freeflow](https://github.com/Microsoft/Freeflow) - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [@Microsoft](https://github.com/Microsoft). +- [MyIP](https://github.com/jason5ng32/MyIP) - All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [@jason5ng32](https://github.com/jason5ng32). +- [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. +- [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [@jpetazzo][jpetazzo]. - [Weave][weave] (The Docker network) :skull: - Weave creates a virtual network that connects Docker containers deployed across multiple hosts. ### Orchestration -- [Ansible Linux Docker](https://github.com/Peco602/ansible-linux-docker) - Run Ansible from a Linux container. By [@Peco602][peco602] -- [athena](https://github.com/athena-oss/athena) - An automation platform with a plugin architecture that allows you to easily create and share services. -- [blimp](https://github.com/tubesandlube/blimp) :skull: - Uses Docker Machine to easily move a container from one Docker host to another, show containers running against all of your hosts, replicate a container across multiple hosts and more by [@defermat](https://github.com/defermat) and [@schvin](https://github.com/schvin) -- [CloudSlang](https://github.com/CloudSlang/cloud-slang) - CloudSlang is a workflow engine to create Docker process automation -- [clusterdock](https://github.com/clusterdock/clusterdock) - Docker container orchestration to enable the testing of long-running cluster deployments -- [Crane](https://github.com/Dataman-Cloud/crane) - Control plane based on docker built-in swarm [@Dataman-Cloud](https://github.com/Dataman-Cloud) -- [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [@docker-flow][docker-flow] -- [docker rollout](https://github.com/Wowu/docker-rollout) - Zero downtime deployment for Docker Compose services by [@Wowu](https://github.com/Wowu) -- [gantryd](https://github.com/DevTable/gantryd) :skull: - A framework for easy management of docker-based components across machines by [@DevTable](https://github.com/DevTable) -- [Haven](https://github.com/codeabovelab/haven-platform) - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [@codeabovelab](https://github.com/codeabovelab) -- [Helios](https://github.com/spotify/helios) :skull: - A simple platform for deploying and managing containers across an entire fleet of servers by [@spotify][spotify] -- [Kontena](https://github.com/kontena/kontena) :skull: - The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use. -- [Kubernetes](https://github.com/kubernetes/kubernetes) - Open source orchestration system for Docker containers by Google -- [ManageIQ](https://github.com/ManageIQ/manageiq) - Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ) -- [Mantl](https://github.com/mantl/mantl) - :skull: Mantl is a modern platform for rapidly deploying globally distributed services -- [Marathon](https://github.com/mesosphere/marathon) - :skull: Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on" -- [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [@apache](https://mesos.apache.org/) -- [Nebula](https://github.com/nebula-orchestrator) - A Docker orchestration tool designed to manage massive scale distributed clusters. -- [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler by [@hashicorp](https://github.com/hashicorp) -- [Panamax](https://github.com/CenturyLinkLabs/panamax-ui) :skull: - An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop by [@CenturyLinkLabs][centurylinklabs]. -- [Rancher](https://github.com/rancher/rancher) - An open source project that provides a complete platform for operating Docker in production by [@rancher][rancher]. -- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [@RedHerdProject](https://github.com/redherd-project). -- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [@crazy-max] +- [Ansible Linux Docker](https://github.com/Peco602/ansible-linux-docker) - Run Ansible from a Linux container. By [@Peco602][peco602]. +- [athena](https://github.com/athena-oss/athena) - An automation platform with a plugin architecture that allows you to easily create and share services. +- [blimp](https://github.com/tubesandlube/blimp) - :skull: Uses Docker Machine to easily move a container from one Docker host to another, show containers running against all of your hosts, replicate a container across multiple hosts and more by [@defermat](https://github.com/defermat) and [@schvin](https://github.com/schvin). +- [CloudSlang](https://github.com/CloudSlang/cloud-slang) - CloudSlang is a workflow engine to create Docker process automation. +- [clusterdock](https://github.com/clusterdock/clusterdock) - Docker container orchestration to enable the testing of long-running cluster deployments. +- [Crane](https://github.com/Dataman-Cloud/crane) - Control plane based on docker built-in swarm [@Dataman-Cloud](https://github.com/Dataman-Cloud). +- [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [@docker-flow][docker-flow]. +- [docker rollout](https://github.com/Wowu/docker-rollout) - Zero downtime deployment for Docker Compose services. +- [gantryd](https://github.com/DevTable/gantryd) - :skull: A framework for easy management of docker-based components across machines. +- [Haven](https://github.com/codeabovelab/haven-platform) - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [@codeabovelab](https://github.com/codeabovelab). +- [Helios](https://github.com/spotify/helios) - :skull: A simple platform for deploying and managing containers across an entire fleet of servers. +- [Kontena](https://github.com/kontena/kontena) - :skull: The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use. +- [Kubernetes](https://github.com/kubernetes/kubernetes) - Open source orchestration system for Docker containers by Google. +- [ManageIQ](https://github.com/ManageIQ/manageiq) - Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ). +- [Mantl](https://github.com/mantl/mantl) - :skull: Mantl is a modern platform for rapidly deploying globally distributed services. +- [Marathon](https://github.com/mesosphere/marathon) - :skull: Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on". +- [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [@apache](https://mesos.apache.org/). +- [Nebula](https://github.com/nebula-orchestrator) - A Docker orchestration tool designed to manage massive scale distributed clusters. +- [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler. +- [Panamax](https://github.com/CenturyLinkLabs/panamax-ui) - :skull: An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop. +- [Rancher](https://github.com/rancher/rancher) - An open source project that provides a complete platform for operating Docker in production. +- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [@RedHerdProject](https://github.com/redherd-project). +- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [@crazy-max]. ### PaaS -- [Atlantis](https://github.com/ooyala/atlantis) :skull: - Atlantis is an Open Source PaaS for HTTP applications built on Docker and written in Go -- [caprover](https://github.com/caprover/caprover) - [previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids -- [Convox Rack](https://github.com/convox/rack) - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. -- [Dcw](https://github.com/pbertera/dcw) - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels. -- [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [@progrium][progrium]) -- [Empire](https://github.com/remind101/empire) - A PaaS built on top of Amazon EC2 Container Service (ECS) -- [Exoframe](https://github.com/exoframejs/exoframe) - A self-hosted tool that allows simple one-command deployments using Docker -- [Flynn](https://github.com/flynn/flynn) :skull: - A next generation open source platform as a service -- [Hephy Workflow](https://github.com/teamhephy/workflow) - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow) -- [Krane](https://github.com/krane/krane) - Toolset for managing container workloads on remote servers -- [Nanobox](https://github.com/nanobox-io/nanobox) :heavy_dollar_sign: - An application development platform that creates local environments that can then be deployed and scaled in the cloud. +- [Atlantis](https://github.com/ooyala/atlantis) - :skull: Atlantis is an Open Source PaaS for HTTP applications built on Docker and written in Go. +- [caprover](https://github.com/caprover/caprover) - [Previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids. +- [Convox Rack](https://github.com/convox/rack) - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. +- [Dcw](https://github.com/pbertera/dcw) - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels. +- [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [@progrium][progrium]). +- [Empire](https://github.com/remind101/empire) - A PaaS built on top of Amazon EC2 Container Service (ECS). +- [Exoframe](https://github.com/exoframejs/exoframe) - A self-hosted tool that allows simple one-command deployments using Docker. +- [Flynn](https://github.com/flynn/flynn) - :skull: A next generation open source platform as a service. +- [Hephy Workflow](https://github.com/teamhephy/workflow) - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow). +- [Krane](https://github.com/krane/krane) - Toolset for managing container workloads on remote servers. +- [Nanobox](https://github.com/nanobox-io/nanobox) - :heavy_dollar_sign: An application development platform that creates local environments that can then be deployed and scaled in the cloud. - [OpenShift][openshift] - An open source PaaS built on [Kubernetes][kubernetes] and optimized for Dockerized app development and deployment by [Red Hat](https://www.redhat.com/en) -- [Tsuru](https://github.com/tsuru/tsuru) - Tsuru is an extensible and open source Platform as a Service software +- [Tsuru](https://github.com/tsuru/tsuru) - Tsuru is an extensible and open source Platform as a Service software. ### Reverse Proxy -- [BunkerWeb](https://github.com/bunkerity/bunkerweb) - Open-source and next-gen Web Application Firewall (WAF). By [Bunkerity](https://www.bunkerity.com) -- [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. By [@lucaslorentz](https://github.com/lucaslorentz) -- [caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams) - Docker upstreams module for Caddy, configured with container labels. By [@invzhi](https://github.com/invzhi) -- [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. -- [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [@docker-flow][docker-flow] -- [docker-proxy](https://github.com/silarsis/docker-proxy) :skull: - Transparent proxy for docker containers, run in a docker container. By [@silarsis](https://github.com/silarsis) -- [fabio](https://github.com/fabiolb/fabio) - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [@magiconair](https://github.com/magiconair) (Frank Schroeder) -- [h2o-proxy](https://github.com/zchee/h2o-proxy) :skull: - Automated H2O reverse proxy for Docker containers. An alternative to [jwilder/nginx-proxy][nginxproxy] by [@zchee](https://github.com/zchee) -- [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [@JrCs](https://github.com/JrCs) -- [mesh-router](https://github.com/Yundera/mesh-router) - Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [@Yundera](https://github.com/Yundera) -- [muguet](https://github.com/mattallty/muguet) :skull: - DNS Server & Reverse proxy for Docker environments. By [@mattallty](https://github.com/mattallty) -- [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [@jc21](https://github.com/jc21) +- [BunkerWeb](https://github.com/bunkerity/bunkerweb) - Open-source and next-gen Web Application Firewall (WAF). By [Bunkerity](https://www.bunkerity.com). +- [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. By [@lucaslorentz](https://github.com/lucaslorentz). +- [caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams) - Docker upstreams module for Caddy, configured with container labels. By [@invzhi](https://github.com/invzhi). +- [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. +- [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [@docker-flow][docker-flow]. +- [docker-proxy](https://github.com/silarsis/docker-proxy) - :skull: Transparent proxy for docker containers, run in a docker container. By [@silarsis](https://github.com/silarsis). +- [fabio](https://github.com/fabiolb/fabio) - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [@magiconair](https://github.com/magiconair) (Frank Schroeder). +- [h2o-proxy](https://github.com/zchee/h2o-proxy) - :skull: Automated H2O reverse proxy for Docker containers. An alternative to [jwilder/nginx-proxy][nginxproxy]. +- [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [@JrCs](https://github.com/JrCs). +- [mesh-router](https://github.com/Yundera/mesh-router) - Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [@Yundera](https://github.com/Yundera). +- [muguet](https://github.com/mattallty/muguet) - :skull: DNS Server & Reverse proxy for Docker environments. By [@mattallty](https://github.com/mattallty). +- [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [@jc21](https://github.com/jc21). - [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [@jwilder][jwilder] -- [OpenResty Manager](https://github.com/Safe3/openresty-manager) - The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. By [@Safe3](https://github.com/Safe3/) -- [Swarm Ingress Router](https://github.com/tpbowden/swarm-ingress-router) :skull: - Route DNS names to Swarm services based on labels. By [@tpbowden](https://github.com/tpbowden/) -- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [@flavioaiello](https://github.com/flavioaiello) -- [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [@EmileVauge](https://github.com/emilevauge) +- [OpenResty Manager](https://github.com/Safe3/openresty-manager) - The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. By [@Safe3](https://github.com/Safe3/). +- [Swarm Ingress Router](https://github.com/tpbowden/swarm-ingress-router) - :skull: Route DNS names to Swarm services based on labels. By [@tpbowden](https://github.com/tpbowden/). +- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [@flavioaiello](https://github.com/flavioaiello). +- [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [@EmileVauge](https://github.com/emilevauge). ### Runtime -- [aind](https://github.com/aind-containers/aind) - :skull: AinD launches Android apps in Docker, by nesting Anbox containers inside Docker by [@aind-containers](https://github.com/aind-containers) -- [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o) -- [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers -- [podman](https://github.com/containers/libpod) - libpod is a library used to create container pods. Home of Podman by [@containers][containers] -- [rlxc](https://github.com/brauner/rlxc) - LXC binary written in Rust by [@brauner](https://github.com/brauner) -- [runtime-tools](https://github.com/opencontainers/runtime-tools) - oci-runtime-tool is a collection of tools for working with the OCI runtime specification by [@opencontainers](https://github.com/opencontainers) +- [aind](https://github.com/aind-containers/aind) - :skull: AinD launches Android apps in Docker, by nesting Anbox containers inside Docker. +- [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o). +- [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers. +- [podman](https://github.com/containers/libpod) - Libpod is a library used to create container pods. Home of Podman. +- [rlxc](https://github.com/brauner/rlxc) - LXC binary written in Rust. +- [runtime-tools](https://github.com/opencontainers/runtime-tools) - Oci-runtime-tool is a collection of tools for working with the OCI runtime specification. ### Security -- [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles [@SongStitch](https://github.com/songStitch/) -- [Anchor Enterprise](https://anchore.com/) :heavy_dollar_sign: - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore) -- [Aqua Security](https://www.aquasec.com) :heavy_dollar_sign: - Securing container-based applications from Dev to Production on any platform -- [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers by [@genuinetools][genuinetools] -- [buildcage](https://github.com/dash14/buildcage) - Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions by [@dash14](https://github.com/dash14) -- [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints -- [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [@dev-sec](https://github.com/dev-sec) -- [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [@bridgecrew](https://github.com/bridgecrewio) -- [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [@coreos][coreos] -- [crowdsec-blocklist-import](https://github.com/wolffcatskyy/crowdsec-blocklist-import) - Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [@wolffcatskyy](https://github.com/wolffcatskyy) -- [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [@eliasgranderubio](https://github.com/eliasgranderubio) -- [Deepfence Enterprise](https://deepfence.io) :heavy_dollar_sign: - Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [@deepfence][deepfence] -- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [@deepfence][deepfence] -- [docker-bench-security](https://github.com/docker/docker-bench-security) - script that checks for dozens of common best-practices around deploying Docker containers in production. By [@docker][docker] -- [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions by [@Google][google] -- [docker-lock](https://github.com/safe-waters/docker-lock) - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By [@safe-waters][safe-waters] -- [dvwassl](https://github.com/Peco602/dvwassl) - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [@Peco602][peco602] -- [KICS](https://github.com/checkmarx/kics) - an infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx) -- [notary](https://github.com/theupdateframework/notary) - a server and a client for running and interacting with trusted collections. By [@TUF](https://github.com/theupdateframework) -- [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP) -- [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) :heavy_dollar_sign: - (previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. -- [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. -- [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [@dormstern](https://github.com/dormstern) -- [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. -- [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) :heavy_dollar_sign: - Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. -- [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) :heavy_dollar_sign: - Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. -- [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). +- [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles [@SongStitch](https://github.com/songStitch/). +- [Anchor Enterprise](https://anchore.com/) - :heavy_dollar_sign: Analyze images for CVE vulnerabilities and against custom security policies. +- [Aqua Security](https://www.aquasec.com) - :heavy_dollar_sign: Securing container-based applications from Dev to Production on any platform. +- [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers. +- [buildcage](https://github.com/dash14/buildcage) - Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. +- [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. +- [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [@bridgecrew](https://github.com/bridgecrewio). +- [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [@dev-sec](https://github.com/dev-sec). +- [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [@coreos][coreos]. +- [crowdsec-blocklist-import](https://github.com/wolffcatskyy/crowdsec-blocklist-import) - Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [@wolffcatskyy](https://github.com/wolffcatskyy). +- [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [@eliasgranderubio](https://github.com/eliasgranderubio). +- [Deepfence Enterprise](https://deepfence.io) - :heavy_dollar_sign: Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [@deepfence][deepfence]. +- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [@deepfence][deepfence]. +- [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. By [@docker][docker]. +- [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions. +- [docker-lock](https://github.com/safe-waters/docker-lock) - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By [@safe-waters][safe-waters]. +- [dvwassl](https://github.com/Peco602/dvwassl) - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [@Peco602][peco602]. +- [KICS](https://github.com/checkmarx/kics) - An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx). +- [notary](https://github.com/theupdateframework/notary) - A server and a client for running and interacting with trusted collections. By [@TUF](https://github.com/theupdateframework). +- [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP). +- [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) - :heavy_dollar_sign: (Previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. +- [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [@dormstern](https://github.com/dormstern). +- [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. +- [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. +- [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) - :heavy_dollar_sign: Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. +- [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) - :heavy_dollar_sign: Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. +- [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). ### Service Discovery - [docker-consul](https://github.com/gliderlabs/docker-consul) by [@progrium][progrium] -- [docker-dns](https://github.com/bytesharky/docker-dns) - Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. `.docker`) on the host to simplify service discovery by [@bytesharky](https://github.com/bytesharky) -- [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [@etcd-io](https://github.com/etcd-io) (former part of CoreOS) -- [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices by [@istio](https://github.com/istio) -- [proxy](https://github.com/factorish/proxy) :skull: - lightweight nginx based load balancer self using service discovery provided by registrator. by [@factorish](https://github.com/factorish) -- [registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker by [@gliderlabs][gliderlabs] and [@progrium][progrium] +- [docker-dns](https://github.com/bytesharky/docker-dns) - Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. `.docker`) on the host to simplify service discovery. +- [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [@etcd-io](https://github.com/etcd-io) (former part of CoreOS). +- [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices. +- [proxy](https://github.com/factorish/proxy) - :skull: Lightweight nginx based load balancer self using service discovery provided by registrator. +- [registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker by [@gliderlabs][gliderlabs] and [@progrium][progrium]. ### Volume Management / Data - [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [@blockbridge](https://github.com/blockbridge) -- [Convoy](https://github.com/rancher/convoy) :skull: - an open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher] -- [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) :skull: - Activates NFS for an existing boot2docker box created through Docker Machine on OS X. -- [Docker Unison](https://github.com/leighmcculloch/docker-unison) - :skull: A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch) +- [Convoy](https://github.com/rancher/convoy) - :skull: An open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher]. +- [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) - :skull: Activates NFS for an existing boot2docker box created through Docker Machine on OS X. +- [Docker Unison](https://github.com/leighmcculloch/docker-unison) - :skull: A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch). - - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. - [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [@offen](https://github.com/offen) - [Local Persist](https://github.com/MatchbookLab/local-persist) Specify a mountpoint for your local volumes (created via `docker volume create`) so that files will always persist and so you can mount to different directories in different containers. -- [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers +- [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers. - [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [@ContainX][containx] -- [portworx](https://portworx.com) :heavy_dollar_sign: - Decentralized storage solution for persistent, shared and replicated volumes. -- [quobyte](https://www.quobyte.com/) :heavy_dollar_sign: - fully fault-tolerant distributed file system with a docker volume driver +- [portworx](https://portworx.com) - :heavy_dollar_sign: Decentralized storage solution for persistent, shared and replicated volumes. +- [quobyte](https://www.quobyte.com/) - :heavy_dollar_sign: Fully fault-tolerant distributed file system with a docker volume driver. - [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By[@thecodeteam](https://github.com/thecodeteam) (DELL Technologies) -- [Storidge](https://github.com/Storidge/quick-start) :heavy_dollar_sign: - Software-defined Persistent Storage for Kubernetes and Docker Swarm +- [Storidge](https://github.com/Storidge/quick-start) - :heavy_dollar_sign: Software-defined Persistent Storage for Kubernetes and Docker Swarm. ### User Interface @@ -370,103 +370,103 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) - Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) -- [denops-docker.vim](https://github.com/skanehira/denops-docker.vim) - :skull: Manage docker containers and images in Vim. By [@skanehira] -- [docker.vim](https://github.com/skanehira/docker.vim) :skull: - Manage docker containers and images in Vim. By [@skanehira] +- [denops-docker.vim](https://github.com/skanehira/denops-docker.vim) - :skull: Manage docker containers and images in Vim. By [@skanehira]. +- [docker.vim](https://github.com/skanehira/docker.vim) - :skull: Manage docker containers and images in Vim. By [@skanehira]. - [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [@Silex](https://github.com/Silex) #### Desktop Native desktop applications for managing and monitoring docker hosts and clusters -- [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS -- [Docker DB Manager](https://github.com/AbianS/docker-db-manager) - Desktop app for managing Docker database containers with visual interface and one-click operations. -- [Dockeron](https://github.com/dockeron/dockeron) :skull: - A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03) -- [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station) -- [Lifeboat](https://github.com/jplhomer/lifeboat) - :skull: An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer) -- [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - built on Electron. By [@felixgborrego](https://github.com/felixgborrego/) -- [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [@slonopotamus](https://github.com/slonopotamus) +- [Docker DB Manager](https://github.com/AbianS/docker-db-manager) - Desktop app for managing Docker database containers with visual interface and one-click operations. +- [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS. +- [Dockeron](https://github.com/dockeron/dockeron) - :skull: A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03). +- [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station). +- [Lifeboat](https://github.com/jplhomer/lifeboat) - :skull: An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer). +- [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - Built on Electron. By [@felixgborrego](https://github.com/felixgborrego/). +- [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [@slonopotamus](https://github.com/slonopotamus). #### Terminal ##### Terminal UI -- [ctop (1)](https://github.com/yadutaf/ctop) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python) by [@yadutaf](https://github.com/yadutaf) -- [ctop (2)](https://github.com/bcicen/ctop) - :skull: Top-like interface for container metrics (Golang) by [@bcicen](https://github.com/bcicen/) -- [d4s](https://github.com/jr-k/d4s) - A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s by [@jr-k](https://github.com/jr-k/) -- [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). +- [ctop (1)](https://github.com/yadutaf/ctop) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python). +- [ctop (2)](https://github.com/bcicen/ctop) - :skull: Top-like interface for container metrics (Golang). +- [d4s](https://github.com/jr-k/d4s) - A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s. +- [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). - [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [@byrnedo] -- [Docker-mon](https://github.com/icecrime/docker-mon) :skull: - Console-based Docker monitoring by [@icecrime](https://github.com/icecrime) -- [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers by [@lirantal](https://github.com/lirantal) -- [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface, by [@shubh-io](https://github.com/shubh-io). -- [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters) -- [docui](https://github.com/skanehira/docui) - :skull: An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira] -- [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [@durableprogramming](https://github.com/durableprogramming) -- [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers by [@moncho](https://github.com/moncho) -- [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box by [@ajay-dsan](https://github.com/ajayd-san) -- [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield) -- [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring -- [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard), by [@mrjackwills](https://github.com/mrjackwills) -- [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine, by [@TomasTomecek][tomastomecek] +- [Docker-mon](https://github.com/icecrime/docker-mon) - :skull: Console-based Docker monitoring. +- [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers. +- [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface,. +- [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters). +- [docui](https://github.com/skanehira/docui) - :skull: An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira]. +- [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [@durableprogramming](https://github.com/durableprogramming). +- [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers. +- [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box. +- [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield). +- [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring. +- [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard),. +- [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine,. ##### CLI tools -- [captain](https://github.com/jenssegers/captain) - Easily start and stop docker compose projects from any directory. By [@jenssegers](https://github.com/jenssegers) -- [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [@Falldog](https://github.com/Falldog) -- [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [@exdx](https://github.com/exdx) -- [dctl](https://github.com/FabienD/docker-stack) - dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD) -- [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. By [@s0rg](https://github.com/s0rg) -- [docker-captain](https://github.com/lucabello/docker-captain) - A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. -- [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries by [@mayflower](https://github.com/mayflower) -- [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck) -- [dockersql](https://github.com/crosbymichael/dockersql) - :skull: A command line interface to query Docker using SQL by [@crosbymichael](https://github.com/crosbymichael) -- [DVM](https://github.com/howtowhale/dvm) - Docker version manager by [@howtowhale](https://github.com/howtowhale) -- [goinside](https://github.com/iamsoorena/goinside) - Get inside a running docker container easily. by [@iamsoorena](https://github.com/iamsoorena) -- [ns-enter](https://github.com/jpetazzo/nsenter) - :skull: no more ssh, enter name spaces of container by [@jpetazzo][jpetazzo] -- [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects by [@g31s](https://github.com/g31s) -- [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. by [@shiwaforce](https://github.com/shiwaforce) -- [reg](https://github.com/genuinetools/reg) - :skull: Docker registry v2 command line client by [@genuinetools][genuinetools] -- [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments, by [@JonathonReinhart](https://github.com/JonathonReinhart) -- [skopeo](https://github.com/containers/skopeo) - Work with remote images registries - retrieving information, images, signing content by [@containers][containers] -- [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [@segersniels](https://github.com/segersniels) -- [tsaotun](https://github.com/qazbnm456/tsaotun) - Python based Assistance for Docker by [@qazbnm456](https://github.com/qazbnm456) -- [wharfee](https://github.com/j-bennet/wharfee) - :skull: Autocompletion and syntax highlighting for Docker commands. by [@j-bennet](https://github.com/j-bennet) +- [captain](https://github.com/jenssegers/captain) - Easily start and stop docker compose projects from any directory. By [@jenssegers](https://github.com/jenssegers). +- [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [@Falldog](https://github.com/Falldog). +- [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [@exdx](https://github.com/exdx). +- [dctl](https://github.com/FabienD/docker-stack) - Dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD). +- [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. By [@s0rg](https://github.com/s0rg). +- [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck). +- [docker-captain](https://github.com/lucabello/docker-captain) - A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. +- [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries. +- [dockersql](https://github.com/crosbymichael/dockersql) - :skull: A command line interface to query Docker using SQL. +- [DVM](https://github.com/howtowhale/dvm) - Docker version manager. +- [goinside](https://github.com/iamsoorena/goinside) - Get inside a running docker container easily. +- [ns-enter](https://github.com/jpetazzo/nsenter) - :skull: No more ssh, enter name spaces of container. +- [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects. +- [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. +- [reg](https://github.com/genuinetools/reg) - :skull: Docker registry v2 command line client. +- [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments,. +- [skopeo](https://github.com/containers/skopeo) - Work with remote images registries - retrieving information, images, signing content. +- [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [@segersniels](https://github.com/segersniels). +- [tsaotun](https://github.com/qazbnm456/tsaotun) - Python based Assistance for Docker. +- [wharfee](https://github.com/j-bennet/wharfee) - :skull: Autocompletion and syntax highlighting for Docker commands. ##### Other -- [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) - Search the Docker Registry with the Dext smart launcher. By [@vutran](https://github.com/vutran) -- [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) - SSH Server for Docker containers ~ Because every container should be accessible. By [@jeroenpeeters](https://github.com/jeroenpeeters) -- [dockercraft](https://github.com/docker/dockercraft) - :skull: Docker + Minecraft = Dockercraft by [@docker][docker] +- [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) - Search the Docker Registry with the Dext smart launcher. By [@vutran](https://github.com/vutran). +- [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) - SSH Server for Docker containers ~ Because every container should be accessible. By [@jeroenpeeters](https://github.com/jeroenpeeters). +- [dockercraft](https://github.com/docker/dockercraft) - :skull: Docker + Minecraft = Dockercraft. - [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [@spotify][spotify] -- [MultiDocker](https://github.com/marty90/multidocker) - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. -- [Powerline-Docker](https://github.com/adrianmo/powerline-docker) - A Powerline segment for showing the status of Docker containers by [@adrianmo](https://github.com/adrianmo) +- [MultiDocker](https://github.com/marty90/multidocker) - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. +- [Powerline-Docker](https://github.com/adrianmo/powerline-docker) - A Powerline segment for showing the status of Docker containers. #### Web -- [Admiral](https://github.com/vmware/admiral) - :skull: Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By [VMWare][vmware] -- [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers, by [@knrdl](https://github.com/knrdl) -- [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [@wrfly](https://github.com/wrfly) -- [dockemon](https://github.com/ProductiveOps/dokemon) - Docker Container Management GUI by [@productiveops](https://github.com/ProductiveOps) -- [Docker Compose UI](https://github.com/francescou/docker-compose-ui) - :skull: Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI -- [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2 by [@klausmeyer](https://github.com/klausmeyer) -- [Docker Registry UI (Joxit)](https://github.com/Joxit/docker-registry-ui) - :skull: The simplest and cleanest UI for private registries by [@Joxit](https://github.com/Joxit) -- [Docker Registry UI](https://github.com/atcol/docker-registry-ui) - A web UI for easy private/local Docker Registry integration by [@atcol](https://github.com/atcol) -- [docker-registry-web](https://github.com/mkuchin/docker-registry-web) - Web UI, authentication service and event recorder for private docker registry v2 by [@mkuchin](https://github.com/mkuchin) -- [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). -- [dockering-on-rails](https://github.com/Electrofenster/dockerding-on-rails) :skull: - Simple Web-Interface for Docker with a lot of features by [@Electrofenster](https://github.com/Electrofenster/) -- [DockerSurfer](https://github.com/Simone-Erba/DockerSurfer) :skull: - A web service for analyze and browse dependencies between Docker images in the Docker registry, by [@Simone-Erba](https://github.com/Simone-Erba/) -- [dockge](https://github.com/louislam/dockge) - easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager by [@louislam](https://github.com/louislam). -- [Komodo](https://github.com/mbecker20/komodo) - A tool to build and deploy software on many servers -- [Kubevious](https://github.com/kubevious/kubevious) - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way by [@rubenhak](https://github.com/rubenhak). -- [Mafl](https://github.com/hywax/mafl) - Minimalistic flexible homepage by [@hywax](https://github.com/hywax/) -- [netdata](https://github.com/netdata/netdata) - Real-time performance monitoring -- [OctoLinker](https://github.com/OctoLinker/OctoLinker) - A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. -- [Portainer](https://github.com/portainer/portainer) - A lightweight management UI for managing your Docker hosts or Docker Swarm clusters by [@portainer](https://github.com/portainer) -- [Rapid Dashboard](https://github.com/ozlerhakan/rapid) - A simple query dashboard to use Docker Remote API by [@ozlerhakan](https://github.com/ozlerhakan/) -- [Seagull](https://github.com/tobegit3hub/seagull) - Friendly Web UI to monitor docker daemon. by [@tobegit3hub](https://github.com/tobegit3hub) -- [Swarmpit](https://github.com/swarmpit/swarmpit) - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. -- [Swirl](https://github.com/cuigh/swirl) - Swirl is a web management tool for Docker, focused on swarm cluster By [@cuigh](https://github.com/cuigh/) -- [Theia](https://github.com/eclipse-theia/theia) - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. -- [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [@fr4nsys](https://github.com/fr4nsys) -- [Yacht](https://github.com/SelfhostedPro/Yacht) :construction: - A Web UI for docker that focuses on templates and ease of use in order to make deployments as easy as possible. By [@SelfhostedPro](https://github.com/SelfhostedPro) +- [Admiral](https://github.com/vmware/admiral) - :skull: Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By [VMWare][vmware]. +- [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers,. +- [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [@wrfly](https://github.com/wrfly). +- [dockemon](https://github.com/ProductiveOps/dokemon) - Docker Container Management GUI. +- [Docker Compose UI](https://github.com/francescou/docker-compose-ui) - :skull: Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI. +- [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2. +- [Docker Registry UI](https://github.com/atcol/docker-registry-ui) - A web UI for easy private/local Docker Registry integration. +- [Docker Registry UI (Joxit)](https://github.com/Joxit/docker-registry-ui) - :skull: The simplest and cleanest UI for private registries. +- [docker-registry-web](https://github.com/mkuchin/docker-registry-web) - Web UI, authentication service and event recorder for private docker registry v2. +- [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). +- [dockering-on-rails](https://github.com/Electrofenster/dockerding-on-rails) - :skull: Simple Web-Interface for Docker with a lot of features. +- [DockerSurfer](https://github.com/Simone-Erba/DockerSurfer) - :skull: A web service for analyze and browse dependencies between Docker images in the Docker registry,. +- [dockge](https://github.com/louislam/dockge) - Easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager. +- [Komodo](https://github.com/mbecker20/komodo) - A tool to build and deploy software on many servers. +- [Kubevious](https://github.com/kubevious/kubevious) - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way. +- [Mafl](https://github.com/hywax/mafl) - Minimalistic flexible homepage. +- [netdata](https://github.com/netdata/netdata) - Real-time performance monitoring. +- [OctoLinker](https://github.com/OctoLinker/OctoLinker) - A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. +- [Portainer](https://github.com/portainer/portainer) - A lightweight management UI for managing your Docker hosts or Docker Swarm clusters. +- [Rapid Dashboard](https://github.com/ozlerhakan/rapid) - A simple query dashboard to use Docker Remote API. +- [Seagull](https://github.com/tobegit3hub/seagull) - Friendly Web UI to monitor docker daemon. +- [Swarmpit](https://github.com/swarmpit/swarmpit) - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. +- [Swirl](https://github.com/cuigh/swirl) - Swirl is a web management tool for Docker, focused on swarm cluster By [@cuigh](https://github.com/cuigh/). +- [Theia](https://github.com/eclipse-theia/theia) - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. +- [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [@fr4nsys](https://github.com/fr4nsys). +- [Yacht](https://github.com/SelfhostedPro/Yacht) - :construction: A Web UI for docker that focuses on templates and ease of use in order to make deployments as easy as possible. By [@SelfhostedPro](https://github.com/SelfhostedPro). ## Docker Images @@ -474,72 +474,72 @@ Native desktop applications for managing and monitoring docker hosts and cluster Tools and applications that are either installed inside containers or designed to be run as a [sidecar](https://learn.microsoft.com/en-us/azure/architecture/patterns/sidecar) -- [amicontained](https://github.com/genuinetools/amicontained) - Container introspection tool. Find out what container runtime is being used as well as features available by [@genuinetools][genuinetools] -- [Chaperone](https://github.com/garywiz/chaperone) - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. by [@garywiz](https://github.com/garywiz) -- [ckron](https://github.com/nicomt/ckron) - A cron-style job scheduler for docker, by [@nicomt](https://github.com/nicomt) +- [amicontained](https://github.com/genuinetools/amicontained) - Container introspection tool. Find out what container runtime is being used as well as features available. +- [Chaperone](https://github.com/garywiz/chaperone) - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. +- [ckron](https://github.com/nicomt/ckron) - A cron-style job scheduler for docker,. - [CoreOS][coreos] - Linux for Massive Server Deployments -- [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system, by [@GoogleContainerTools][googlecontainertools] -- [docker-alpine](https://github.com/gliderlabs/docker-alpine) - A super small Docker base image _(5MB)_ using Alpine Linux by [@gliderlabs][gliderlabs] -- [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data by [@jwilder][jwilder] -- [dockerize](https://github.com/powerman/dockerize) - Utility to simplify running applications in docker containers by [@jwilder][jwilder], [@powerman][powerman] -- [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool) by [@tianon](https://github.com/tianon) -- [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container by [@sindresorhus][sindresorhus] -- [lstags](https://github.com/ivanilves/lstags) - sync Docker images across registries by [@ivanilves](https://github.com/ivanilves) -- [microcheck](https://github.com/tarampampam/microcheck) - Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. by [@tarampampam](https://github.com/tarampampam) -- [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - :skull: The NVIDIA Container Runtime for Docker by [@NVIDIA][nvidia] -- [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. -- [SparkView](https://github.com/beyondssl/sparkview-container) - Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. -- [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa) -- [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito] -- [supercronic](https://github.com/aptible/supercronic) - crontab-compatible job runner, designed specifically to run in containers by [@aptible](https://github.com/aptible/) -- [TrivialRC](https://github.com/vorakl/TrivialRC) - A minimalistic Runtime Configuration system and process manager for containers [@vorakl](https://github.com/vorakl) +- [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system,. +- [docker-alpine](https://github.com/gliderlabs/docker-alpine) - A super small Docker base image _(5MB)_ using Alpine Linux. +- [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data. +- [dockerize](https://github.com/powerman/dockerize) - Utility to simplify running applications in docker containers by [@jwilder][jwilder], [@powerman][powerman]. +- [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool). +- [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container. +- [lstags](https://github.com/ivanilves/lstags) - Sync Docker images across registries. +- [microcheck](https://github.com/tarampampam/microcheck) - Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. +- [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - :skull: The NVIDIA Container Runtime for Docker. +- [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. +- [SparkView](https://github.com/beyondssl/sparkview-container) - Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. +- [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa). +- [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito]. +- [supercronic](https://github.com/aptible/supercronic) - Crontab-compatible job runner, designed specifically to run in containers. +- [TrivialRC](https://github.com/vorakl/TrivialRC) - A minimalistic Runtime Configuration system and process manager for containers [@vorakl](https://github.com/vorakl). ### Builder Applications designed to help or simplify building **new** images -- [ansible-bender](https://github.com/ansible-community/ansible-bender) - A tool utilising `ansible` and `buildah` by [@TomasTomecek][tomastomecek] -- [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images by [@containers][containers] -- [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit by [@moby project](https://github.com/moby) -- [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines by [@cekit](https://github.com/cekit). -- [container-diff](https://github.com/GoogleContainerTools/container-diff) - :skull: An image tool for comparing and analyzing container images by [@GoogleContainerTools][googlecontainertools] -- [container-factory](https://github.com/mutable/container-factory) - Produces Docker images from tarballs of application source code by [@mutable](https://github.com/mutable) -- [copy-docker-image](https://github.com/mdlavin/copy-docker-image) - Copy a Docker image between registries without a full Docker installation by [@mdlavin](https://github.com/mdlavin) -- [Derrick](https://github.com/alibaba/derrick) - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [@alibaba](https://github.com/alibaba). -- [dlayer](https://github.com/orisano/dlayer) - docker layer analyzer by [@orisano](https://github.com/orisano) -- [docker-companion](https://github.com/mudler/docker-companion) - A command line tool written in Golang to squash and unpack docker images by [@mudler](https://github.com/mudler/) -- [docker-make](https://github.com/CtripCloud/docker-make) - Build, tag,and push a bunch of related docker images via a single command. -- [docker-replay](https://github.com/bcicen/docker-replay) - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen) -- [docker-repack](https://github.com/orf/docker-repack) - Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. By [orf](https://github.com/orf) -- [DockerMake](https://github.com/avirshup/DockerMake) - A reproducible Docker image build system for complex software stacks. By [@avirshup](https://github.com/avirshup) +- [ansible-bender](https://github.com/ansible-community/ansible-bender) - A tool utilising `ansible` and `buildah`. +- [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images. +- [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit. +- [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines. +- [container-diff](https://github.com/GoogleContainerTools/container-diff) - :skull: An image tool for comparing and analyzing container images. +- [container-factory](https://github.com/mutable/container-factory) - Produces Docker images from tarballs of application source code. +- [copy-docker-image](https://github.com/mdlavin/copy-docker-image) - Copy a Docker image between registries without a full Docker installation. +- [Derrick](https://github.com/alibaba/derrick) - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [@alibaba](https://github.com/alibaba). +- [dlayer](https://github.com/orisano/dlayer) - Docker layer analyzer. +- [docker-companion](https://github.com/mudler/docker-companion) - A command line tool written in Golang to squash and unpack docker images. +- [docker-make](https://github.com/CtripCloud/docker-make) - Build, tag,and push a bunch of related docker images via a single command. +- [docker-repack](https://github.com/orf/docker-repack) - Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. By [orf](https://github.com/orf). +- [docker-replay](https://github.com/bcicen/docker-replay) - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen). +- [DockerMake](https://github.com/avirshup/DockerMake) - A reproducible Docker image build system for complex software stacks. By [@avirshup](https://github.com/avirshup). - [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. -- [Dockly](https://github.com/swipely/dockly) - Dockly is a gem made to ease the pain of packaging an application in Docker by [@swipely](https://github.com/swipely/) -- [dockramp](https://github.com/jlhawn/dockramp) :skull: - Proof of Concept: A Client Driven Docker Image Builder by [@jlhawn](https://github.com/jlhawn) -- [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [@jamesbrink](https://github.com/jamesbrink) -- [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components by [@NVIDIA][nvidia] -- [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder by [@genuinetools][genuinetools] -- [kaniko](https://github.com/GoogleContainerTools/kaniko) - Build Container Images In Kubernetes. By [@GoogleContainerTools][googlecontainertools] -- [makisu](https://github.com/uber/makisu) - :skull: Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber) -- [packer](https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible -- [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images by [@duedil-ltd](https://github.com/duedil-ltd) -- [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. -- [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi) -- [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers by [@lavie](https://github.com/lavie) -- [SkinnyWhale](https://github.com/djosephsen/skinnywhale) :skull: - Skinnywhale helps you make smaller (as in megabytes) Docker containers. -- [Smith](https://github.com/oracle/smith) - :skull: A Micocontainer Builder and can perform multi-stage builds after the image is built [Oracle][oracle] -- [userdef](https://github.com/theAkito/userdef) - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito] -- [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles by [@P3GLEG](https://github.com/P3GLEG/). -- [Whales](https://github.com/Gueils/whales) - A tool to automatically dockerize your applications by [@icalialabs](https://github.com/IcaliaLabs). +- [Dockly](https://github.com/swipely/dockly) - Dockly is a gem made to ease the pain of packaging an application in Docker. +- [dockramp](https://github.com/jlhawn/dockramp) - :skull: Proof of Concept: A Client Driven Docker Image Builder. +- [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [@jamesbrink](https://github.com/jamesbrink). +- [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. +- [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. +- [kaniko](https://github.com/GoogleContainerTools/kaniko) - Build Container Images In Kubernetes. By [@GoogleContainerTools][googlecontainertools]. +- [makisu](https://github.com/uber/makisu) - :skull: Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber). +- [packer](https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible. +- [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images. +- [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. +- [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi). +- [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers. +- [SkinnyWhale](https://github.com/djosephsen/skinnywhale) - :skull: Skinnywhale helps you make smaller (as in megabytes) Docker containers. +- [Smith](https://github.com/oracle/smith) - :skull: A Micocontainer Builder and can perform multi-stage builds after the image is built [Oracle][oracle]. +- [userdef](https://github.com/theAkito/userdef) - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito]. +- [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles. +- [Whales](https://github.com/Gueils/whales) - A tool to automatically dockerize your applications. ### Dockerfile -- [chaperone-docker](https://github.com/garywiz/chaperone-docker) - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. +- [chaperone-docker](https://github.com/garywiz/chaperone-docker) - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. - [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. -- [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. -- [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [@PatrickHoefler](https://github.com/patrickhoefler) -- [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. Maintained by [@CollageLabs](https://github.com/CollageLabs). -- [dockmoor](https://github.com/MeneDev/dockmoor) :skull: - Manage docker image references and help to create reproducible builds with Docker. By [@MeneDev](https://github.com/MeneDev) -- [Vektorcloud](https://github.com/vektorcloud) - A collection of minimal, Alpine-based Docker images +- [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. +- [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [@PatrickHoefler](https://github.com/patrickhoefler). +- [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. +- [dockmoor](https://github.com/MeneDev/dockmoor) - :skull: Manage docker image references and help to create reproducible builds with Docker. By [@MeneDev](https://github.com/MeneDev). +- [Vektorcloud](https://github.com/vektorcloud) - A collection of minimal, Alpine-based Docker images. Examples by: @@ -555,247 +555,247 @@ Examples by: ### Linter -- [Dockadvisor](https://github.com/deckrun/dockadvisor) - Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks by [@deckrun](https://github.com/deckrun) -- [docker-image-size-limit](https://github.com/wemake-services/docker-image-size-limit) - A tool to keep an eye on your docker images size. -- [Dockerfile Linter action](https://github.com/buddy-works/dockerfile-linter) - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. -- [dockfmt](https://github.com/jessfraz/dockfmt) :construction: - Dockerfile formatter and parser by [@jessfraz][jessfraz] -- [FROM:latest](https://github.com/replicatedhq/dockerfilelint) - An opinionated Dockerfile linter by [@replicatedhq](https://github.com/replicatedhq) -- [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions; by [@lukasmartinelli](https://github.com/lukasmartinelli) -- [Whale-linter](https://github.com/jeromepin/whale-linter) - :skull: A simple and small Dockerfile linter written in Python3+ without dependencies by [@jeromepin](https://github.com/jeromepin) +- [Dockadvisor](https://github.com/deckrun/dockadvisor) - Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks. +- [docker-image-size-limit](https://github.com/wemake-services/docker-image-size-limit) - A tool to keep an eye on your docker images size. +- [Dockerfile Linter action](https://github.com/buddy-works/dockerfile-linter) - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. +- [dockfmt](https://github.com/jessfraz/dockfmt) - :construction: Dockerfile formatter and parser. +- [FROM:latest](https://github.com/replicatedhq/dockerfilelint) - An opinionated Dockerfile linter. +- [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions;. +- [Whale-linter](https://github.com/jeromepin/whale-linter) - :skull: A simple and small Dockerfile linter written in Python3+ without dependencies. ### Metadata -- [opencontainer](https://github.com/opencontainers/image-spec/blob/master/annotations.md) - A convention and shared namespace for Docker labels defined by OCI Image Spec. +- [opencontainer](https://github.com/opencontainers/image-spec/blob/master/annotations.md) - A convention and shared namespace for Docker labels defined by OCI Image Spec. ### Registry Services to securely store your Docker images. -- [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. -- [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource -- [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans) -- [cleanreg](https://github.com/hcguersoy/cleanreg) - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC by [@hcguersoy](https://github.com/hcguersoy) -- [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/product/formats/docker-registry) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. -- [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. -- [Cycle.io :heavy_dollar_sign:](https://cycle.io/) - Bare-metal container hosting. -- [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. +- [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. +- [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource. +- [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans). +- [cleanreg](https://github.com/hcguersoy/cleanreg) - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC. +- [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/product/formats/docker-registry) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. +- [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. +- [Cycle.io :heavy_dollar_sign:](https://cycle.io/) - Bare-metal container hosting. +- [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. - [Docker Hub](https://hub.docker.com/) provided by Docker Inc. - [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content -- [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent by [@netvarun](https://github.com/netvarun/) -- [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. +- [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent. +- [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. - [GCP Artifact Registry :heavy_dollar_sign:](https://cloud.google.com/artifact-registry/docs) Fast, private Docker image storage on Google Cloud Platform. -- [Gitea Container Registry](https://docs.gitea.com/usage/packages/container) - Integrated Docker registry in Gitea, ideal for private, small-scale image hosting. -- [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - GitHub's solution for storing and managing Docker images, with tight integration into GitHub Actions. -- [GitLab Container Registry](https://docs.gitlab.com/user/packages/container_registry/) - Registry focused on using its images in GitLab CI +- [Gitea Container Registry](https://docs.gitea.com/usage/packages/container) - Integrated Docker registry in Gitea, ideal for private, small-scale image hosting. +- [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - GitHub's solution for storing and managing Docker images, with tight integration into GitHub Actions. +- [GitLab Container Registry](https://docs.gitlab.com/user/packages/container_registry/) - Registry focused on using its images in GitLab CI. - [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] -- [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well -- [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. -- [nscr](https://github.com/jhstatewide/nscr) - A light-weight, self-contained container registry that's easy to run and maintain. -- [Quay.io :heavy_dollar_sign:](https://quay.io/) (part of CoreOS) - Secure hosting for private Docker repositories -- [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry -- [RepoFlow](https://www.repoflow.io) - A simple and easy-to-use package management platform with Docker support alongside other formats like PyPI, Maven, npm, and Helm. Includes smart search, built-in Docker image scanning, and a great free option for both self-hosted and cloud use. -- [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source) by [@noteed](https://github.com/noteed) -- [Sonatype Nexus Repository](https://www.sonatype.com/products/sonatype-nexus-repository) - Manage binaries and build artifacts across your software supply chain. +- [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well. +- [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. +- [nscr](https://github.com/jhstatewide/nscr) - A light-weight, self-contained container registry that's easy to run and maintain. +- [Quay.io :heavy_dollar_sign:](https://quay.io/) - Secure hosting for private Docker repositories. +- [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry. +- [RepoFlow](https://www.repoflow.io) - A simple and easy-to-use package management platform with Docker support alongside other formats like PyPI, Maven, npm, and Helm. Includes smart search, built-in Docker image scanning, and a great free option for both self-hosted and cloud use. +- [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source). +- [Sonatype Nexus Repository](https://www.sonatype.com/products/sonatype-nexus-repository) - Manage binaries and build artifacts across your software supply chain. ## Development with Docker ### API Client -- [ahab](https://github.com/instacart/ahab) - Docker event handling with Python by [@instacart](https://github.com/instacart) -- [clj-docker-client](https://github.com/into-docker/clj-docker-client) :skull: - Idiomatic Clojure client for the Docker remote API. By [@lispyclouds][lispyclouds] -- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [@lispyclouds][lispyclouds] -- [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy by [@gesellix][gesellix] -- [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [@masaeedu](https://github.com/masaeedu) -- [docker-client](https://github.com/spotify/docker-client) :skull: - Java client for the Docker remote API. By [@spotify][spotify] -- [docker-controller-bot](https://github.com/dgongut/docker-controller-bot) - Telegram bot to control docker containers. By [@dgongut](https://github.com/dgongut/) -- [docker-it-scala](https://github.com/whisklabs/docker-it-scala) - Docker integration testing kit with Scala by [@whisklabs](https://github.com/whisklabs) -- [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [@amihaiemil](https://github.com/amihaiemil) -- [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images by [@fabric8io](https://github.com/fabric8io) -- [Docker-PowerShell](https://github.com/Microsoft/Docker-PowerShell) - :skull: PowerShell Module for Docker -- [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API by [@ahmetb](https://github.com/ahmetb) -- [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [@rquackenbush](https://github.com/rquackenbush) -- [dockerfile-maven](https://github.com/spotify/dockerfile-maven) - :skull: A Maven plugin for building and pushing Docker images by [@spotify][spotify] -- [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module by [@apocas](https://github.com/apocas) -- [DoMonit](https://github.com/eon01/DoMonit) - A simple Docker Monitoring wrapper For Docker API -- [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API by [@fsouza](https://github.com/fsouza/) -- [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle by [@gesellix][gesellix] -- [libcompose](https://github.com/docker/libcompose) - :skull: Go library for Docker Compose. -- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) :construction: - Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [@greenled](https://github.com/greenled). -- [sbt-docker-compose](https://github.com/Tapad/sbt-docker-compose) - :skull: Integrates Docker Compose functionality into sbt by [@kurtkopchik](https://github.com/kurtkopchik/) -- [sbt-docker](https://github.com/marcuslonnberg/sbt-docker) - Create Docker images directly from sbt by [@marcuslonnberg](https://github.com/marcuslonnberg) +- [ahab](https://github.com/instacart/ahab) - Docker event handling with Python. +- [clj-docker-client](https://github.com/into-docker/clj-docker-client) - :skull: Idiomatic Clojure client for the Docker remote API. By [@lispyclouds][lispyclouds]. +- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [@lispyclouds][lispyclouds]. +- [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy. +- [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [@masaeedu](https://github.com/masaeedu). +- [docker-client](https://github.com/spotify/docker-client) - :skull: Java client for the Docker remote API. By [@spotify][spotify]. +- [docker-controller-bot](https://github.com/dgongut/docker-controller-bot) - Telegram bot to control docker containers. By [@dgongut](https://github.com/dgongut/). +- [docker-it-scala](https://github.com/whisklabs/docker-it-scala) - Docker integration testing kit with Scala. +- [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [@amihaiemil](https://github.com/amihaiemil). +- [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images. +- [Docker-PowerShell](https://github.com/Microsoft/Docker-PowerShell) - :skull: PowerShell Module for Docker. +- [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API. +- [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [@rquackenbush](https://github.com/rquackenbush). +- [dockerfile-maven](https://github.com/spotify/dockerfile-maven) - :skull: A Maven plugin for building and pushing Docker images. +- [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module. +- [DoMonit](https://github.com/eon01/DoMonit) - A simple Docker Monitoring wrapper For Docker API. +- [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API. +- [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle. +- [libcompose](https://github.com/docker/libcompose) - :skull: Go library for Docker Compose. +- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) - :construction: Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [@greenled](https://github.com/greenled). +- [sbt-docker](https://github.com/marcuslonnberg/sbt-docker) - Create Docker images directly from sbt. +- [sbt-docker-compose](https://github.com/Tapad/sbt-docker-compose) - :skull: Integrates Docker Compose functionality into sbt. ### CI/CD -- [Buddy :heavy_dollar_sign:](https://buddy.works) - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. -- [Captain](https://github.com/harbur/captain) - Convert your Git workflow to Docker containers ready for Continuous Delivery by [@harbur](https://github.com/harbur). -- [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources by [@caicloud](https://github.com/caicloud). -- [Defang](https://github.com/DefangLabs/defang) - Deploy Docker Compose to your favorite cloud in minutes by [@DefangLabs](https://github.com/DefangLabs) -- [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). -- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max]. -- [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. -- [Drydock](https://github.com/CodesWhat/drydock) - Open-source container update monitoring with web dashboard, 15 registries, 16 notification triggers, and security scanning. Drop-in WUD replacement. By [@CodesWhat](https://github.com/CodesWhat) -- [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. -- [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. -- [Gantry](https://github.com/shizunge/gantry) - Automatically update selected Docker swarm services. -- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. -- [GOCD-Docker](https://github.com/gocd/gocd-docker) :skull: - Go Server and Agent in docker containers to provision. -- [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. -- [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed by [@Kraken-CI](https://github.com/Kraken-CI). -- [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) - Continuous deployment of a microservices application. -- [mu](https://github.com/stelligent/mu) - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [@Stelligent](https://github.com/stelligent) -- [Ouroboros](https://github.com/pyouroboros/ouroboros) :skull: - Automatically update running Docker containers with notifications -- [Popper](https://github.com/systemslab/popper) - Github actions workflow (HCL syntax) execution engine. -- [Screwdriver :heavy_dollar_sign:](https://screwdriver.cd/) - Yahoo's OpenSource buildplatform designed for Continous Delivery. -- [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository by [@Stratoscale](https://github.com/Stratoscale) -- [SwarmCI](https://github.com/ghostsquad/swarmci) - Create a distributed, isolated task pipeline in your Docker Swarm. -- [Tekton CD](https://tekton.dev/) - A cloud-native pipeline resource. -- [Watchtower](https://github.com/containrrr/watchtower) :skull: - Automatically update running Docker containers +- [Buddy :heavy_dollar_sign:](https://buddy.works) - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. +- [Captain](https://github.com/harbur/captain) - Convert your Git workflow to Docker containers ready for Continuous Delivery. +- [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources. +- [Defang](https://github.com/DefangLabs/defang) - Deploy Docker Compose to your favorite cloud in minutes. +- [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). +- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max]. +- [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. +- [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. +- [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. +- [Drydock](https://github.com/CodesWhat/drydock) - Open-source container update monitoring with web dashboard, 15 registries, 16 notification triggers, and security scanning. Drop-in WUD replacement. By [@CodesWhat](https://github.com/CodesWhat). +- [Gantry](https://github.com/shizunge/gantry) - Automatically update selected Docker swarm services. +- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. +- [GOCD-Docker](https://github.com/gocd/gocd-docker) - :skull: Go Server and Agent in docker containers to provision. +- [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. +- [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed. +- [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) - Continuous deployment of a microservices application. +- [mu](https://github.com/stelligent/mu) - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [@Stelligent](https://github.com/stelligent). +- [Ouroboros](https://github.com/pyouroboros/ouroboros) - :skull: Automatically update running Docker containers with notifications. +- [Popper](https://github.com/systemslab/popper) - Github actions workflow (HCL syntax) execution engine. +- [Screwdriver :heavy_dollar_sign:](https://screwdriver.cd/) - Yahoo's OpenSource buildplatform designed for Continous Delivery. +- [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository. +- [SwarmCI](https://github.com/ghostsquad/swarmci) - Create a distributed, isolated task pipeline in your Docker Swarm. +- [Tekton CD](https://tekton.dev/) - A cloud-native pipeline resource. +- [Watchtower](https://github.com/containrrr/watchtower) - :skull: Automatically update running Docker containers. ### Development Environment -- [batect](https://github.com/batect/batect) - :skull: build and testing environments as code tool: Dockerised build and testing environments made easy by [@charleskorn](https://github.com/charleskorn) -- [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [@TechnologyAdvice](https://github.com/TechnologyAdvice)) -- [Boot2Docker](https://github.com/boot2docker/boot2docker) :skull: - Docker for OSX and Windows -- [coder](https://github.com/coder/coder) - remote development machines powered by Terraform or Docker by [@coder](https://github.com/coder) -- [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment by [@lstephen](https://github.com/lstephen) -- [Crashcart](https://github.com/oracle/crashcart) - :skull: Sideload Linux binaries into a running container for troubleshooting by [@Oracle][oracle] -- [dde](https://github.com/whatwedo/dde) :construction: - Local development environment toolset based on Docker. By [@whatwedo](https://github.com/whatwedo) -- [Devstep](https://github.com/fgrehm/devstep) :skull: - Development environments powered by Docker and buildpacks by [@fgrehm][fgrehm] -- [Dinghy](https://github.com/codekitchen/dinghy) - :skull: An alternative way to use Docker on Mac OS X using Docker Machine with virtualbox, vmware, xhyve or parallels -- [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [@bibendi](https://github.com/bibendi) -- [DLite](https://github.com/nlf/dlite) :skull: - Simplest way to use Docker on OSX, no VM needed. By [@nlf](https://github.com/nlf) -- [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [@dnephin](https://github.com/dnephin) -- [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [@NandoQuintana](https://github.com/nandoquintana). -- [Docker osx dev](https://github.com/brikis98/docker-osx-dev) :skull: - A productive development environment with Docker on OS X by [@brikis98](https://github.com/brikis98) -- [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [@Ph3nol](https://github.com/ph3nol) -- [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer) -- [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant) by [@shyiko](https://github.com/shyiko) -- [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - :skull: Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. -- [DockerDL](https://github.com/matifali/dockerdl) - Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. -- [Dusty](https://github.com/gamechanger/dusty) - :skull: Managed Docker development environments on OS X -- [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE -- [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [@EnvCLI](https://github.com/EnvCLI) -- [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [@Hpsaturn](https://github.com/hpsaturn) -- [footloose](https://github.com/weaveworks/footloose) - :skull: Spin containers that look like Virtual Machines - By [@dlespiau](https://github.com/dlespiau) -- [forward2docker](https://github.com/bsideup/forward2docker) :skull: - Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM by [@bsideup](https://github.com/bsideup) -- [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. -- [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [@senges](https://github.com/senges) -- [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://www.thinktandem.io/) -- [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) - Container solution to compile Rust projects for Linux, macOS and Windows. By [@Peco602][peco602] -- [uniget](https://github.com/uniget-org/cli) - uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [@nicholasdille](https://github.com/nicholasdille) -- [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments by [@tailhook](https://github.com/tailhook/) -- [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com) +- [batect](https://github.com/batect/batect) - :skull: Build and testing environments as code tool: Dockerised build and testing environments made easy. +- [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [@TechnologyAdvice](https://github.com/TechnologyAdvice)). +- [Boot2Docker](https://github.com/boot2docker/boot2docker) - :skull: Docker for OSX and Windows. +- [coder](https://github.com/coder/coder) - Remote development machines powered by Terraform or Docker. +- [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment. +- [Crashcart](https://github.com/oracle/crashcart) - :skull: Sideload Linux binaries into a running container for troubleshooting. +- [dde](https://github.com/whatwedo/dde) - :construction: Local development environment toolset based on Docker. By [@whatwedo](https://github.com/whatwedo). +- [Devstep](https://github.com/fgrehm/devstep) - :skull: Development environments powered by Docker and buildpacks. +- [Dinghy](https://github.com/codekitchen/dinghy) - :skull: An alternative way to use Docker on Mac OS X using Docker Machine with virtualbox, vmware, xhyve or parallels. +- [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [@bibendi](https://github.com/bibendi). +- [DLite](https://github.com/nlf/dlite) - :skull: Simplest way to use Docker on OSX, no VM needed. By [@nlf](https://github.com/nlf). +- [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [@dnephin](https://github.com/dnephin). +- [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [@NandoQuintana](https://github.com/nandoquintana). +- [Docker osx dev](https://github.com/brikis98/docker-osx-dev) - :skull: A productive development environment with Docker on OS X. +- [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [@Ph3nol](https://github.com/ph3nol). +- [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer). +- [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant). +- [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - :skull: Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. +- [DockerDL](https://github.com/matifali/dockerdl) - Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. +- [Dusty](https://github.com/gamechanger/dusty) - :skull: Managed Docker development environments on OS X. +- [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE. +- [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [@EnvCLI](https://github.com/EnvCLI). +- [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [@Hpsaturn](https://github.com/hpsaturn). +- [footloose](https://github.com/weaveworks/footloose) - :skull: Spin containers that look like Virtual Machines - By [@dlespiau](https://github.com/dlespiau). +- [forward2docker](https://github.com/bsideup/forward2docker) - :skull: Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM. +- [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. +- [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [@senges](https://github.com/senges). +- [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://www.thinktandem.io/). +- [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) - Container solution to compile Rust projects for Linux, macOS and Windows. By [@Peco602][peco602]. +- [uniget](https://github.com/uniget-org/cli) - Uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [@nicholasdille](https://github.com/nicholasdille). +- [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments. +- [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com). ### Garbage Collection -- [caduc](https://github.com/tjamet/caduc) - A docker garbage collector cleaning stuff you did not use recently -- [Docker Clean](https://github.com/ZZROTDesign/docker-clean) - A script that cleans Docker containers, images and volumes by [@zzrotdesign](https://github.com/ZZROTDesign) -- [docker_gc](https://github.com/pdacity/docker_gc) - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service by [@pdacity](https://github.com/pdacity) -- [Docker-cleanup](https://github.com/meltwater/docker-cleanup) :skull: - Automatic Docker image, container and volume cleanup by [@meltwater](https://github.com/meltwater) -- [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [@Yelp](https://github.com/Yelp) -- [docker-garby](https://github.com/konstruktoid/docker-garby) - :skull: Docker garbage collection script by [@konstruktoid](https://github.com/konstruktoid). -- [docker-gc](https://github.com/spotify/docker-gc) :skull: - A cron job that will delete old stopped containers and unused images by [@spotify][spotify] -- [Docuum](https://github.com/stepchowfun/docuum) - Least recently used (LRU) eviction of Docker images by [@stepchowfun](https://github.com/stepchowfun) -- [sherdock](https://github.com/rancher/sherdock) :skull: - Automatic GC of images based on regexp by [@rancher][rancher] +- [caduc](https://github.com/tjamet/caduc) - A docker garbage collector cleaning stuff you did not use recently. +- [Docker Clean](https://github.com/ZZROTDesign/docker-clean) - A script that cleans Docker containers, images and volumes. +- [Docker-cleanup](https://github.com/meltwater/docker-cleanup) - :skull: Automatic Docker image, container and volume cleanup. +- [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [@Yelp](https://github.com/Yelp). +- [docker-garby](https://github.com/konstruktoid/docker-garby) - :skull: Docker garbage collection script. +- [docker-gc](https://github.com/spotify/docker-gc) - :skull: A cron job that will delete old stopped containers and unused images. +- [docker_gc](https://github.com/pdacity/docker_gc) - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service. +- [Docuum](https://github.com/stepchowfun/docuum) - Least recently used (LRU) eviction of Docker images. +- [sherdock](https://github.com/rancher/sherdock) - :skull: Automatic GC of images based on regexp. ### Serverless -- [AMP](https://github.com/appcelerator-archive/amp) :skull: - The open source unified CaaS/FaaS platform for Docker, batteries included. By [@Appcelerator](https://github.com/appcelerator-archive) -- [Apache OpenWhisk](https://github.com/apache/openwhisk) - a serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache) -- [Docker-Lambda](https://github.com/lambci/docker-lambda) - :skull: Docker images and test runners that replicate the live AWS Lambda environment. By [@lamb-ci](https://github.com/lambci) -- [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [@bfirsh](https://github.com/bfirsh) -- [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions -- [Koyeb](https://www.koyeb.com/) :heavy_dollar_sign: - Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. -- [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas) -- [SCAR](https://github.com/grycap/scar) - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda) by [@grycap](https://github.com/grycap) +- [AMP](https://github.com/appcelerator-archive/amp) - :skull: The open source unified CaaS/FaaS platform for Docker, batteries included. By [@Appcelerator](https://github.com/appcelerator-archive). +- [Apache OpenWhisk](https://github.com/apache/openwhisk) - A serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache). +- [Docker-Lambda](https://github.com/lambci/docker-lambda) - :skull: Docker images and test runners that replicate the live AWS Lambda environment. By [@lamb-ci](https://github.com/lambci). +- [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [@bfirsh](https://github.com/bfirsh). +- [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions. +- [Koyeb](https://www.koyeb.com/) - :heavy_dollar_sign: Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. +- [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas). +- [SCAR](https://github.com/grycap/scar) - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda). ### Testing -- [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [@GoogleContainerTools][googlecontainertools] -- [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. -- [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [@zuazo](https://github.com/zuazo) -- [Dockunit](https://github.com/dockunit/platform) :skull: - Docker based integration tests. A simple Node based utility for running Docker based unit tests. By [@dockunit](https://github.com/dockunit) -- [EZDC](https://github.com/lynchborg/ezdc) - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [@byrnedo] +- [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [@GoogleContainerTools][googlecontainertools]. +- [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. +- [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [@zuazo](https://github.com/zuazo). +- [Dockunit](https://github.com/dockunit/platform) - :skull: Docker based integration tests. A simple Node based utility for running Docker based unit tests. By [@dockunit](https://github.com/dockunit). +- [EZDC](https://github.com/lynchborg/ezdc) - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [@byrnedo]. - [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [@chef](https://github.com/chef) -- [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/) -- [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. -- [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [@alexei-led](https://github.com/alexei-led) +- [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/). +- [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. +- [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [@alexei-led](https://github.com/alexei-led). ### Wrappers -- [Ansible](https://docs.ansible.com/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat -- [Azk](https://github.com/azukiapp/azk) - :skull: Orchestrate development environments on your local machine by [@azukiapp](https://github.com/azukiapp) -- [Beluga](https://github.com/cortexmedia/Beluga) :skull: - CLI to deploy docker containers on a single server or low amount of servers. By [@cortextmedia](https://github.com/cortexmedia) -- [dexec](https://github.com/docker-exec/dexec) - Command line interface written in Go for running code with Docker Exec images. -- [dockerized](https://github.com/benzaita/dockerized-cli) - Seamlessly execute commands in a container. -- [Dray](https://github.com/CenturyLinkLabs/dray) - An engine for managing the execution of container-based workflows by [@CenturyLinkLabs][centurylinklabs] -- [FuGu](https://github.com/mattes/fugu) :skull: - Docker run wrapper without orchestration by [@mattes](https://github.com/mattes) -- [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [@artsy](https://github.com/artsy) -- [Preevy](https://github.com/livecycle/preevy) - Preview environments for Docker and Docker Compose projects. Test your changes and get feedback from devs and non-devs (Product/Design) by deploying pull requests to the your cloud provider as part of your CI pipeline. -- [Shutit](https://github.com/ianmiell/shutit) - Tool for building and maintaining complex Docker deployments by [@ianmiell](https://github.com/ianmiell) -- [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker -- [T.A.D.S. boilerplate](https://github.com/Thomvaill/tads-boilerplate) - :skull: The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By [@Thomvaill](https://github.com/Thomvaill) -- [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM -- [Turbo](https://github.com/ramitsurana/turbo) - Simple and Powerful utility for docker. By [@ramitsurana][ramitsurana] -- [udocker](https://github.com/indigo-dc/udocker) - A tool to execute simple docker containers in batch or interactive systems without root privileges by [@inidigo-dc](https://github.com/indigo-dc) -- [Vagrant - Docker provider](https://developer.hashicorp.com/vagrant/docs/providers/docker/basics) - Good starting point is [vagrant-docker-example](https://github.com/bubenkoff/vagrant-docker-example) by [@bubenkoff](https://github.com/bubenkoff) +- [Ansible](https://docs.ansible.com/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat. +- [Azk](https://github.com/azukiapp/azk) - :skull: Orchestrate development environments on your local machine. +- [Beluga](https://github.com/cortexmedia/Beluga) - :skull: CLI to deploy docker containers on a single server or low amount of servers. By [@cortextmedia](https://github.com/cortexmedia). +- [dexec](https://github.com/docker-exec/dexec) - Command line interface written in Go for running code with Docker Exec images. +- [dockerized](https://github.com/benzaita/dockerized-cli) - Seamlessly execute commands in a container. +- [Dray](https://github.com/CenturyLinkLabs/dray) - An engine for managing the execution of container-based workflows. +- [FuGu](https://github.com/mattes/fugu) - :skull: Docker run wrapper without orchestration. +- [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [@artsy](https://github.com/artsy). +- [Preevy](https://github.com/livecycle/preevy) - Preview environments for Docker and Docker Compose projects. Test your changes and get feedback from devs and non-devs (Product/Design) by deploying pull requests to the your cloud provider as part of your CI pipeline. +- [Shutit](https://github.com/ianmiell/shutit) - Tool for building and maintaining complex Docker deployments. +- [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker. +- [T.A.D.S. boilerplate](https://github.com/Thomvaill/tads-boilerplate) - :skull: The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By [@Thomvaill](https://github.com/Thomvaill). +- [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM. +- [Turbo](https://github.com/ramitsurana/turbo) - Simple and Powerful utility for docker. By [@ramitsurana][ramitsurana]. +- [udocker](https://github.com/indigo-dc/udocker) - A tool to execute simple docker containers in batch or interactive systems without root privileges. +- [Vagrant - Docker provider](https://developer.hashicorp.com/vagrant/docs/providers/docker/basics) - Good starting point is [vagrant-docker-example](https://github.com/bubenkoff/vagrant-docker-example). ## Services based on Docker (mostly :heavy_dollar_sign:) ### CI Services -- [CircleCI](https://circleci.com/) :heavy_dollar_sign: - Push or pull Docker images from your build environment, or build and run containers right on CircleCI. -- [CodeFresh](https://codefresh.io) :heavy_dollar_sign: - Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. -- [CodeShip](https://www.cloudbees.com/products/codeship) :heavy_dollar_sign: - Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. -- [ConcourseCI](https://concourse-ci.org) :heavy_dollar_sign: - A CI SaaS platform for developers and DevOps teams pipeline oriented. +- [CircleCI](https://circleci.com/) - :heavy_dollar_sign: Push or pull Docker images from your build environment, or build and run containers right on CircleCI. +- [CodeFresh](https://codefresh.io) - :heavy_dollar_sign: Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. +- [CodeShip](https://www.cloudbees.com/products/codeship) - :heavy_dollar_sign: Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. +- [ConcourseCI](https://concourse-ci.org) - :heavy_dollar_sign: A CI SaaS platform for developers and DevOps teams pipeline oriented. - [Semaphore CI](https://semaphore.io/) :heavy_dollar_sign: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. -- [TravisCI](https://www.travis-ci.com/) :heavy_dollar_sign: - A Free github projects continuous integration Saas platform for developers and Devops. +- [TravisCI](https://www.travis-ci.com/) - :heavy_dollar_sign: A Free github projects continuous integration Saas platform for developers and Devops. ### CaaS -- [Amazon ECS](https://aws.amazon.com/ecs/) :heavy_dollar_sign: - A management service on EC2 that supports Docker containers. -- [Appfleet](https://appfleet.com/) :heavy_dollar_sign: - Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency. -- [Azure AKS](https://azure.microsoft.com/en-us/products/kubernetes-service/) :heavy_dollar_sign: - Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. -- [Cloud 66](https://www.cloud66.com) :heavy_dollar_sign: - Full-stack hosted container management as a service -- [Giant Swarm](https://www.giantswarm.io/) :heavy_dollar_sign: - Simple microservice infrastructure. Deploy your containers in seconds. -- [Google Container Engine](https://cloud.google.com/kubernetes-engine/docs/) :heavy_dollar_sign: - Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. -- [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) :heavy_dollar_sign: - Integrated platform for data and containers built on Apache Mesos by [@mesosphere](https://d2iq.com) -- [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) :heavy_dollar_sign: - Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud -- [Triton](https://www.joyent.com/) :heavy_dollar_sign: - Elastic container-native infrastructure by Joyent. -- [Virtuozzo Application Platform](https://www.virtuozzo.com/application-platform-partners/) :heavy_dollar_sign: - Deploy and manage your projects with turnkey PaaS across a wide network of reliable service providers +- [Amazon ECS](https://aws.amazon.com/ecs/) - :heavy_dollar_sign: A management service on EC2 that supports Docker containers. +- [Appfleet](https://appfleet.com/) - :heavy_dollar_sign: Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency. +- [Azure AKS](https://azure.microsoft.com/en-us/products/kubernetes-service/) - :heavy_dollar_sign: Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. +- [Cloud 66](https://www.cloud66.com) - :heavy_dollar_sign: Full-stack hosted container management as a service. +- [Giant Swarm](https://www.giantswarm.io/) - :heavy_dollar_sign: Simple microservice infrastructure. Deploy your containers in seconds. +- [Google Container Engine](https://cloud.google.com/kubernetes-engine/docs/) - :heavy_dollar_sign: Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. +- [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) - :heavy_dollar_sign: Integrated platform for data and containers built on Apache Mesos. +- [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) - :heavy_dollar_sign: Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud. +- [Triton](https://www.joyent.com/) - :heavy_dollar_sign: Elastic container-native infrastructure by Joyent. +- [Virtuozzo Application Platform](https://www.virtuozzo.com/application-platform-partners/) - :heavy_dollar_sign: Deploy and manage your projects with turnkey PaaS across a wide network of reliable service providers. ### Monitoring Services -- [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. -- [Better Stack](https://betterstack.com/community/guides/scaling-docker/) :heavy_dollar_sign: - A Docker-compatible observability stack that delivers robust log aggregation and uptime monitoring capabilities for various software application. -- [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) :heavy_dollar_sign: - Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies) +- [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. +- [Better Stack](https://betterstack.com/community/guides/scaling-docker/) - :heavy_dollar_sign: A Docker-compatible observability stack that delivers robust log aggregation and uptime monitoring capabilities for various software application. +- [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) - :heavy_dollar_sign: Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies). - [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) -- [Datadog](https://www.datadoghq.com/) :heavy_dollar_sign: - Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. -- [DockStat](https://github.com/its4nik/dockstat) :construction: - A full fletched (WIP) Docker management solution featuring plugin support and community integration by [its4nik](https://github.com/its4nik) -- [Prometheus](https://prometheus.io/) :heavy_dollar_sign: - Open-source service monitoring system and time series database -- [Site24x7](https://www.site24x7.com/docker-monitoring.html) :heavy_dollar_sign: - Docker Monitoring for DevOps and IT is a SaaS Pay per Host model -- [SPM for Docker](https://github.com/sematext/sematext-agent-docker) :heavy_dollar_sign: - Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [@sematext](https://github.com/sematext) -- [Sysdig Monitor](https://www.sysdig.com/products/monitor) :heavy_dollar_sign: - Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. +- [Datadog](https://www.datadoghq.com/) - :heavy_dollar_sign: Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. +- [DockStat](https://github.com/its4nik/dockstat) - :construction: A full fletched (WIP) Docker management solution featuring plugin support and community integration by [its4nik](https://github.com/its4nik). +- [Prometheus](https://prometheus.io/) - :heavy_dollar_sign: Open-source service monitoring system and time series database. +- [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :heavy_dollar_sign: Docker Monitoring for DevOps and IT is a SaaS Pay per Host model. +- [SPM for Docker](https://github.com/sematext/sematext-agent-docker) - :heavy_dollar_sign: Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [@sematext](https://github.com/sematext). +- [Sysdig Monitor](https://www.sysdig.com/products/monitor) - :heavy_dollar_sign: Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. # Useful Resources - **[Valuable Docker Links](http://nane.kratzke.pages.mylab.th-luebeck.de/about/blog/2014/08/24/valuable-docker-links/)** High quality articles about docker! **MUST SEE** - [Cloud Native Landscape](https://github.com/cncf/landscape) -- [Docker Blog](https://www.docker.com/blog/) - regular updates about Docker, the community and tools +- [Docker Blog](https://www.docker.com/blog/) - Regular updates about Docker, the community and tools. - [Docker Certification](https://intellipaat.com/docker-training-course/?US) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. -- [Docker dev bookmarks](https://www.codever.dev/search?q=docker) - use the tag [docker](https://www.codever.dev/bookmarks/t/docker) +- [Docker dev bookmarks](https://www.codever.dev/search?q=docker) - Use the tag [docker](https://www.codever.dev/bookmarks/t/docker). - [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) - [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) -- [Docker packaging guide for Python](https://pythonspeed.com/docker/) - a series of detailed articles on the specifics of Docker packaging for Python. +- [Docker packaging guide for Python](https://pythonspeed.com/docker/) - A series of detailed articles on the specifics of Docker packaging for Python. - [Learn Docker in a Month of Lunches](https://www.manning.com/books/learn-docker-in-a-month-of-lunches) -- [Learn Docker](https://coursesity.com/blog/best-docker-tutorials/) - Learn Docker - curated list of the top online docker tutorials and courses. +- [Learn Docker](https://coursesity.com/blog/best-docker-tutorials/) - Learn Docker - curated list of the top online docker tutorials and courses. - [Programming Community Curated Resources for learning Docker](https://hackr.io/tutorials/learn-docker) ## Awesome Lists -- [Awesome CI/CD](https://github.com/cicdops/awesome-ciandcd) - Not specific to docker but relevant. -- [Awesome Compose](https://github.com/docker/awesome-compose) - Docker Compose samples +- [Awesome CI/CD](https://github.com/cicdops/awesome-ciandcd) - Not specific to docker but relevant. +- [Awesome Compose](https://github.com/docker/awesome-compose) - Docker Compose samples. - [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) by [@ramitsurana][ramitsurana] - [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo, by [@Friz-zy](https://github.com/Friz-zy). - [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. By [@Kickball](https://github.com/Kickball) @@ -811,9 +811,9 @@ Services to securely store your Docker images. ## Good Tips - [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** -- [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [@jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015 +- [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [@jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015. - [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/) -- [Dockerfile best practices](https://github.com/hexops/dockerfile) - This repository has best-practices for writing Dockerfiles +- [Dockerfile best practices](https://github.com/hexops/dockerfile) - This repository has best-practices for writing Dockerfiles. - [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [@King Chung Huang](https://github.com/kinghuang) - [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [@fgrehm][fgrehm] diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index 01c5beb27..1e8bd4841 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -91,7 +91,11 @@ func lintCmd() *cobra.Command { if !fix { return fmt.Errorf("lint failed with %d errors", result.Errors) } - fmt.Println("Auto-fix mode: --fix is not yet fully implemented for file rewriting") + count, err := linter.FixFile(readmePath) + if err != nil { + return fmt.Errorf("fix: %w", err) + } + fmt.Printf("Fixed %d lines in %s\n", count, readmePath) } else { fmt.Printf("OK: %d warnings\n", result.Warnings) } diff --git a/internal/linter/fixer.go b/internal/linter/fixer.go new file mode 100644 index 000000000..edb22e087 --- /dev/null +++ b/internal/linter/fixer.go @@ -0,0 +1,144 @@ +package linter + +import ( + "bufio" + "fmt" + "os" + "regexp" + "strings" + + "github.com/veggiemonk/awesome-docker/internal/parser" +) + +// attributionRe matches trailing author attributions like: +// +// by [@author](url), by [@author][ref], by @author +// +// Also handles "Created by", "Maintained by" etc. +var attributionRe = regexp.MustCompile(`\s+(?:(?:[Cc]reated|[Mm]aintained|[Bb]uilt)\s+)?by\s+\[@[^\]]+\](?:\([^)]*\)|\[[^\]]*\])\.?$`) + +// bareAttributionRe matches: by @author at end of line (no link). +var bareAttributionRe = regexp.MustCompile(`\s+by\s+@\w+\.?$`) + +// RemoveAttribution strips author attribution from a description string. +func RemoveAttribution(desc string) string { + desc = attributionRe.ReplaceAllString(desc, "") + desc = bareAttributionRe.ReplaceAllString(desc, "") + return strings.TrimSpace(desc) +} + +// FormatEntry reconstructs a markdown list line from a parsed Entry. +func FormatEntry(e parser.Entry) string { + desc := e.Description + var markers []string + for _, m := range e.Markers { + switch m { + case parser.MarkerAbandoned: + markers = append(markers, ":skull:") + case parser.MarkerPaid: + markers = append(markers, ":heavy_dollar_sign:") + case parser.MarkerWIP: + markers = append(markers, ":construction:") + } + } + if len(markers) > 0 { + desc = strings.Join(markers, " ") + " " + desc + } + return fmt.Sprintf("- [%s](%s) - %s", e.Name, e.URL, desc) +} + +// entryGroup tracks a consecutive run of entry lines. +type entryGroup struct { + startIdx int // index in lines slice + entries []parser.Entry +} + +// FixFile reads the README, fixes entries (capitalize, period, remove attribution, +// sort), and writes the result back. +func FixFile(path string) (int, error) { + f, err := os.Open(path) + if err != nil { + return 0, err + } + defer f.Close() + + var lines []string + scanner := bufio.NewScanner(f) + for scanner.Scan() { + lines = append(lines, scanner.Text()) + } + if err := scanner.Err(); err != nil { + return 0, err + } + + // Identify entry groups (consecutive parsed entry lines) + var groups []entryGroup + var current *entryGroup + fixCount := 0 + + for i, line := range lines { + entry, err := parser.ParseEntry(line, i+1) + if err != nil { + // Not an entry — close any active group + if current != nil { + groups = append(groups, *current) + current = nil + } + continue + } + if current == nil { + current = &entryGroup{startIdx: i} + } + current.entries = append(current.entries, entry) + } + if current != nil { + groups = append(groups, *current) + } + + // Process each group: fix entries, sort, replace lines + for _, g := range groups { + var fixed []parser.Entry + for _, e := range g.entries { + f := FixEntry(e) + f.Description = RemoveAttribution(f.Description) + // Re-apply period after removing attribution (it may have been stripped) + if len(f.Description) > 0 && !strings.HasSuffix(f.Description, ".") { + f.Description += "." + } + fixed = append(fixed, f) + } + + sorted := SortEntries(fixed) + + for j, e := range sorted { + newLine := FormatEntry(e) + idx := g.startIdx + j + if lines[idx] != newLine { + fixCount++ + lines[idx] = newLine + } + } + } + + if fixCount == 0 { + return 0, nil + } + + // Write back + out, err := os.Create(path) + if err != nil { + return 0, err + } + defer out.Close() + + w := bufio.NewWriter(out) + for i, line := range lines { + w.WriteString(line) + if i < len(lines)-1 { + w.WriteString("\n") + } + } + // Preserve trailing newline if original had one + w.WriteString("\n") + return fixCount, w.Flush() +} diff --git a/internal/linter/fixer_test.go b/internal/linter/fixer_test.go new file mode 100644 index 000000000..ae37ef0d8 --- /dev/null +++ b/internal/linter/fixer_test.go @@ -0,0 +1,140 @@ +package linter + +import ( + "os" + "strings" + "testing" + + "github.com/veggiemonk/awesome-docker/internal/parser" +) + +func TestRemoveAttribution(t *testing.T) { + tests := []struct { + input string + want string + }{ + { + "Tool for managing containers by [@author](https://github.com/author)", + "Tool for managing containers", + }, + { + "Tool for managing containers by [@author][author]", + "Tool for managing containers", + }, + { + "Tool for managing containers by @author", + "Tool for managing containers", + }, + { + "Analyzes resource usage. Created by [@Google][google]", + "Analyzes resource usage.", + }, + { + "A tool by [@someone](https://example.com).", + "A tool", + }, + { + "step-by-step tutorial and more resources", + "step-by-step tutorial and more resources", + }, + { + "No attribution here", + "No attribution here", + }, + } + + for _, tt := range tests { + got := RemoveAttribution(tt.input) + if got != tt.want { + t.Errorf("RemoveAttribution(%q) = %q, want %q", tt.input, got, tt.want) + } + } +} + +func TestFormatEntry(t *testing.T) { + e := parser.Entry{ + Name: "Portainer", + URL: "https://github.com/portainer/portainer", + Description: "Management UI for Docker.", + } + got := FormatEntry(e) + want := "- [Portainer](https://github.com/portainer/portainer) - Management UI for Docker." + if got != want { + t.Errorf("FormatEntry = %q, want %q", got, want) + } +} + +func TestFormatEntryWithMarkers(t *testing.T) { + e := parser.Entry{ + Name: "OldTool", + URL: "https://github.com/old/tool", + Description: "A deprecated tool.", + Markers: []parser.Marker{parser.MarkerAbandoned}, + } + got := FormatEntry(e) + want := "- [OldTool](https://github.com/old/tool) - :skull: A deprecated tool." + if got != want { + t.Errorf("FormatEntry = %q, want %q", got, want) + } +} + +func TestFixFile(t *testing.T) { + content := `# Awesome Docker + +## Tools + +- [Zebra](https://example.com/zebra) - a tool by [@author](https://github.com/author) +- [Alpha](https://example.com/alpha) - another tool + +## Other + +Some text here. +` + tmp, err := os.CreateTemp("", "readme-*.md") + if err != nil { + t.Fatal(err) + } + defer os.Remove(tmp.Name()) + + if _, err := tmp.WriteString(content); err != nil { + t.Fatal(err) + } + tmp.Close() + + count, err := FixFile(tmp.Name()) + if err != nil { + t.Fatal(err) + } + + if count == 0 { + t.Fatal("expected fixes, got 0") + } + + data, err := os.ReadFile(tmp.Name()) + if err != nil { + t.Fatal(err) + } + result := string(data) + + // Check sorting: Alpha should come before Zebra + alphaIdx := strings.Index(result, "[Alpha]") + zebraIdx := strings.Index(result, "[Zebra]") + if alphaIdx > zebraIdx { + t.Error("expected Alpha before Zebra after sort") + } + + // Check capitalization + if !strings.Contains(result, "- A tool.") { + t.Errorf("expected capitalized description, got:\n%s", result) + } + + // Check attribution removed + if strings.Contains(result, "@author") { + t.Errorf("expected attribution removed, got:\n%s", result) + } + + // Check period added + if !strings.Contains(result, "Another tool.") { + t.Errorf("expected period added, got:\n%s", result) + } +} diff --git a/internal/linter/rules.go b/internal/linter/rules.go index 03bc1b2b1..3cf8f5b60 100644 --- a/internal/linter/rules.go +++ b/internal/linter/rules.go @@ -47,7 +47,7 @@ func (i Issue) String() string { func CheckEntry(e parser.Entry) []Issue { var issues []Issue - if len(e.Description) > 0 && !unicode.IsUpper(rune(e.Description[0])) { + if first, ok := firstLetter(e.Description); ok && !unicode.IsUpper(first) { issues = append(issues, Issue{ Rule: RuleDescriptionCapital, Severity: SeverityError, @@ -106,13 +106,28 @@ func CheckDuplicates(entries []parser.Entry) []Issue { return issues } +// firstLetter returns the first unicode letter in s and true, or zero and false if none. +func firstLetter(s string) (rune, bool) { + for _, r := range s { + if unicode.IsLetter(r) { + return r, true + } + } + return 0, false +} + // FixEntry returns a copy of the entry with auto-fixable issues corrected. func FixEntry(e parser.Entry) parser.Entry { fixed := e if len(fixed.Description) > 0 { - // Capitalize first letter + // Capitalize first letter (find it, may not be at index 0) runes := []rune(fixed.Description) - runes[0] = unicode.ToUpper(runes[0]) + for i, r := range runes { + if unicode.IsLetter(r) { + runes[i] = unicode.ToUpper(r) + break + } + } fixed.Description = string(runes) // Ensure period at end diff --git a/internal/parser/parser.go b/internal/parser/parser.go index fdc0854b0..7fbb09313 100644 --- a/internal/parser/parser.go +++ b/internal/parser/parser.go @@ -9,7 +9,11 @@ import ( ) // entryRe matches: - [Name](URL) - Description -var entryRe = regexp.MustCompile(`^[-*]\s+\[([^\]]+)\]\(([^)]+)\)\s+-\s+(.+)$`) +// Also handles optional markers/text between URL and " - " separator, e.g.: +// +// - [Name](URL) :skull: - Description +// - [Name](URL) (2) :skull: - Description +var entryRe = regexp.MustCompile(`^[-*]\s+\[([^\]]+)\]\(([^)]+)\)(.*?)\s+-\s+(.+)$`) // headingRe matches markdown headings: # Title, ## Title, etc. var headingRe = regexp.MustCompile(`^(#{1,6})\s+(.+?)(?:\s*)?$`) @@ -27,12 +31,15 @@ func ParseEntry(line string, lineNum int) (Entry, error) { return Entry{}, fmt.Errorf("line %d: not a valid entry: %q", lineNum, line) } - desc := m[3] + middle := m[3] // text between URL closing paren and " - " + desc := m[4] var markers []Marker + // Extract markers from both the middle section and the description for text, marker := range markerMap { - if strings.Contains(desc, text) { + if strings.Contains(middle, text) || strings.Contains(desc, text) { markers = append(markers, marker) + middle = strings.ReplaceAll(middle, text, "") desc = strings.ReplaceAll(desc, text, "") } } From 8956f1d29249fb78d4de1d541eb197d83cc24406 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:33:06 +0100 Subject: [PATCH 242/327] chore: remove Node.js tooling, update maintenance docs Remove package.json, build.js, tests/*.mjs, .nvmrc, and the old website template. Update MAINTENANCE.md with Go CLI commands. Switch dependabot from npm to gomod. Co-Authored-By: Claude Opus 4.6 --- .github/MAINTENANCE.md | 31 +- .github/dependabot.yml | 8 +- .nvmrc | 1 - build.js | 51 --- package-lock.json | 619 ------------------------------------- package.json | 30 -- tests/common.mjs | 108 ------- tests/exclude_in_test.json | 17 - tests/health_check.mjs | 206 ------------ tests/pull_request.mjs | 69 ----- tests/test_all.mjs | 127 -------- website/index.tmpl.html | 229 -------------- 12 files changed, 22 insertions(+), 1474 deletions(-) delete mode 100644 .nvmrc delete mode 100644 build.js delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 tests/common.mjs delete mode 100644 tests/exclude_in_test.json delete mode 100644 tests/health_check.mjs delete mode 100644 tests/pull_request.mjs delete mode 100644 tests/test_all.mjs delete mode 100644 website/index.tmpl.html diff --git a/.github/MAINTENANCE.md b/.github/MAINTENANCE.md index 5fe326845..2dfa90d55 100644 --- a/.github/MAINTENANCE.md +++ b/.github/MAINTENANCE.md @@ -30,7 +30,7 @@ This guide helps maintainers keep the awesome-docker list up-to-date and high-qu 4. Remove projects that are truly abandoned/broken ### Quarterly Deep Dive (Every 3 months) -1. Run: `npm run health-check` for detailed report +1. Run: `./awesome-docker health` then `./awesome-docker report` for detailed report 2. Review project categories - are they still relevant? 3. Check for popular new Docker tools to add 4. Update documentation links if newer versions exist @@ -39,25 +39,34 @@ This guide helps maintainers keep the awesome-docker list up-to-date and high-qu 1. Remove all `:skull:` projects older than 1 year 2. Review CONTRIBUTING.md guidelines 3. Update year references in documentation -4. Check Node.js version requirements ## 🛠️ Maintenance Commands ```bash -# Test all links (requires GITHUB_TOKEN) -npm test +# Build the CLI +go build -o awesome-docker ./cmd/awesome-docker -# Test PR changes only -npm run test-pr +# Lint README formatting (add --fix to auto-fix) +./awesome-docker lint +./awesome-docker lint --fix -# Generate health report (requires GITHUB_TOKEN) -npm run health-check +# Check all links (requires GITHUB_TOKEN for GitHub repos) +./awesome-docker check + +# PR validation (lint + external link check) +./awesome-docker validate + +# Score repository health (requires GITHUB_TOKEN) +./awesome-docker health + +# Generate health report from cache +./awesome-docker report # Build the website -npm run build +./awesome-docker build -# Update dependencies -npm update +# Run tests +go test ./... ``` ## 📊 Quality Standards diff --git a/.github/dependabot.yml b/.github/dependabot.yml index a409b8462..0f049c872 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,17 +1,13 @@ version: 2 updates: - # Enable version updates for npm - - package-ecosystem: "npm" - # Look for `package.json` and `lock` files in the `root` directory + # Enable version updates for Go modules + - package-ecosystem: "gomod" directory: "/" - # Check the npm registry for updates every day (weekdays) schedule: interval: "weekly" # Enable version updates for GitHub Actions - package-ecosystem: "github-actions" - # Workflow files stored in the default location of `.github/workflows` - # You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`. directory: "/" schedule: interval: "weekly" diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index b009dfb9d..000000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -lts/* diff --git a/build.js b/build.js deleted file mode 100644 index 898314ade..000000000 --- a/build.js +++ /dev/null @@ -1,51 +0,0 @@ -const fs = require('fs-extra'); -const cheerio = require('cheerio'); -const showdown = require('showdown'); - -process.env.NODE_ENV = 'production'; - -const LOG = { - error: (...args) => console.error('❌ ERROR', { ...args }), - debug: (...args) => { - if (process.env.DEBUG) console.log('💡 DEBUG: ', { ...args }); - }, -}; -const handleFailure = (err) => { - LOG.error(err); - process.exit(1); -}; - -process.on('unhandledRejection', handleFailure); - -// --- FILES -const README = 'README.md'; -const WEBSITE_FOLDER = 'website'; -const indexTemplate = `${WEBSITE_FOLDER}/index.tmpl.html`; -const indexDestination = `${WEBSITE_FOLDER}/index.html`; - -async function processIndex() { - const converter = new showdown.Converter(); - converter.setFlavor('github'); - - try { - LOG.debug('Loading files...', { indexTemplate, README }); - const template = await fs.readFile(indexTemplate, 'utf8'); - const markdown = await fs.readFile(README, 'utf8'); - - LOG.debug('Merging files...'); - const $ = cheerio.load(template); - $('#md').append(converter.makeHtml(markdown)); - - LOG.debug('Writing index.html'); - await fs.outputFile(indexDestination, $.html(), 'utf8'); - LOG.debug('DONE 👍'); - } catch (err) { - handleFailure(err); - } -} - -async function main() { - await processIndex(); -} - -main(); diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index b41c74eeb..000000000 --- a/package-lock.json +++ /dev/null @@ -1,619 +0,0 @@ -{ - "name": "awesome-docker-website", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "awesome-docker-website", - "version": "1.0.0", - "license": "Apache-2.0", - "dependencies": { - "cheerio": "1.2.0", - "draftlog": "1.0.13", - "fs-extra": "11.3.3", - "node-fetch": "3.3.2", - "rimraf": "6.1.3", - "showdown": "^2.1.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", - "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/balanced-match": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz", - "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==", - "license": "MIT", - "dependencies": { - "jackspeak": "^4.2.3" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", - "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/cheerio": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", - "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", - "license": "MIT", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.2", - "encoding-sniffer": "^0.2.1", - "htmlparser2": "^10.1.0", - "parse5": "^7.3.0", - "parse5-htmlparser2-tree-adapter": "^7.1.0", - "parse5-parser-stream": "^7.1.2", - "undici": "^7.19.0", - "whatwg-mimetype": "^4.0.0" - }, - "engines": { - "node": ">=20.18.1" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/css-select": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", - "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/draftlog": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/draftlog/-/draftlog-1.0.13.tgz", - "integrity": "sha512-GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==", - "license": "MIT" - }, - "node_modules/encoding-sniffer": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", - "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", - "license": "MIT", - "dependencies": { - "iconv-lite": "^0.6.3", - "whatwg-encoding": "^3.1.1" - }, - "funding": { - "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "license": "MIT", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fs-extra": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", - "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/glob": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz", - "integrity": "sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.0", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/htmlparser2": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", - "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.2.2", - "entities": "^7.0.1" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jackspeak": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", - "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^9.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/lru-cache": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", - "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/minimatch": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz", - "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==", - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "deprecated": "Use your platform's native DOMException instead", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "license": "MIT", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", - "license": "MIT", - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", - "license": "MIT", - "dependencies": { - "domhandler": "^5.0.3", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-parser-stream": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", - "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", - "license": "MIT", - "dependencies": { - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", - "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "glob": "^13.0.3", - "package-json-from-dist": "^1.0.1" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/showdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", - "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==", - "license": "MIT", - "dependencies": { - "commander": "^9.0.0" - }, - "bin": { - "showdown": "bin/showdown.js" - }, - "funding": { - "type": "individual", - "url": "https://www.paypal.me/tiviesantos" - } - }, - "node_modules/undici": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.19.1.tgz", - "integrity": "sha512-Gpq0iNm5M6cQWlyHQv9MV+uOj1jWk7LpkoE5vSp/7zjb4zMdAcUD+VL5y0nH4p9EbUklq00eVIIX/XcDHzu5xg==", - "license": "MIT", - "engines": { - "node": ">=20.18.1" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "license": "MIT", - "engines": { - "node": ">=18" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index f3faf1871..000000000 --- a/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "awesome-docker-website", - "version": "1.0.0", - "description": "A curated list of Docker resources and projects Inspired by @sindresorhus and improved by amazing contributors", - "main": "build.js", - "scripts": { - "build": "rimraf ./dist/ && node build.js", - "test-pr": "node tests/pull_request.mjs", - "test": "node tests/test_all.mjs", - "health-check": "node tests/health_check.mjs" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/veggiemonk/awesome-docker.git" - }, - "author": "Julien Bisconti ", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/veggiemonk/awesome-docker/issues" - }, - "homepage": "https://github.com/veggiemonk/awesome-docker#readme", - "dependencies": { - "cheerio": "1.2.0", - "draftlog": "1.0.13", - "fs-extra": "11.3.3", - "node-fetch": "3.3.2", - "rimraf": "6.1.3", - "showdown": "^2.1.0" - } -} diff --git a/tests/common.mjs b/tests/common.mjs deleted file mode 100644 index 7afc01e5a..000000000 --- a/tests/common.mjs +++ /dev/null @@ -1,108 +0,0 @@ -import fetch from 'node-fetch'; -import { isRedirect } from 'node-fetch'; -import {readFileSync} from 'fs'; - -const LINKS_OPTIONS = { - redirect: 'manual', - headers: { - 'Content-Type': 'application/json', - 'user-agent': - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', - }, - timeout: 60000, // 1m - signal: AbortSignal.timeout(60000), -}; - -const LOG = { - error: (...args) => console.error('❌ ERROR', args), - error_string: (...args) => - console.error('❌ ERROR', JSON.stringify({ ...args }, null, ' ')), - debug: (...args) => { - if (process.env.DEBUG) console.log('>>> DEBUG: ', { ...args }); - }, - debug_string: (...args) => { - if (process.env.DEBUG) - console.log('>>> DEBUG: ', JSON.stringify({ ...args }, null, ' ')); - }, -}; - -const handleFailure = (error) => { - console.error(`${error.message}: ${error.stack}`, { error }); - process.exit(1); -}; - -process.on('unhandledRejection', handleFailure); - -const extract_all_links = (markdown) => { - // if you have a problem and you try to solve it with a regex, - // now you have two problems - // TODO: replace this mess with a mardown parser ? - const re = /(((https:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+|(?:www\.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w\-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[.!/@\-\\\w]*))?)/g; - return markdown.match(re); -}; - -const find_duplicates = (arr) => { - const hm = {}; - const dup = []; - arr.forEach((e) => { - if (hm[e]) dup.push(e); - else hm[e] = true; - }); - return dup; -}; - -const partition = (arr, func) => { - const ap = [[], []]; - arr.forEach((e) => (func(e) ? ap[0].push(e) : ap[1].push(e))); - return ap; -}; - -async function fetch_link(url) { - try { - const { headers, ok, status, statusText } = await fetch(url, LINKS_OPTIONS); - const redirect = isRedirect(status) ? { redirect: { src: url, dst: headers.get("location") } } : {}; - return [url, { ok, status: statusText, ...redirect }]; - } catch (error) { - return [url, { ok: false, status: error.message }]; - } -} - -async function batch_fetch({ arr, get, post_filter_func, BATCH_SIZE = 8 }) { - const result = []; - /* eslint-disable no-await-in-loop */ - for (let i = 0; i < arr.length; i += BATCH_SIZE) { - const batch = arr.slice(i, i + BATCH_SIZE); - LOG.debug_string({ batch }); - let res = await Promise.all(batch.map(get)); - console.log(`batch fetched...${i + BATCH_SIZE}`); - res = post_filter_func ? res.filter(post_filter_func) : res; - LOG.debug_string({ res }); - result.push(...res); - } - return result; -} - -const data = readFileSync('./tests/exclude_in_test.json') -const exclude = JSON.parse(data) -const exclude_length = exclude.length; -const exclude_from_list = (link) => { - let is_excluded = false; - for (let i = 0; i < exclude_length; i += 1) { - if (link.startsWith(exclude[i])) { - is_excluded = true; - break; - } - } - return is_excluded; -}; - -export default { - LOG, - handleFailure, - extract_all_links, - find_duplicates, - partition, - fetch_link, - batch_fetch, - exclude_from_list, -}; diff --git a/tests/exclude_in_test.json b/tests/exclude_in_test.json deleted file mode 100644 index 099e76497..000000000 --- a/tests/exclude_in_test.json +++ /dev/null @@ -1,17 +0,0 @@ -[ - "https://vimeo.com", - "https://travis-ci.org/veggiemonk/awesome-docker.svg", - "https://github.com/apps/", - "https://twitter.com", - "https://www.meetup.com/", - "https://cycle.io/", - "https://www.manning.com/", - "https://deepfence.io", - "https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg", - "https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security", - "https://www.reddit.com/r/docker/", - "https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615", - "https://www.youtube.com/playlist", - "https://www.aquasec.com", - "https://cloudsmith.com" -] diff --git a/tests/health_check.mjs b/tests/health_check.mjs deleted file mode 100644 index cb5b4d3e2..000000000 --- a/tests/health_check.mjs +++ /dev/null @@ -1,206 +0,0 @@ -import fs from 'fs-extra'; -import fetch from 'node-fetch'; -import helper from './common.mjs'; - -const README = 'README.md'; -const GITHUB_GQL_API = 'https://api.github.com/graphql'; -const TOKEN = process.env.GITHUB_TOKEN || ''; - -if (!TOKEN) { - console.error('GITHUB_TOKEN environment variable is required'); - process.exit(1); -} - -const Authorization = `token ${TOKEN}`; - -const LOG = { - info: (...args) => console.log('ℹ️ ', ...args), - warn: (...args) => console.warn('⚠️ ', ...args), - error: (...args) => console.error('❌', ...args), -}; - -// Extract GitHub repos from links -const extract_repos = (arr) => - arr - .map((e) => e.substr('https://github.com/'.length).split('/')) - .filter((r) => r.length === 2 && r[1] !== ''); - -// Generate GraphQL query to check repo health -const generate_health_query = (repos) => { - const repoQueries = repos.map(([owner, name]) => { - const safeName = `repo_${owner.replace(/(-|\.)/g, '_')}_${name.replace(/(-|\.)/g, '_')}`; - return `${safeName}: repository(owner: "${owner}", name:"${name}"){ - nameWithOwner - isArchived - pushedAt - createdAt - stargazerCount - forkCount - isDisabled - isFork - isLocked - isPrivate - }`; - }).join('\n'); - - return `query REPO_HEALTH { ${repoQueries} }`; -}; - -// Batch repos into smaller chunks for GraphQL -function* batchRepos(repos, size = 50) { - for (let i = 0; i < repos.length; i += size) { - yield repos.slice(i, i + size); - } -} - -async function checkRepoHealth(repos) { - const results = { - archived: [], - stale: [], // No commits in 2+ years - inactive: [], // No commits in 1-2 years - healthy: [], - disabled: [], - total: repos.length, - }; - - const twoYearsAgo = new Date(); - twoYearsAgo.setFullYear(twoYearsAgo.getFullYear() - 2); - - const oneYearAgo = new Date(); - oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1); - - LOG.info(`Checking health of ${repos.length} repositories...`); - - for (const batch of batchRepos(repos)) { - const query = generate_health_query(batch); - const options = { - method: 'POST', - headers: { - Authorization, - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ query }), - }; - - try { - const response = await fetch(GITHUB_GQL_API, options); - const data = await response.json(); - - if (data.errors) { - LOG.error('GraphQL errors:', data.errors); - continue; - } - - for (const [key, repo] of Object.entries(data.data)) { - if (!repo) continue; - - const pushedAt = new Date(repo.pushedAt); - const repoInfo = { - name: repo.nameWithOwner, - pushedAt: repo.pushedAt, - stars: repo.stargazerCount, - url: `https://github.com/${repo.nameWithOwner}`, - }; - - if (repo.isArchived) { - results.archived.push(repoInfo); - } else if (repo.isDisabled) { - results.disabled.push(repoInfo); - } else if (pushedAt < twoYearsAgo) { - results.stale.push(repoInfo); - } else if (pushedAt < oneYearAgo) { - results.inactive.push(repoInfo); - } else { - results.healthy.push(repoInfo); - } - } - } catch (error) { - LOG.error('Batch fetch error:', error.message); - } - - // Rate limiting - wait a bit between batches - await new Promise(resolve => setTimeout(resolve, 1000)); - } - - return results; -} - -function generateReport(results) { - const report = []; - - report.push('# 🏥 Awesome Docker - Health Check Report\n'); - report.push(`**Generated:** ${new Date().toISOString()}\n`); - report.push(`**Total Repositories:** ${results.total}\n`); - - report.push('\n## 📊 Summary\n'); - report.push(`- ✅ Healthy (updated in last year): ${results.healthy.length}`); - report.push(`- ⚠️ Inactive (1-2 years): ${results.inactive.length}`); - report.push(`- 🪦 Stale (2+ years): ${results.stale.length}`); - report.push(`- 📦 Archived: ${results.archived.length}`); - report.push(`- 🚫 Disabled: ${results.disabled.length}\n`); - - if (results.archived.length > 0) { - report.push('\n## 📦 Archived Repositories (Should mark as :skull:)\n'); - results.archived.forEach(repo => { - report.push(`- [${repo.name}](${repo.url}) - ⭐ ${repo.stars} - Last push: ${repo.pushedAt}`); - }); - } - - if (results.stale.length > 0) { - report.push('\n## 🪦 Stale Repositories (No activity in 2+ years)\n'); - results.stale.slice(0, 50).forEach(repo => { - report.push(`- [${repo.name}](${repo.url}) - ⭐ ${repo.stars} - Last push: ${repo.pushedAt}`); - }); - if (results.stale.length > 50) { - report.push(`\n... and ${results.stale.length - 50} more`); - } - } - - if (results.inactive.length > 0) { - report.push('\n## ⚠️ Inactive Repositories (No activity in 1-2 years)\n'); - report.push('_These may still be stable/complete projects - review individually_\n'); - results.inactive.slice(0, 30).forEach(repo => { - report.push(`- [${repo.name}](${repo.url}) - ⭐ ${repo.stars} - Last push: ${repo.pushedAt}`); - }); - if (results.inactive.length > 30) { - report.push(`\n... and ${results.inactive.length - 30} more`); - } - } - - return report.join('\n'); -} - -async function main() { - const markdown = await fs.readFile(README, 'utf8'); - let links = helper.extract_all_links(markdown); - - const github_links = links.filter(link => - link.startsWith('https://github.com') && - !helper.exclude_from_list(link) && - !link.includes('/issues') && - !link.includes('/pull') && - !link.includes('/wiki') && - !link.includes('#') - ); - - const repos = extract_repos(github_links); - const results = await checkRepoHealth(repos); - - const report = generateReport(results); - - // Save report - await fs.writeFile('HEALTH_REPORT.md', report); - LOG.info('Health report saved to HEALTH_REPORT.md'); - - // Also print summary to console - console.log('\n' + report); - - // Exit with error if there are actionable items - if (results.archived.length > 0 || results.stale.length > 10) { - LOG.warn(`Found ${results.archived.length} archived and ${results.stale.length} stale repos`); - process.exit(1); - } -} - -console.log('Starting health check...'); -main(); diff --git a/tests/pull_request.mjs b/tests/pull_request.mjs deleted file mode 100644 index 9ad470d83..000000000 --- a/tests/pull_request.mjs +++ /dev/null @@ -1,69 +0,0 @@ -import fs from 'fs-extra'; -import helper from './common.mjs'; - -console.log({ - DEBUG: process.env.DEBUG || false, -}); - -const README = 'README.md'; - -async function main() { - const has_error = { - show: false, - duplicates: '', - other_links_error: '', - }; - const markdown = await fs.readFile(README, 'utf8'); - let links = helper.extract_all_links(markdown); - links = links.filter((l) => !helper.exclude_from_list(l)); // exclude websites - helper.LOG.debug_string({ links }); - - console.log(`total links to check ${links.length}`); - - console.log('checking for duplicates links...'); - - const duplicates = helper.find_duplicates(links); - if (duplicates.length > 0) { - has_error.show = true; - has_error.duplicates = duplicates; - } - helper.LOG.debug_string({ duplicates }); - const [github_links, external_links] = helper.partition(links, (link) => - link.startsWith('https://github.com'), - ); - - console.log(`checking ${external_links.length} external links...`); - - const external_links_error = await helper.batch_fetch({ - arr: external_links, - get: helper.fetch_link, - post_filter_func: (x) => !x[1].ok, - BATCH_SIZE: 8, - }); - if (external_links_error.length > 0) { - has_error.show = true; - has_error.other_links_error = external_links_error; - } - - console.log(`checking ${github_links.length} GitHub repositories...`); - - console.log( - `skipping GitHub repository check. Run "npm run test" to execute them manually.`, - ); - - console.log({ - TEST_PASSED: !has_error.show, - EXTERNAL_LINKS: external_links.length, - }); - - if (has_error.show) { - helper.LOG.error_string(has_error); - process.exit(1); - } -} - -console.log('starting...'); -main().catch((error) => { - console.error('Fatal error:', error); - process.exit(1); -}); diff --git a/tests/test_all.mjs b/tests/test_all.mjs deleted file mode 100644 index 3130660b7..000000000 --- a/tests/test_all.mjs +++ /dev/null @@ -1,127 +0,0 @@ -import fs from 'fs-extra'; -import fetch from 'node-fetch'; -import helper from './common.mjs'; - -function envvar_undefined(variable_name) { - throw new Error(`${variable_name} must be defined`); -} - -console.log({ - DEBUG: process.env.DEBUG || false, -}); - -const README = 'README.md'; -const GITHUB_GQL_API = 'https://api.github.com/graphql'; -const TOKEN = process.env.GITHUB_TOKEN || envvar_undefined('GITHUB_TOKEN'); - -const Authorization = `token ${TOKEN}`; - -const make_GQL_options = (query) => ({ - method: 'POST', - headers: { - Authorization, - 'Content-Type': 'application/json', - 'user-agent': - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', - }, - body: JSON.stringify({ query }), -}); - -const extract_repos = (arr) => - arr - .map((e) => e.substr('https://github.com/'.length).split('/')) - .filter((r) => r.length === 2 && r[1] !== ''); - -const generate_GQL_query = (arr) => - `query AWESOME_REPOS{ ${arr - .map( - ([owner, name]) => - `repo_${owner.replace(/(-|\.)/g, '_')}_${name.replace( - /(-|\.)/g, - '_', - )}: repository(owner: "${owner}", name:"${name}"){ nameWithOwner isArchived } `, - ) - .join('')} }`; - -async function main() { - const has_error = { - show: false, - duplicates: '', - other_links_error: '', - github_repos: '', - }; - const markdown = await fs.readFile(README, 'utf8'); - let links = helper.extract_all_links(markdown); - links = links.filter((l) => !helper.exclude_from_list(l)); // exclude websites - helper.LOG.debug_string({ links }); - - console.log(`total links to check ${links.length}`); - - console.log('checking for duplicates links...'); - - const duplicates = helper.find_duplicates(links); - if (duplicates.length > 0) { - has_error.show = true; - has_error.duplicates = duplicates; - } - helper.LOG.debug_string({ duplicates }); - const [github_links, external_links] = helper.partition(links, (link) => - link.startsWith('https://github.com'), - ); - - console.log(`checking ${external_links.length} external links...`); - - const external_links_error = await helper.batch_fetch({ - arr: external_links, - get: helper.fetch_link, - post_filter_func: (x) => !x[1].ok, - BATCH_SIZE: 8, - }); - if (external_links_error.length > 0) { - has_error.show = true; - has_error.other_links_error = external_links_error; - } - - console.log(`checking ${github_links.length} GitHub repositories...`); - - const repos = extract_repos(github_links); - const query = generate_GQL_query(repos); - const options = make_GQL_options(query); - const gql_response = await fetch(GITHUB_GQL_API, options).then((r) => - r.json(), - ); - if (gql_response.errors) { - has_error.show = true; - has_error.github_repos = gql_response.errors; - } - - // Check for archived repositories - console.log('checking for archived repositories...'); - const archived_repos = []; - if (gql_response.data) { - for (const [key, repo] of Object.entries(gql_response.data)) { - if (repo && repo.isArchived) { - archived_repos.push(repo.nameWithOwner); - } - } - } - if (archived_repos.length > 0) { - console.warn(`⚠️ Found ${archived_repos.length} archived repositories that should be marked with :skull:`); - console.warn('Archived repos:', archived_repos); - // Don't fail the build, just warn - } - - console.log({ - TEST_PASSED: has_error.show, - GITHUB_REPOSITORY: github_links.length, - EXTERNAL_LINKS: external_links.length, - }); - - if (has_error.show) { - helper.LOG.error_string(has_error); - process.exit(1); - } -} - -console.log('starting...'); -main(); diff --git a/website/index.tmpl.html b/website/index.tmpl.html deleted file mode 100644 index 94e88e02f..000000000 --- a/website/index.tmpl.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - Awesome-docker - - - - - - - - - - - -
- - - - - From 8bb3147e4efbe3d43dfcad4b747b51c33eb99755 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:45:13 +0100 Subject: [PATCH 243/327] fix: prevent false link-check failures and harden health/workflow errors Address three review findings from the Go rewrite:\n\n- checker: update PartitionLinks to only classify HTTP(S) URLs as external links.\n This skips markdown-relative targets (for example and anchors) so\n non-URL entries are no longer sent to HTTP validation and do not produce\n deterministic "unsupported protocol scheme" failures.\n\n- health command: stop ignoring LoadHealthCache errors.\n Return a user-facing "load cache" error when the cache file is unreadable\n or invalid instead of allowing a nil cache panic on Merge.\n\n- broken links workflow: remove masked execution behavior from the link check\n step. Capture awesome-docker check exit code, set has_errors=true on any\n non-zero exit, and expose the exit code in the generated issue body so\n checker failures are visible and cannot incorrectly close the tracking issue.\n\nTest coverage updates:\n- extend checker partition test to include markdown-relative/anchor targets\n and verify they are not treated as external URLs.\n- add cache test for invalid YAML load failure. --- .github/workflows/broken_links.yml | 22 ++++++++++++++++------ cmd/awesome-docker/main.go | 5 ++++- internal/cache/cache_test.go | 16 ++++++++++++++++ internal/checker/github.go | 13 +++++++++++-- internal/checker/github_test.go | 2 ++ 5 files changed, 49 insertions(+), 9 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index 678b89e02..5cc6c77af 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -25,12 +25,21 @@ jobs: - name: Run Link Check id: link_check run: | - ./awesome-docker check > link_check_output.txt 2>&1 || true - if grep -q "broken links" link_check_output.txt; then - echo "has_errors=true" >> "$GITHUB_OUTPUT" - else - echo "has_errors=false" >> "$GITHUB_OUTPUT" + set +e + ./awesome-docker check > link_check_output.txt 2>&1 + exit_code=$? + set -e + + has_errors=false + if [ "$exit_code" -ne 0 ]; then + has_errors=true + fi + if grep -qi "broken links" link_check_output.txt; then + has_errors=true fi + + echo "has_errors=$has_errors" >> "$GITHUB_OUTPUT" + echo "check_exit_code=$exit_code" >> "$GITHUB_OUTPUT" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -41,8 +50,9 @@ jobs: script: | const fs = require('fs'); const output = fs.readFileSync('link_check_output.txt', 'utf8'); + const exitCode = '${{ steps.link_check.outputs.check_exit_code }}'; - const issueBody = `# Broken Links Detected\n\nThe weekly link check found broken or inaccessible links.\n\n\`\`\`\n${output}\n\`\`\`\n\n## Action Required\n\n- Update the URL if the resource moved\n- Remove the entry if permanently unavailable\n- Add to \`config/exclude.yaml\` if a known false positive\n\n---\n*Auto-generated by broken_links.yml*`; + const issueBody = `# Broken Links Detected\n\nThe weekly link check found broken links or the checker failed to execute cleanly.\n\nChecker exit code: ${exitCode}\n\n\`\`\`\n${output}\n\`\`\`\n\n## Action Required\n\n- Update the URL if the resource moved\n- Remove the entry if permanently unavailable\n- Add to \`config/exclude.yaml\` if a known false positive\n- Investigate checker failures when exit code is non-zero\n\n---\n*Auto-generated by broken_links.yml*`; const issues = await github.rest.issues.listForRepo({ owner: context.repo.owner, diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index 1e8bd4841..2a7b9eb08 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -204,7 +204,10 @@ func healthCmd() *cobra.Command { scored := scorer.ScoreAll(infos) cacheEntries := scorer.ToCacheEntries(scored) - hc, _ := cache.LoadHealthCache(healthCachePath) + hc, err := cache.LoadHealthCache(healthCachePath) + if err != nil { + return fmt.Errorf("load cache: %w", err) + } hc.Merge(cacheEntries) if err := cache.SaveHealthCache(healthCachePath, hc); err != nil { return fmt.Errorf("save cache: %w", err) diff --git a/internal/cache/cache_test.go b/internal/cache/cache_test.go index 03ec5144a..a8687432e 100644 --- a/internal/cache/cache_test.go +++ b/internal/cache/cache_test.go @@ -78,6 +78,22 @@ func TestLoadHealthCacheMissing(t *testing.T) { } } +func TestLoadHealthCacheInvalidYAML(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "health.yaml") + if err := os.WriteFile(path, []byte("entries:\n - url: [not yaml"), 0644); err != nil { + t.Fatal(err) + } + + hc, err := LoadHealthCache(path) + if err == nil { + t.Fatal("expected error for invalid YAML") + } + if hc != nil { + t.Fatal("expected nil cache on invalid YAML") + } +} + func TestMerge(t *testing.T) { hc := &HealthCache{ Entries: []HealthEntry{ diff --git a/internal/checker/github.go b/internal/checker/github.go index e1f1dac57..146240e70 100644 --- a/internal/checker/github.go +++ b/internal/checker/github.go @@ -3,6 +3,7 @@ package checker import ( "context" "fmt" + "net/url" "strings" "time" @@ -43,12 +44,20 @@ func ExtractGitHubRepo(url string) (owner, name string, ok bool) { return parts[0], parts[1], true } -// PartitionLinks separates URLs into GitHub repos and external links. +func isHTTPURL(raw string) bool { + u, err := url.Parse(raw) + if err != nil { + return false + } + return u.Scheme == "http" || u.Scheme == "https" +} + +// PartitionLinks separates URLs into GitHub repos and external HTTP(S) links. func PartitionLinks(urls []string) (github, external []string) { for _, url := range urls { if _, _, ok := ExtractGitHubRepo(url); ok { github = append(github, url) - } else { + } else if isHTTPURL(url) { external = append(external, url) } } diff --git a/internal/checker/github_test.go b/internal/checker/github_test.go index 7ac8fbe2e..8e751d001 100644 --- a/internal/checker/github_test.go +++ b/internal/checker/github_test.go @@ -41,6 +41,8 @@ func TestPartitionLinks(t *testing.T) { "https://example.com/tool", "https://github.com/moby/moby", "https://github.com/user/repo/issues", + "dozzle", + "#projects", } gh, ext := PartitionLinks(urls) if len(gh) != 2 { From 0bea35576a5701f69cd6c3c56ee9c4fc2e27e03a Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Fri, 27 Feb 2026 23:59:26 +0100 Subject: [PATCH 244/327] chore(readme): apply purge-archive archived-entry removals --- README.md | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) diff --git a/README.md b/README.md index acae942ff..48f239797 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc]. - [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. - [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor. -- [LogJam](https://github.com/gocardless/logjam) - :skull: Logjam is a log forwarder designed to listen on a local port, receive log entries over UDP, and forward these messages on to a log collection server (such as logstash). - [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs. - [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus]. - [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. @@ -248,14 +247,10 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Crane](https://github.com/Dataman-Cloud/crane) - Control plane based on docker built-in swarm [@Dataman-Cloud](https://github.com/Dataman-Cloud). - [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [@docker-flow][docker-flow]. - [docker rollout](https://github.com/Wowu/docker-rollout) - Zero downtime deployment for Docker Compose services. -- [gantryd](https://github.com/DevTable/gantryd) - :skull: A framework for easy management of docker-based components across machines. - [Haven](https://github.com/codeabovelab/haven-platform) - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [@codeabovelab](https://github.com/codeabovelab). -- [Helios](https://github.com/spotify/helios) - :skull: A simple platform for deploying and managing containers across an entire fleet of servers. - [Kontena](https://github.com/kontena/kontena) - :skull: The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use. - [Kubernetes](https://github.com/kubernetes/kubernetes) - Open source orchestration system for Docker containers by Google. - [ManageIQ](https://github.com/ManageIQ/manageiq) - Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ). -- [Mantl](https://github.com/mantl/mantl) - :skull: Mantl is a modern platform for rapidly deploying globally distributed services. -- [Marathon](https://github.com/mesosphere/marathon) - :skull: Marathon is a private PaaS built on Mesos. It automatically handles hardware or software failures and ensures that an app is "always on". - [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [@apache](https://mesos.apache.org/). - [Nebula](https://github.com/nebula-orchestrator) - A Docker orchestration tool designed to manage massive scale distributed clusters. - [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler. @@ -266,7 +261,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### PaaS -- [Atlantis](https://github.com/ooyala/atlantis) - :skull: Atlantis is an Open Source PaaS for HTTP applications built on Docker and written in Go. - [caprover](https://github.com/caprover/caprover) - [Previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids. - [Convox Rack](https://github.com/convox/rack) - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. - [Dcw](https://github.com/pbertera/dcw) - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels. @@ -351,12 +345,8 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Volume Management / Data - [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [@blockbridge](https://github.com/blockbridge) -- [Convoy](https://github.com/rancher/convoy) - :skull: An open-source Docker volume driver that can snapshot, backup and restore Docker volumes anywhere. By [@rancher][rancher]. -- [Docker Machine NFS](https://github.com/adlogix/docker-machine-nfs) - :skull: Activates NFS for an existing boot2docker box created through Docker Machine on OS X. -- [Docker Unison](https://github.com/leighmcculloch/docker-unison) - :skull: A docker volume container using Unison for fast two-way folder sync. Created as an alternative to slow boot2docker volumes on OS X. By [@leighmcculloch](https://github.com/leighmcculloch). - - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. - [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [@offen](https://github.com/offen) -- [Local Persist](https://github.com/MatchbookLab/local-persist) Specify a mountpoint for your local volumes (created via `docker volume create`) so that files will always persist and so you can mount to different directories in different containers. - [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers. - [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [@ContainX][containx] - [portworx](https://portworx.com) - :heavy_dollar_sign: Decentralized storage solution for persistent, shared and replicated volumes. @@ -371,7 +361,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) - Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) - [denops-docker.vim](https://github.com/skanehira/denops-docker.vim) - :skull: Manage docker containers and images in Vim. By [@skanehira]. -- [docker.vim](https://github.com/skanehira/docker.vim) - :skull: Manage docker containers and images in Vim. By [@skanehira]. - [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [@Silex](https://github.com/Silex) #### Desktop @@ -380,16 +369,12 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [Docker DB Manager](https://github.com/AbianS/docker-db-manager) - Desktop app for managing Docker database containers with visual interface and one-click operations. - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS. -- [Dockeron](https://github.com/dockeron/dockeron) - :skull: A project built on Electron + Vue.js for Docker on desktop. [@fluency03](https://github.com/fluency03). -- [DockStation](https://github.com/DockStation/dockstation) - A developer centric UI to configure, monitor, and manage services and containers [@dock_station](https://twitter.com/dock_station). -- [Lifeboat](https://github.com/jplhomer/lifeboat) - :skull: An easy way to launch Docker projects with a graphical interface on your Mac. [@jplhomer](https://github.com/jplhomer). - [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - Built on Electron. By [@felixgborrego](https://github.com/felixgborrego/). - [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [@slonopotamus](https://github.com/slonopotamus). #### Terminal ##### Terminal UI -- [ctop (1)](https://github.com/yadutaf/ctop) - :skull: A command line / text based Linux Containers monitoring tool that works just like you expect (Python). - [ctop (2)](https://github.com/bcicen/ctop) - :skull: Top-like interface for container metrics (Golang). - [d4s](https://github.com/jr-k/d4s) - A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s. - [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). @@ -398,7 +383,6 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers. - [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface,. - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters). -- [docui](https://github.com/skanehira/docui) - :skull: An interactive shell UI for managing Docker containers. Also works in Windows. By [@skanehira]. - [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [@durableprogramming](https://github.com/durableprogramming). - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers. - [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box. @@ -420,7 +404,6 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [dockersql](https://github.com/crosbymichael/dockersql) - :skull: A command line interface to query Docker using SQL. - [DVM](https://github.com/howtowhale/dvm) - Docker version manager. - [goinside](https://github.com/iamsoorena/goinside) - Get inside a running docker container easily. -- [ns-enter](https://github.com/jpetazzo/nsenter) - :skull: No more ssh, enter name spaces of container. - [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects. - [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. - [reg](https://github.com/genuinetools/reg) - :skull: Docker registry v2 command line client. @@ -434,24 +417,19 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) - Search the Docker Registry with the Dext smart launcher. By [@vutran](https://github.com/vutran). - [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) - SSH Server for Docker containers ~ Because every container should be accessible. By [@jeroenpeeters](https://github.com/jeroenpeeters). -- [dockercraft](https://github.com/docker/dockercraft) - :skull: Docker + Minecraft = Dockercraft. - [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [@spotify][spotify] - [MultiDocker](https://github.com/marty90/multidocker) - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. - [Powerline-Docker](https://github.com/adrianmo/powerline-docker) - A Powerline segment for showing the status of Docker containers. #### Web -- [Admiral](https://github.com/vmware/admiral) - :skull: Admiral™ is a highly scalable and very lightweight Container Management platform for deploying and managing container based applications. By [VMWare][vmware]. - [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers,. - [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [@wrfly](https://github.com/wrfly). - [dockemon](https://github.com/ProductiveOps/dokemon) - Docker Container Management GUI. -- [Docker Compose UI](https://github.com/francescou/docker-compose-ui) - :skull: Manage docker-compose via HTTP. docker-compose-ui runs in a Docker container, mounts the hosts docker socket and exposes a RESTful API and AngularJS GUI. - [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2. -- [Docker Registry UI](https://github.com/atcol/docker-registry-ui) - A web UI for easy private/local Docker Registry integration. - [Docker Registry UI (Joxit)](https://github.com/Joxit/docker-registry-ui) - :skull: The simplest and cleanest UI for private registries. - [docker-registry-web](https://github.com/mkuchin/docker-registry-web) - Web UI, authentication service and event recorder for private docker registry v2. - [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). -- [dockering-on-rails](https://github.com/Electrofenster/dockerding-on-rails) - :skull: Simple Web-Interface for Docker with a lot of features. - [DockerSurfer](https://github.com/Simone-Erba/DockerSurfer) - :skull: A web service for analyze and browse dependencies between Docker images in the Docker registry,. - [dockge](https://github.com/louislam/dockge) - Easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager. - [Komodo](https://github.com/mbecker20/komodo) - A tool to build and deploy software on many servers. @@ -486,7 +464,6 @@ Tools and applications that are either installed inside containers or designed t - [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container. - [lstags](https://github.com/ivanilves/lstags) - Sync Docker images across registries. - [microcheck](https://github.com/tarampampam/microcheck) - Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. -- [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker) - :skull: The NVIDIA Container Runtime for Docker. - [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. - [SparkView](https://github.com/beyondssl/sparkview-container) - Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. - [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa). @@ -502,7 +479,6 @@ Applications designed to help or simplify building **new** images - [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images. - [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit. - [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines. -- [container-diff](https://github.com/GoogleContainerTools/container-diff) - :skull: An image tool for comparing and analyzing container images. - [container-factory](https://github.com/mutable/container-factory) - Produces Docker images from tarballs of application source code. - [copy-docker-image](https://github.com/mdlavin/copy-docker-image) - Copy a Docker image between registries without a full Docker installation. - [Derrick](https://github.com/alibaba/derrick) - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [@alibaba](https://github.com/alibaba). @@ -511,22 +487,18 @@ Applications designed to help or simplify building **new** images - [docker-make](https://github.com/CtripCloud/docker-make) - Build, tag,and push a bunch of related docker images via a single command. - [docker-repack](https://github.com/orf/docker-repack) - Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. By [orf](https://github.com/orf). - [docker-replay](https://github.com/bcicen/docker-replay) - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen). -- [DockerMake](https://github.com/avirshup/DockerMake) - A reproducible Docker image build system for complex software stacks. By [@avirshup](https://github.com/avirshup). - [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. - [Dockly](https://github.com/swipely/dockly) - Dockly is a gem made to ease the pain of packaging an application in Docker. - [dockramp](https://github.com/jlhawn/dockramp) - :skull: Proof of Concept: A Client Driven Docker Image Builder. - [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [@jamesbrink](https://github.com/jamesbrink). - [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. - [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. -- [kaniko](https://github.com/GoogleContainerTools/kaniko) - Build Container Images In Kubernetes. By [@GoogleContainerTools][googlecontainertools]. -- [makisu](https://github.com/uber/makisu) - :skull: Uber's fast and flexible unprivileged image builder for Mesos and Kubernetes, with distributed cache support. By [@uber](https://github.com/uber). - [packer](https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible. - [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images. - [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. - [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi). - [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers. - [SkinnyWhale](https://github.com/djosephsen/skinnywhale) - :skull: Skinnywhale helps you make smaller (as in megabytes) Docker containers. -- [Smith](https://github.com/oracle/smith) - :skull: A Micocontainer Builder and can perform multi-stage builds after the image is built [Oracle][oracle]. - [userdef](https://github.com/theAkito/userdef) - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito]. - [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles. - [Whales](https://github.com/Gueils/whales) - A tool to automatically dockerize your applications. @@ -538,7 +510,6 @@ Applications designed to help or simplify building **new** images - [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. - [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [@PatrickHoefler](https://github.com/patrickhoefler). - [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. -- [dockmoor](https://github.com/MeneDev/dockmoor) - :skull: Manage docker image references and help to create reproducible builds with Docker. By [@MeneDev](https://github.com/MeneDev). - [Vektorcloud](https://github.com/vektorcloud) - A collection of minimal, Alpine-based Docker images. Examples by: @@ -561,7 +532,6 @@ Examples by: - [dockfmt](https://github.com/jessfraz/dockfmt) - :construction: Dockerfile formatter and parser. - [FROM:latest](https://github.com/replicatedhq/dockerfilelint) - An opinionated Dockerfile linter. - [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions;. -- [Whale-linter](https://github.com/jeromepin/whale-linter) - :skull: A simple and small Dockerfile linter written in Python3+ without dependencies. ### Metadata @@ -602,27 +572,21 @@ Services to securely store your Docker images. ### API Client - [ahab](https://github.com/instacart/ahab) - Docker event handling with Python. -- [clj-docker-client](https://github.com/into-docker/clj-docker-client) - :skull: Idiomatic Clojure client for the Docker remote API. By [@lispyclouds][lispyclouds]. - [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [@lispyclouds][lispyclouds]. - [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy. - [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [@masaeedu](https://github.com/masaeedu). -- [docker-client](https://github.com/spotify/docker-client) - :skull: Java client for the Docker remote API. By [@spotify][spotify]. - [docker-controller-bot](https://github.com/dgongut/docker-controller-bot) - Telegram bot to control docker containers. By [@dgongut](https://github.com/dgongut/). - [docker-it-scala](https://github.com/whisklabs/docker-it-scala) - Docker integration testing kit with Scala. - [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [@amihaiemil](https://github.com/amihaiemil). - [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images. -- [Docker-PowerShell](https://github.com/Microsoft/Docker-PowerShell) - :skull: PowerShell Module for Docker. - [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API. - [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [@rquackenbush](https://github.com/rquackenbush). -- [dockerfile-maven](https://github.com/spotify/dockerfile-maven) - :skull: A Maven plugin for building and pushing Docker images. - [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module. - [DoMonit](https://github.com/eon01/DoMonit) - A simple Docker Monitoring wrapper For Docker API. - [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API. - [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle. -- [libcompose](https://github.com/docker/libcompose) - :skull: Go library for Docker Compose. - [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) - :construction: Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [@greenled](https://github.com/greenled). - [sbt-docker](https://github.com/marcuslonnberg/sbt-docker) - Create Docker images directly from sbt. -- [sbt-docker-compose](https://github.com/Tapad/sbt-docker-compose) - :skull: Integrates Docker Compose functionality into sbt. ### CI/CD @@ -638,7 +602,6 @@ Services to securely store your Docker images. - [Drydock](https://github.com/CodesWhat/drydock) - Open-source container update monitoring with web dashboard, 15 registries, 16 notification triggers, and security scanning. Drop-in WUD replacement. By [@CodesWhat](https://github.com/CodesWhat). - [Gantry](https://github.com/shizunge/gantry) - Automatically update selected Docker swarm services. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. -- [GOCD-Docker](https://github.com/gocd/gocd-docker) - :skull: Go Server and Agent in docker containers to provision. - [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. - [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed. - [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) - Continuous deployment of a microservices application. @@ -653,30 +616,21 @@ Services to securely store your Docker images. ### Development Environment -- [batect](https://github.com/batect/batect) - :skull: Build and testing environments as code tool: Dockerised build and testing environments made easy. - [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [@TechnologyAdvice](https://github.com/TechnologyAdvice)). -- [Boot2Docker](https://github.com/boot2docker/boot2docker) - :skull: Docker for OSX and Windows. - [coder](https://github.com/coder/coder) - Remote development machines powered by Terraform or Docker. - [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment. -- [Crashcart](https://github.com/oracle/crashcart) - :skull: Sideload Linux binaries into a running container for troubleshooting. - [dde](https://github.com/whatwedo/dde) - :construction: Local development environment toolset based on Docker. By [@whatwedo](https://github.com/whatwedo). -- [Devstep](https://github.com/fgrehm/devstep) - :skull: Development environments powered by Docker and buildpacks. -- [Dinghy](https://github.com/codekitchen/dinghy) - :skull: An alternative way to use Docker on Mac OS X using Docker Machine with virtualbox, vmware, xhyve or parallels. - [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [@bibendi](https://github.com/bibendi). - [DLite](https://github.com/nlf/dlite) - :skull: Simplest way to use Docker on OSX, no VM needed. By [@nlf](https://github.com/nlf). - [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [@dnephin](https://github.com/dnephin). - [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [@NandoQuintana](https://github.com/nandoquintana). -- [Docker osx dev](https://github.com/brikis98/docker-osx-dev) - :skull: A productive development environment with Docker on OS X. - [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [@Ph3nol](https://github.com/ph3nol). - [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer). - [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant). -- [DockerBuildManagement](https://github.com/DIPSAS/DockerBuildManagement) - :skull: Build Management is a python application, installed with pip. The application makes it easy to manage a build system based on Docker by configuring a single yaml file describing how to build, test, run or publish a containerized solution. - [DockerDL](https://github.com/matifali/dockerdl) - Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. -- [Dusty](https://github.com/gamechanger/dusty) - :skull: Managed Docker development environments on OS X. - [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE. - [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [@EnvCLI](https://github.com/EnvCLI). - [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [@Hpsaturn](https://github.com/hpsaturn). -- [footloose](https://github.com/weaveworks/footloose) - :skull: Spin containers that look like Virtual Machines - By [@dlespiau](https://github.com/dlespiau). - [forward2docker](https://github.com/bsideup/forward2docker) - :skull: Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM. - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. - [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [@senges](https://github.com/senges). @@ -690,19 +644,14 @@ Services to securely store your Docker images. - [caduc](https://github.com/tjamet/caduc) - A docker garbage collector cleaning stuff you did not use recently. - [Docker Clean](https://github.com/ZZROTDesign/docker-clean) - A script that cleans Docker containers, images and volumes. -- [Docker-cleanup](https://github.com/meltwater/docker-cleanup) - :skull: Automatic Docker image, container and volume cleanup. - [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [@Yelp](https://github.com/Yelp). -- [docker-garby](https://github.com/konstruktoid/docker-garby) - :skull: Docker garbage collection script. -- [docker-gc](https://github.com/spotify/docker-gc) - :skull: A cron job that will delete old stopped containers and unused images. - [docker_gc](https://github.com/pdacity/docker_gc) - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service. - [Docuum](https://github.com/stepchowfun/docuum) - Least recently used (LRU) eviction of Docker images. -- [sherdock](https://github.com/rancher/sherdock) - :skull: Automatic GC of images based on regexp. ### Serverless - [AMP](https://github.com/appcelerator-archive/amp) - :skull: The open source unified CaaS/FaaS platform for Docker, batteries included. By [@Appcelerator](https://github.com/appcelerator-archive). - [Apache OpenWhisk](https://github.com/apache/openwhisk) - A serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache). -- [Docker-Lambda](https://github.com/lambci/docker-lambda) - :skull: Docker images and test runners that replicate the live AWS Lambda environment. By [@lamb-ci](https://github.com/lambci). - [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [@bfirsh](https://github.com/bfirsh). - [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions. - [Koyeb](https://www.koyeb.com/) - :heavy_dollar_sign: Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. From 0f00303939fdfb906d472d10958136bff91b2bf4 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 00:02:21 +0100 Subject: [PATCH 245/327] style(readme): sync purge-archive cleanup conventions --- README.md | 357 +++++++++++++++++++++++------------------------------- 1 file changed, 150 insertions(+), 207 deletions(-) diff --git a/README.md b/README.md index 48f239797..801a47de5 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,6 @@ All the links are monitored and tested with a home baked [Node.js script](https: - [Videos](#videos) - [Communities and Meetups](#communities-and-meetups) - [Brazilian](#brazilian) - - [Chinese](#chinese) - [English](#english) - [Russian](#russian) - [Spanish](#spanish) @@ -82,7 +81,6 @@ All the links are monitored and tested with a home baked [Node.js script](https: # Legend -- Abandoned :skull: - Beta :construction: - Monetized :heavy_dollar_sign: @@ -107,24 +105,23 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Dockerlings](https://github.com/furkan/dockerlings): Learn docker from inside your terminal, with a modern TUI and bite sized exercises (by [furkan](https://github.com/furkan)) - [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... -- [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [@dwyl](https://github.com/dwyl) +- [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [dwyl](https://github.com/dwyl) - [Learn Docker (Visually)](https://pagertree.com/learn/docker/overview) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. - [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. - [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This Spanish guide contains the use of basic docker commands with real life examples. - [Setting Python Development Environment with VScode and Docker](https://github.com/RamiKrispin/vscode-python): A step-by-step tutorial for setting up a dockerized Python development environment with VScode, Docker, and the Dev Container extension. - [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. - **Cheatsheets** by -- [@eon01](https://github.com/eon01/DockerCheatSheet) -- [@dimonomid](https://github.com/dimonomid/docker-quick-ref) (PDF) -- [@JensPiegsa](https://github.com/JensPiegsa/docker-cheat-sheet) -- [@wsargent](https://github.com/wsargent/docker-cheat-sheet) (Most popular) +- [eon01](https://github.com/eon01/DockerCheatSheet) +- [dimonomid](https://github.com/dimonomid/docker-quick-ref) (PDF) +- [JensPiegsa](https://github.com/JensPiegsa/docker-cheat-sheet) +- [wsargent](https://github.com/wsargent/docker-cheat-sheet) (Most popular) # Where to start (Windows) -- [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [@kaitoedter](https://twitter.com/kaitoedter) +- [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [kaitoedter](https://twitter.com/kaitoedter) - [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. - [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker - [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] @@ -145,55 +142,38 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Moby](https://github.com/moby/moby) - [Docker Images](https://hub.docker.com) - [Docker Compose](https://github.com/docker/compose/) (Define and run multi-container applications with Docker) -- [Docker Machine](https://github.com/docker/machine) :skull: (Machine management for a container-centric world) - [Docker Registry][distribution] (The Docker toolset to pack, ship, store, and deliver content) -- [Docker Swarm](https://github.com/docker/swarm) :skull: (Swarm: a Docker-native clustering system) ## Container Operations ### Container Composition -- [bocker](https://github.com/icy/bocker) - :skull: Write Dockerfile completely in Bash. Extensible and simple. --> Reusable. -- [bocker](https://github.com/p8952/bocker) - :skull: Docker implemented in 100 lines of bash by [p8952](https://github.com/p8952). -- [box](https://github.com/box-builder/box) - :skull: Build Dockerfile images with a mruby DSL, includes flattening and layer manipulation. -- [Capitan](https://github.com/byrnedo/capitan) - Composable docker orchestration with added scripting support by [@byrnedo]. -- [compose_plantuml](https://github.com/funkwerk/compose_plantuml) - :skull: Generate Plantuml graphs from docker-compose files. +- [Capitan](https://github.com/byrnedo/capitan) - Composable docker orchestration with added scripting support by [byrnedo]. - [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files. - [crowdr](https://github.com/polonskiy/crowdr) - Tool for managing multiple Docker containers (`docker-compose` alternative). -- [ctk](https://github.com/ctk-hq/ctk) - :construction: Visual composer for container based workloads. By [@corpulent](https://github.com/corpulent). -- [docker-compose-graphviz](https://github.com/abesto/docker-compose-graphviz) - :skull: Turn a docker-compose.yml files into Graphviz .dot files. +- [ctk](https://github.com/ctk-hq/ctk) - :construction: Visual composer for container based workloads. By [corpulent](https://github.com/corpulent). - [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) - Utility to update docker configs and secrets for deploying in a compose file. -- [draw-compose](https://github.com/Alexis-benoist/draw-compose) - :skull: Utility to draw a schema of a docker compose. - [elsy](https://github.com/cisco/elsy) - An opinionated, multi-language, build tool based on Docker and Docker Compose. - [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker. - [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes. -- [LLM Harbor](https://github.com/av/harbor) - A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [@av](https://github.com/av). -- [Maestro](https://github.com/toscanini/maestro) - :skull: Maestro provides the ability to easily launch, orchestrate and manage multiple Docker containers as single unit. -- [percheron](https://github.com/ashmckenzie/percheron) - :skull: Organise your Docker containers with muscle and intelligence. +- [LLM Harbor](https://github.com/av/harbor) - A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [av](https://github.com/av). - [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. - [podman-compose](https://github.com/containers/podman-compose) - A script to run docker-compose.yml using podman. -- [rocker](https://github.com/grammarly/rocker) - :skull: Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by [@grammarly]. -- [rocker-compose](https://github.com/grammarly/rocker-compose) - :skull: Docker composition tool with idempotency features for deploying apps composed of multiple containers. By[@grammarly]. -- [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [@roquie](https://github.com/roquie) -- [Stacker](https://github.com/stacker/stacker-cli) - :skull: Docker Compose Templates. Stacker provides an abstraction layer over Docker Compose and a better DX (developer experience). -- [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [@alexaandrov](https://github.com/alexaandrov). -- [Zodiac](https://github.com/CenturyLinkLabs/zodiac) - :skull: A lightweight tool for easy deployment and rollback of dockerized applications. By [@CenturyLinkLabs][centurylinklabs]. +- [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [roquie](https://github.com/roquie) +- [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [alexaandrov](https://github.com/alexaandrov). ### Deployment and Infrastructure - [awesome-stacks](https://github.com/ethibox/awesome-stacks) - Deploy 150+ open-source web apps with one Docker command. - [blackfish](https://gitlab.com/blackfish/blackfish) - A CoreOS VM to build swarm clusters for Dev & Production. - [BosnD](https://gitlab.com/n0r1sk/bosnd) - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments. -- [Centurion](https://github.com/newrelic/centurion) - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [@newrelic](https://github.com/newrelic). -- [Clocker](https://github.com/brooklyncentral/clocker) - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [@brooklyncentral](https://github.com/brooklyncentral). +- [Centurion](https://github.com/newrelic/centurion) - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [newrelic](https://github.com/newrelic). +- [Clocker](https://github.com/brooklyncentral/clocker) - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [brooklyncentral](https://github.com/brooklyncentral). - [Conduit](https://github.com/ehazlett/conduit) - Experimental deployment system for Docker. -- [depcon](https://github.com/ContainX/depcon) - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [@ContainX][containx]. -- [deploy](https://github.com/ttiny/deploy) - :skull: Git and Docker deployment tool. A middle ground between simple Docker composition tools and full blown cluster orchestration. +- [depcon](https://github.com/ContainX/depcon) - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [ContainX][containx]. - [docker-to-iac](https://github.com/deploystackio/docker-to-iac) - Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean. -- [dockit](https://github.com/humblec/dockit) - :skull: Do docker actions and Deploy gluster containers! By [@humblec](https://github.com/humblec). -- [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [@Hasura](https://github.com/hasura/). +- [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [Hasura](https://github.com/hasura/). - [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas). -- [Longshoreman](https://github.com/longshoreman/longshoreman) - :skull: Longshoreman automates application deployment using Docker. Just create a Docker repository (or use a service), configure the cluster using AWS or Digital Ocean (or whatever you like) and deploy applications using a Heroku-like CLI tool. By [longshoreman](https://github.com/longshoreman). - [swarm-ansible](https://github.com/LombardiDaniel/swarm-ansible?tab=readme-ov-file) - Swarm-Ansible bootstraps a production-ready swarm cluster using ansible. Comes with tools to automate CI, help monitoring and traefik pre-configured for SSL certificates and simple-auth. Comes with a private registry and more!. - [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. - [werf](https://github.com/werf/werf) - Werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps. @@ -204,21 +184,20 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Axibase Collector](https://axibase.com/docs/axibase-collector/) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. - [Checkmate](https://github.com/bluewave-labs/checkmate) - Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. -- [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [@zorak1103](https://github.com/zorak1103). +- [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [zorak1103](https://github.com/zorak1103). - [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics. - [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically. -- [Dockerana](https://github.com/dockerana/dockerana) - :skull: Packaged version of Graphite and Grafana, specifically targeted at metrics from Docker. - [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. - [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. -- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [@amerkurev](https://github.com/amerkurev). -- [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [@amir20](https://github.com/amir20). +- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [amerkurev](https://github.com/amerkurev). +- [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [amir20](https://github.com/amir20). - [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) - :heavy_dollar_sign: Monitor containerized applications without installing agents or modifying your Run commands. - [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python. -- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [@vegasbrianc][vegasbrianc]. +- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [vegasbrianc][vegasbrianc]. - [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. - [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor. - [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs. -- [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [@decryptus][decryptus]. +- [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [decryptus][decryptus]. - [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. - [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. - [Sidekick](https://github.com/runsidekick/sidekick) - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. @@ -230,44 +209,39 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Networking - [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. -- [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [@coreos][coreos]. -- [Freeflow](https://github.com/Microsoft/Freeflow) - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [@Microsoft](https://github.com/Microsoft). -- [MyIP](https://github.com/jason5ng32/MyIP) - All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [@jason5ng32](https://github.com/jason5ng32). +- [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [coreos][coreos]. +- [Freeflow](https://github.com/Microsoft/Freeflow) - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [Microsoft](https://github.com/Microsoft). +- [MyIP](https://github.com/jason5ng32/MyIP) - All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [jason5ng32](https://github.com/jason5ng32). - [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. -- [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [@jpetazzo][jpetazzo]. -- [Weave][weave] (The Docker network) :skull: - Weave creates a virtual network that connects Docker containers deployed across multiple hosts. +- [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [jpetazzo][jpetazzo]. ### Orchestration -- [Ansible Linux Docker](https://github.com/Peco602/ansible-linux-docker) - Run Ansible from a Linux container. By [@Peco602][peco602]. +- [Ansible Linux Docker](https://github.com/Peco602/ansible-linux-docker) - Run Ansible from a Linux container. By [Peco602][peco602]. - [athena](https://github.com/athena-oss/athena) - An automation platform with a plugin architecture that allows you to easily create and share services. -- [blimp](https://github.com/tubesandlube/blimp) - :skull: Uses Docker Machine to easily move a container from one Docker host to another, show containers running against all of your hosts, replicate a container across multiple hosts and more by [@defermat](https://github.com/defermat) and [@schvin](https://github.com/schvin). - [CloudSlang](https://github.com/CloudSlang/cloud-slang) - CloudSlang is a workflow engine to create Docker process automation. - [clusterdock](https://github.com/clusterdock/clusterdock) - Docker container orchestration to enable the testing of long-running cluster deployments. -- [Crane](https://github.com/Dataman-Cloud/crane) - Control plane based on docker built-in swarm [@Dataman-Cloud](https://github.com/Dataman-Cloud). -- [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [@docker-flow][docker-flow]. +- [Crane](https://github.com/Dataman-Cloud/crane) - Control plane based on docker built-in swarm [Dataman-Cloud](https://github.com/Dataman-Cloud). +- [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [docker-flow][docker-flow]. - [docker rollout](https://github.com/Wowu/docker-rollout) - Zero downtime deployment for Docker Compose services. -- [Haven](https://github.com/codeabovelab/haven-platform) - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [@codeabovelab](https://github.com/codeabovelab). -- [Kontena](https://github.com/kontena/kontena) - :skull: The developer friendly container and micro services platform. Works on any cloud, easy to setup, simple to use. +- [Haven](https://github.com/codeabovelab/haven-platform) - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [codeabovelab](https://github.com/codeabovelab). - [Kubernetes](https://github.com/kubernetes/kubernetes) - Open source orchestration system for Docker containers by Google. - [ManageIQ](https://github.com/ManageIQ/manageiq) - Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ). -- [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [@apache](https://mesos.apache.org/). +- [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [apache](https://mesos.apache.org/). - [Nebula](https://github.com/nebula-orchestrator) - A Docker orchestration tool designed to manage massive scale distributed clusters. - [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler. -- [Panamax](https://github.com/CenturyLinkLabs/panamax-ui) - :skull: An open-source project that makes deploying complex containerized apps as easy as Drag-and-Drop. - [Rancher](https://github.com/rancher/rancher) - An open source project that provides a complete platform for operating Docker in production. -- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [@RedHerdProject](https://github.com/redherd-project). -- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [@crazy-max]. +- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [RedHerdProject](https://github.com/redherd-project). +- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [crazy-max]. ### PaaS - [caprover](https://github.com/caprover/caprover) - [Previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids. - [Convox Rack](https://github.com/convox/rack) - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. - [Dcw](https://github.com/pbertera/dcw) - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels. -- [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [@progrium][progrium]). +- [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [progrium][progrium]). - [Empire](https://github.com/remind101/empire) - A PaaS built on top of Amazon EC2 Container Service (ECS). - [Exoframe](https://github.com/exoframejs/exoframe) - A self-hosted tool that allows simple one-command deployments using Docker. -- [Flynn](https://github.com/flynn/flynn) - :skull: A next generation open source platform as a service. - [Hephy Workflow](https://github.com/teamhephy/workflow) - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow). - [Krane](https://github.com/krane/krane) - Toolset for managing container workloads on remote servers. - [Nanobox](https://github.com/nanobox-io/nanobox) - :heavy_dollar_sign: An application development platform that creates local environments that can then be deployed and scaled in the cloud. @@ -277,26 +251,21 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Reverse Proxy - [BunkerWeb](https://github.com/bunkerity/bunkerweb) - Open-source and next-gen Web Application Firewall (WAF). By [Bunkerity](https://www.bunkerity.com). -- [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. By [@lucaslorentz](https://github.com/lucaslorentz). -- [caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams) - Docker upstreams module for Caddy, configured with container labels. By [@invzhi](https://github.com/invzhi). +- [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. By [lucaslorentz](https://github.com/lucaslorentz). +- [caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams) - Docker upstreams module for Caddy, configured with container labels. By [invzhi](https://github.com/invzhi). - [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. -- [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [@docker-flow][docker-flow]. -- [docker-proxy](https://github.com/silarsis/docker-proxy) - :skull: Transparent proxy for docker containers, run in a docker container. By [@silarsis](https://github.com/silarsis). -- [fabio](https://github.com/fabiolb/fabio) - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [@magiconair](https://github.com/magiconair) (Frank Schroeder). -- [h2o-proxy](https://github.com/zchee/h2o-proxy) - :skull: Automated H2O reverse proxy for Docker containers. An alternative to [jwilder/nginx-proxy][nginxproxy]. -- [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [@JrCs](https://github.com/JrCs). -- [mesh-router](https://github.com/Yundera/mesh-router) - Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [@Yundera](https://github.com/Yundera). -- [muguet](https://github.com/mattallty/muguet) - :skull: DNS Server & Reverse proxy for Docker environments. By [@mattallty](https://github.com/mattallty). -- [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [@jc21](https://github.com/jc21). -- [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [@jwilder][jwilder] -- [OpenResty Manager](https://github.com/Safe3/openresty-manager) - The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. By [@Safe3](https://github.com/Safe3/). -- [Swarm Ingress Router](https://github.com/tpbowden/swarm-ingress-router) - :skull: Route DNS names to Swarm services based on labels. By [@tpbowden](https://github.com/tpbowden/). -- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [@flavioaiello](https://github.com/flavioaiello). -- [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [@EmileVauge](https://github.com/emilevauge). +- [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [docker-flow][docker-flow]. +- [fabio](https://github.com/fabiolb/fabio) - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [magiconair](https://github.com/magiconair) (Frank Schroeder). +- [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [JrCs](https://github.com/JrCs). +- [mesh-router](https://github.com/Yundera/mesh-router) - Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [Yundera](https://github.com/Yundera). +- [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [jc21](https://github.com/jc21). +- [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [jwilder][jwilder] +- [OpenResty Manager](https://github.com/Safe3/openresty-manager) - The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. By [Safe3](https://github.com/Safe3/). +- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [flavioaiello](https://github.com/flavioaiello). +- [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [EmileVauge](https://github.com/emilevauge). ### Runtime -- [aind](https://github.com/aind-containers/aind) - :skull: AinD launches Android apps in Docker, by nesting Anbox containers inside Docker. - [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o). - [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers. - [podman](https://github.com/containers/libpod) - Libpod is a library used to create container pods. Home of Podman. @@ -305,28 +274,28 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Security -- [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles [@SongStitch](https://github.com/songStitch/). +- [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles [SongStitch](https://github.com/songStitch/). - [Anchor Enterprise](https://anchore.com/) - :heavy_dollar_sign: Analyze images for CVE vulnerabilities and against custom security policies. - [Aqua Security](https://www.aquasec.com) - :heavy_dollar_sign: Securing container-based applications from Dev to Production on any platform. - [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers. - [buildcage](https://github.com/dash14/buildcage) - Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. - [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. -- [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [@bridgecrew](https://github.com/bridgecrewio). -- [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [@dev-sec](https://github.com/dev-sec). -- [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [@coreos][coreos]. -- [crowdsec-blocklist-import](https://github.com/wolffcatskyy/crowdsec-blocklist-import) - Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [@wolffcatskyy](https://github.com/wolffcatskyy). -- [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [@eliasgranderubio](https://github.com/eliasgranderubio). -- [Deepfence Enterprise](https://deepfence.io) - :heavy_dollar_sign: Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [@deepfence][deepfence]. -- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [@deepfence][deepfence]. -- [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. By [@docker][docker]. +- [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [bridgecrew](https://github.com/bridgecrewio). +- [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [dev-sec](https://github.com/dev-sec). +- [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [coreos][coreos]. +- [crowdsec-blocklist-import](https://github.com/wolffcatskyy/crowdsec-blocklist-import) - Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [wolffcatskyy](https://github.com/wolffcatskyy). +- [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [eliasgranderubio](https://github.com/eliasgranderubio). +- [Deepfence Enterprise](https://deepfence.io) - :heavy_dollar_sign: Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. +- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. +- [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. By [docker][docker]. - [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions. -- [docker-lock](https://github.com/safe-waters/docker-lock) - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By [@safe-waters][safe-waters]. -- [dvwassl](https://github.com/Peco602/dvwassl) - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [@Peco602][peco602]. +- [docker-lock](https://github.com/safe-waters/docker-lock) - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By [safe-waters][safe-waters]. +- [dvwassl](https://github.com/Peco602/dvwassl) - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [Peco602][peco602]. - [KICS](https://github.com/checkmarx/kics) - An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx). -- [notary](https://github.com/theupdateframework/notary) - A server and a client for running and interacting with trusted collections. By [@TUF](https://github.com/theupdateframework). +- [notary](https://github.com/theupdateframework/notary) - A server and a client for running and interacting with trusted collections. By [TUF](https://github.com/theupdateframework). - [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP). - [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) - :heavy_dollar_sign: (Previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. -- [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [@dormstern](https://github.com/dormstern). +- [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [dormstern](https://github.com/dormstern). - [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. - [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. - [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) - :heavy_dollar_sign: Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. @@ -335,23 +304,22 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Service Discovery -- [docker-consul](https://github.com/gliderlabs/docker-consul) by [@progrium][progrium] +- [docker-consul](https://github.com/gliderlabs/docker-consul) by [progrium][progrium] - [docker-dns](https://github.com/bytesharky/docker-dns) - Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. `.docker`) on the host to simplify service discovery. -- [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [@etcd-io](https://github.com/etcd-io) (former part of CoreOS). +- [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [etcd-io](https://github.com/etcd-io) (former part of CoreOS). - [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices. -- [proxy](https://github.com/factorish/proxy) - :skull: Lightweight nginx based load balancer self using service discovery provided by registrator. -- [registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker by [@gliderlabs][gliderlabs] and [@progrium][progrium]. +- [registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker by [gliderlabs][gliderlabs] and [progrium][progrium]. ### Volume Management / Data -- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [@blockbridge](https://github.com/blockbridge) +- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [blockbridge](https://github.com/blockbridge) - - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. -- [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [@offen](https://github.com/offen) +- [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [offen](https://github.com/offen) - [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers. -- [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [@ContainX][containx] +- [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [ContainX][containx] - [portworx](https://portworx.com) - :heavy_dollar_sign: Decentralized storage solution for persistent, shared and replicated volumes. - [quobyte](https://www.quobyte.com/) - :heavy_dollar_sign: Fully fault-tolerant distributed file system with a docker volume driver. -- [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By[@thecodeteam](https://github.com/thecodeteam) (DELL Technologies) +- [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By[thecodeteam](https://github.com/thecodeteam) (DELL Technologies) - [Storidge](https://github.com/Storidge/quick-start) - :heavy_dollar_sign: Software-defined Persistent Storage for Kubernetes and Docker Swarm. ### User Interface @@ -360,8 +328,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) - Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) -- [denops-docker.vim](https://github.com/skanehira/denops-docker.vim) - :skull: Manage docker containers and images in Vim. By [@skanehira]. -- [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [@Silex](https://github.com/Silex) +- [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [Silex](https://github.com/Silex) #### Desktop @@ -369,68 +336,60 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [Docker DB Manager](https://github.com/AbianS/docker-db-manager) - Desktop app for managing Docker database containers with visual interface and one-click operations. - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS. -- [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - Built on Electron. By [@felixgborrego](https://github.com/felixgborrego/). -- [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [@slonopotamus](https://github.com/slonopotamus). +- [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - Built on Electron. By [felixgborrego](https://github.com/felixgborrego/). +- [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [slonopotamus](https://github.com/slonopotamus). #### Terminal ##### Terminal UI -- [ctop (2)](https://github.com/bcicen/ctop) - :skull: Top-like interface for container metrics (Golang). - [d4s](https://github.com/jr-k/d4s) - A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s. - [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). -- [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [@byrnedo] -- [Docker-mon](https://github.com/icecrime/docker-mon) - :skull: Console-based Docker monitoring. +- [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [byrnedo] - [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers. - [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface,. - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters). -- [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [@durableprogramming](https://github.com/durableprogramming). +- [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [durableprogramming](https://github.com/durableprogramming). - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers. - [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box. -- [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [@jesseduffield](https://github.com/jesseduffield). +- [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [jesseduffield](https://github.com/jesseduffield). - [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring. - [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard),. -- [sen](https://github.com/TomasTomecek/sen) - :skull: Terminal user interface for docker engine,. ##### CLI tools -- [captain](https://github.com/jenssegers/captain) - Easily start and stop docker compose projects from any directory. By [@jenssegers](https://github.com/jenssegers). -- [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [@Falldog](https://github.com/Falldog). -- [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [@exdx](https://github.com/exdx). +- [captain](https://github.com/jenssegers/captain) - Easily start and stop docker compose projects from any directory. By [jenssegers](https://github.com/jenssegers). +- [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [Falldog](https://github.com/Falldog). +- [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [exdx](https://github.com/exdx). - [dctl](https://github.com/FabienD/docker-stack) - Dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD). -- [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. By [@s0rg](https://github.com/s0rg). -- [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [@christian-korneck](https://github.com/christian-korneck). +- [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. By [s0rg](https://github.com/s0rg). +- [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [christian-korneck](https://github.com/christian-korneck). - [docker-captain](https://github.com/lucabello/docker-captain) - A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. - [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries. -- [dockersql](https://github.com/crosbymichael/dockersql) - :skull: A command line interface to query Docker using SQL. - [DVM](https://github.com/howtowhale/dvm) - Docker version manager. - [goinside](https://github.com/iamsoorena/goinside) - Get inside a running docker container easily. - [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects. - [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. -- [reg](https://github.com/genuinetools/reg) - :skull: Docker registry v2 command line client. - [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments,. - [skopeo](https://github.com/containers/skopeo) - Work with remote images registries - retrieving information, images, signing content. -- [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [@segersniels](https://github.com/segersniels). +- [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [segersniels](https://github.com/segersniels). - [tsaotun](https://github.com/qazbnm456/tsaotun) - Python based Assistance for Docker. -- [wharfee](https://github.com/j-bennet/wharfee) - :skull: Autocompletion and syntax highlighting for Docker commands. ##### Other -- [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) - Search the Docker Registry with the Dext smart launcher. By [@vutran](https://github.com/vutran). -- [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) - SSH Server for Docker containers ~ Because every container should be accessible. By [@jeroenpeeters](https://github.com/jeroenpeeters). -- [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [@spotify][spotify] +- [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) - Search the Docker Registry with the Dext smart launcher. By [vutran](https://github.com/vutran). +- [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) - SSH Server for Docker containers ~ Because every container should be accessible. By [jeroenpeeters](https://github.com/jeroenpeeters). +- [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [spotify][spotify] - [MultiDocker](https://github.com/marty90/multidocker) - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. - [Powerline-Docker](https://github.com/adrianmo/powerline-docker) - A Powerline segment for showing the status of Docker containers. #### Web - [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers,. -- [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [@wrfly](https://github.com/wrfly). +- [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [wrfly](https://github.com/wrfly). - [dockemon](https://github.com/ProductiveOps/dokemon) - Docker Container Management GUI. - [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2. -- [Docker Registry UI (Joxit)](https://github.com/Joxit/docker-registry-ui) - :skull: The simplest and cleanest UI for private registries. - [docker-registry-web](https://github.com/mkuchin/docker-registry-web) - Web UI, authentication service and event recorder for private docker registry v2. - [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). -- [DockerSurfer](https://github.com/Simone-Erba/DockerSurfer) - :skull: A web service for analyze and browse dependencies between Docker images in the Docker registry,. - [dockge](https://github.com/louislam/dockge) - Easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager. - [Komodo](https://github.com/mbecker20/komodo) - A tool to build and deploy software on many servers. - [Kubevious](https://github.com/kubevious/kubevious) - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way. @@ -441,10 +400,10 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [Rapid Dashboard](https://github.com/ozlerhakan/rapid) - A simple query dashboard to use Docker Remote API. - [Seagull](https://github.com/tobegit3hub/seagull) - Friendly Web UI to monitor docker daemon. - [Swarmpit](https://github.com/swarmpit/swarmpit) - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. -- [Swirl](https://github.com/cuigh/swirl) - Swirl is a web management tool for Docker, focused on swarm cluster By [@cuigh](https://github.com/cuigh/). +- [Swirl](https://github.com/cuigh/swirl) - Swirl is a web management tool for Docker, focused on swarm cluster By [cuigh](https://github.com/cuigh/). - [Theia](https://github.com/eclipse-theia/theia) - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. -- [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [@fr4nsys](https://github.com/fr4nsys). -- [Yacht](https://github.com/SelfhostedPro/Yacht) - :construction: A Web UI for docker that focuses on templates and ease of use in order to make deployments as easy as possible. By [@SelfhostedPro](https://github.com/SelfhostedPro). +- [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [fr4nsys](https://github.com/fr4nsys). +- [Yacht](https://github.com/SelfhostedPro/Yacht) - :construction: A Web UI for docker that focuses on templates and ease of use in order to make deployments as easy as possible. By [SelfhostedPro](https://github.com/SelfhostedPro). ## Docker Images @@ -459,7 +418,7 @@ Tools and applications that are either installed inside containers or designed t - [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system,. - [docker-alpine](https://github.com/gliderlabs/docker-alpine) - A super small Docker base image _(5MB)_ using Alpine Linux. - [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data. -- [dockerize](https://github.com/powerman/dockerize) - Utility to simplify running applications in docker containers by [@jwilder][jwilder], [@powerman][powerman]. +- [dockerize](https://github.com/powerman/dockerize) - Utility to simplify running applications in docker containers by [jwilder][jwilder], [powerman][powerman]. - [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool). - [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container. - [lstags](https://github.com/ivanilves/lstags) - Sync Docker images across registries. @@ -469,7 +428,7 @@ Tools and applications that are either installed inside containers or designed t - [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa). - [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito]. - [supercronic](https://github.com/aptible/supercronic) - Crontab-compatible job runner, designed specifically to run in containers. -- [TrivialRC](https://github.com/vorakl/TrivialRC) - A minimalistic Runtime Configuration system and process manager for containers [@vorakl](https://github.com/vorakl). +- [TrivialRC](https://github.com/vorakl/TrivialRC) - A minimalistic Runtime Configuration system and process manager for containers [vorakl](https://github.com/vorakl). ### Builder @@ -481,7 +440,7 @@ Applications designed to help or simplify building **new** images - [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines. - [container-factory](https://github.com/mutable/container-factory) - Produces Docker images from tarballs of application source code. - [copy-docker-image](https://github.com/mdlavin/copy-docker-image) - Copy a Docker image between registries without a full Docker installation. -- [Derrick](https://github.com/alibaba/derrick) - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [@alibaba](https://github.com/alibaba). +- [Derrick](https://github.com/alibaba/derrick) - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [alibaba](https://github.com/alibaba). - [dlayer](https://github.com/orisano/dlayer) - Docker layer analyzer. - [docker-companion](https://github.com/mudler/docker-companion) - A command line tool written in Golang to squash and unpack docker images. - [docker-make](https://github.com/CtripCloud/docker-make) - Build, tag,and push a bunch of related docker images via a single command. @@ -489,16 +448,14 @@ Applications designed to help or simplify building **new** images - [docker-replay](https://github.com/bcicen/docker-replay) - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen). - [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. - [Dockly](https://github.com/swipely/dockly) - Dockly is a gem made to ease the pain of packaging an application in Docker. -- [dockramp](https://github.com/jlhawn/dockramp) - :skull: Proof of Concept: A Client Driven Docker Image Builder. -- [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [@jamesbrink](https://github.com/jamesbrink). +- [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [jamesbrink](https://github.com/jamesbrink). - [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. - [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. - [packer](https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible. - [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images. - [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. -- [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [@SecSI](https://github.com/cybersecsi). +- [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [SecSI](https://github.com/cybersecsi). - [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers. -- [SkinnyWhale](https://github.com/djosephsen/skinnywhale) - :skull: Skinnywhale helps you make smaller (as in megabytes) Docker containers. - [userdef](https://github.com/theAkito/userdef) - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito]. - [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles. - [Whales](https://github.com/Gueils/whales) - A tool to automatically dockerize your applications. @@ -508,21 +465,21 @@ Applications designed to help or simplify building **new** images - [chaperone-docker](https://github.com/garywiz/chaperone-docker) - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. - [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. - [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. -- [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [@PatrickHoefler](https://github.com/patrickhoefler). +- [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [PatrickHoefler](https://github.com/patrickhoefler). - [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. - [Vektorcloud](https://github.com/vektorcloud) - A collection of minimal, Alpine-based Docker images. Examples by: -- [@0xy](https://gitlab.com/0xy/dockerfiles) -- [@arun-gupta](https://github.com/arun-gupta/docker-images) -- [@awesome-startup](https://github.com/awesome-startup/docker-compose) -- [@crosbymichael](https://github.com/crosbymichael/Dockerfiles) -- [@jessfraz](https://github.com/jessfraz/dockerfiles) -- [@komljen](https://github.com/komljen/dockerfile-examples) -- [@kstaken](https://github.com/kstaken/dockerfile-examples) -- [@ondrejmo](https://github.com/ondrejmo/Dockerfiles) -- [@vimagick](https://github.com/vimagick/dockerfiles) +- [0xy](https://gitlab.com/0xy/dockerfiles) +- [arun-gupta](https://github.com/arun-gupta/docker-images) +- [awesome-startup](https://github.com/awesome-startup/docker-compose) +- [crosbymichael](https://github.com/crosbymichael/Dockerfiles) +- [jessfraz](https://github.com/jessfraz/dockerfiles) +- [komljen](https://github.com/komljen/dockerfile-examples) +- [kstaken](https://github.com/kstaken/dockerfile-examples) +- [ondrejmo](https://github.com/ondrejmo/Dockerfiles) +- [vimagick](https://github.com/vimagick/dockerfiles) ### Linter @@ -543,7 +500,7 @@ Services to securely store your Docker images. - [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. - [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource. -- [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [@RedCoolBeans](https://github.com/RedCoolBeans). +- [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [RedCoolBeans](https://github.com/RedCoolBeans). - [cleanreg](https://github.com/hcguersoy/cleanreg) - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC. - [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/product/formats/docker-registry) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. - [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. @@ -572,20 +529,20 @@ Services to securely store your Docker images. ### API Client - [ahab](https://github.com/instacart/ahab) - Docker event handling with Python. -- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [@lispyclouds][lispyclouds]. +- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [lispyclouds][lispyclouds]. - [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy. -- [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [@masaeedu](https://github.com/masaeedu). -- [docker-controller-bot](https://github.com/dgongut/docker-controller-bot) - Telegram bot to control docker containers. By [@dgongut](https://github.com/dgongut/). +- [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [masaeedu](https://github.com/masaeedu). +- [docker-controller-bot](https://github.com/dgongut/docker-controller-bot) - Telegram bot to control docker containers. By [dgongut](https://github.com/dgongut/). - [docker-it-scala](https://github.com/whisklabs/docker-it-scala) - Docker integration testing kit with Scala. -- [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [@amihaiemil](https://github.com/amihaiemil). +- [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [amihaiemil](https://github.com/amihaiemil). - [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images. - [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API. -- [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [@rquackenbush](https://github.com/rquackenbush). +- [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [rquackenbush](https://github.com/rquackenbush). - [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module. - [DoMonit](https://github.com/eon01/DoMonit) - A simple Docker Monitoring wrapper For Docker API. - [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API. - [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle. -- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) - :construction: Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [@greenled](https://github.com/greenled). +- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) - :construction: Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [greenled](https://github.com/greenled). - [sbt-docker](https://github.com/marcuslonnberg/sbt-docker) - Create Docker images directly from sbt. ### CI/CD @@ -595,48 +552,44 @@ Services to securely store your Docker images. - [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources. - [Defang](https://github.com/DefangLabs/defang) - Deploy Docker Compose to your favorite cloud in minutes. - [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). -- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [@crazy-max]. +- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [crazy-max]. - [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. -- [Drydock](https://github.com/CodesWhat/drydock) - Open-source container update monitoring with web dashboard, 15 registries, 16 notification triggers, and security scanning. Drop-in WUD replacement. By [@CodesWhat](https://github.com/CodesWhat). +- [Drydock](https://github.com/CodesWhat/drydock) - Open-source container update monitoring with web dashboard, 15 registries, 16 notification triggers, and security scanning. Drop-in WUD replacement. By [CodesWhat](https://github.com/CodesWhat). - [Gantry](https://github.com/shizunge/gantry) - Automatically update selected Docker swarm services. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. - [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. - [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed. - [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) - Continuous deployment of a microservices application. -- [mu](https://github.com/stelligent/mu) - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [@Stelligent](https://github.com/stelligent). -- [Ouroboros](https://github.com/pyouroboros/ouroboros) - :skull: Automatically update running Docker containers with notifications. +- [mu](https://github.com/stelligent/mu) - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [Stelligent](https://github.com/stelligent). - [Popper](https://github.com/systemslab/popper) - Github actions workflow (HCL syntax) execution engine. - [Screwdriver :heavy_dollar_sign:](https://screwdriver.cd/) - Yahoo's OpenSource buildplatform designed for Continous Delivery. - [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository. - [SwarmCI](https://github.com/ghostsquad/swarmci) - Create a distributed, isolated task pipeline in your Docker Swarm. - [Tekton CD](https://tekton.dev/) - A cloud-native pipeline resource. -- [Watchtower](https://github.com/containrrr/watchtower) - :skull: Automatically update running Docker containers. ### Development Environment -- [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [@TechnologyAdvice](https://github.com/TechnologyAdvice)). +- [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [TechnologyAdvice](https://github.com/TechnologyAdvice)). - [coder](https://github.com/coder/coder) - Remote development machines powered by Terraform or Docker. - [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment. -- [dde](https://github.com/whatwedo/dde) - :construction: Local development environment toolset based on Docker. By [@whatwedo](https://github.com/whatwedo). -- [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [@bibendi](https://github.com/bibendi). -- [DLite](https://github.com/nlf/dlite) - :skull: Simplest way to use Docker on OSX, no VM needed. By [@nlf](https://github.com/nlf). -- [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [@dnephin](https://github.com/dnephin). -- [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [@NandoQuintana](https://github.com/nandoquintana). -- [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [@Ph3nol](https://github.com/ph3nol). -- [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [@EugenMayer](https://github.com/EugenMayer). +- [dde](https://github.com/whatwedo/dde) - :construction: Local development environment toolset based on Docker. By [whatwedo](https://github.com/whatwedo). +- [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [bibendi](https://github.com/bibendi). +- [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [dnephin](https://github.com/dnephin). +- [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [NandoQuintana](https://github.com/nandoquintana). +- [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [Ph3nol](https://github.com/ph3nol). +- [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [EugenMayer](https://github.com/EugenMayer). - [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant). - [DockerDL](https://github.com/matifali/dockerdl) - Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. - [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE. -- [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [@EnvCLI](https://github.com/EnvCLI). -- [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [@Hpsaturn](https://github.com/hpsaturn). -- [forward2docker](https://github.com/bsideup/forward2docker) - :skull: Utility to auto forward a port from localhost into ports on Docker containers running in a boot2docker VM. +- [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [EnvCLI](https://github.com/EnvCLI). +- [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [Hpsaturn](https://github.com/hpsaturn). - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. -- [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [@senges](https://github.com/senges). +- [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [senges](https://github.com/senges). - [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://www.thinktandem.io/). -- [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) - Container solution to compile Rust projects for Linux, macOS and Windows. By [@Peco602][peco602]. -- [uniget](https://github.com/uniget-org/cli) - Uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [@nicholasdille](https://github.com/nicholasdille). +- [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) - Container solution to compile Rust projects for Linux, macOS and Windows. By [Peco602][peco602]. +- [uniget](https://github.com/uniget-org/cli) - Uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [nicholasdille](https://github.com/nicholasdille). - [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments. - [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com). @@ -644,15 +597,14 @@ Services to securely store your Docker images. - [caduc](https://github.com/tjamet/caduc) - A docker garbage collector cleaning stuff you did not use recently. - [Docker Clean](https://github.com/ZZROTDesign/docker-clean) - A script that cleans Docker containers, images and volumes. -- [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [@Yelp](https://github.com/Yelp). +- [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [Yelp](https://github.com/Yelp). - [docker_gc](https://github.com/pdacity/docker_gc) - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service. - [Docuum](https://github.com/stepchowfun/docuum) - Least recently used (LRU) eviction of Docker images. ### Serverless -- [AMP](https://github.com/appcelerator-archive/amp) - :skull: The open source unified CaaS/FaaS platform for Docker, batteries included. By [@Appcelerator](https://github.com/appcelerator-archive). -- [Apache OpenWhisk](https://github.com/apache/openwhisk) - A serverless, open source cloud platform that executes functions in response to events at any scale. By [@apache](https://github.com/apache). -- [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [@bfirsh](https://github.com/bfirsh). +- [Apache OpenWhisk](https://github.com/apache/openwhisk) - A serverless, open source cloud platform that executes functions in response to events at any scale. By [apache](https://github.com/apache). +- [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [bfirsh](https://github.com/bfirsh). - [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions. - [Koyeb](https://www.koyeb.com/) - :heavy_dollar_sign: Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. - [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas). @@ -660,32 +612,27 @@ Services to securely store your Docker images. ### Testing -- [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [@GoogleContainerTools][googlecontainertools]. +- [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [GoogleContainerTools][googlecontainertools]. - [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. -- [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [@zuazo](https://github.com/zuazo). -- [Dockunit](https://github.com/dockunit/platform) - :skull: Docker based integration tests. A simple Node based utility for running Docker based unit tests. By [@dockunit](https://github.com/dockunit). -- [EZDC](https://github.com/lynchborg/ezdc) - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [@byrnedo]. -- [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [@chef](https://github.com/chef) +- [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [zuazo](https://github.com/zuazo). +- [EZDC](https://github.com/lynchborg/ezdc) - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [byrnedo]. +- [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [chef](https://github.com/chef) - [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/). - [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. -- [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [@alexei-led](https://github.com/alexei-led). +- [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [alexei-led](https://github.com/alexei-led). ### Wrappers - [Ansible](https://docs.ansible.com/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat. -- [Azk](https://github.com/azukiapp/azk) - :skull: Orchestrate development environments on your local machine. -- [Beluga](https://github.com/cortexmedia/Beluga) - :skull: CLI to deploy docker containers on a single server or low amount of servers. By [@cortextmedia](https://github.com/cortexmedia). - [dexec](https://github.com/docker-exec/dexec) - Command line interface written in Go for running code with Docker Exec images. - [dockerized](https://github.com/benzaita/dockerized-cli) - Seamlessly execute commands in a container. - [Dray](https://github.com/CenturyLinkLabs/dray) - An engine for managing the execution of container-based workflows. -- [FuGu](https://github.com/mattes/fugu) - :skull: Docker run wrapper without orchestration. -- [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [@artsy](https://github.com/artsy). +- [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [artsy](https://github.com/artsy). - [Preevy](https://github.com/livecycle/preevy) - Preview environments for Docker and Docker Compose projects. Test your changes and get feedback from devs and non-devs (Product/Design) by deploying pull requests to the your cloud provider as part of your CI pipeline. - [Shutit](https://github.com/ianmiell/shutit) - Tool for building and maintaining complex Docker deployments. - [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker. -- [T.A.D.S. boilerplate](https://github.com/Thomvaill/tads-boilerplate) - :skull: The power of Ansible and Terraform + the simplicity of Docker Swarm = Infrastructure as Code and DevOps best practices. By [@Thomvaill](https://github.com/Thomvaill). - [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM. -- [Turbo](https://github.com/ramitsurana/turbo) - Simple and Powerful utility for docker. By [@ramitsurana][ramitsurana]. +- [Turbo](https://github.com/ramitsurana/turbo) - Simple and Powerful utility for docker. By [ramitsurana][ramitsurana]. - [udocker](https://github.com/indigo-dc/udocker) - A tool to execute simple docker containers in batch or interactive systems without root privileges. - [Vagrant - Docker provider](https://developer.hashicorp.com/vagrant/docs/providers/docker/basics) - Good starting point is [vagrant-docker-example](https://github.com/bubenkoff/vagrant-docker-example). @@ -723,7 +670,7 @@ Services to securely store your Docker images. - [DockStat](https://github.com/its4nik/dockstat) - :construction: A full fletched (WIP) Docker management solution featuring plugin support and community integration by [its4nik](https://github.com/its4nik). - [Prometheus](https://prometheus.io/) - :heavy_dollar_sign: Open-source service monitoring system and time series database. - [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :heavy_dollar_sign: Docker Monitoring for DevOps and IT is a SaaS Pay per Host model. -- [SPM for Docker](https://github.com/sematext/sematext-agent-docker) - :heavy_dollar_sign: Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [@sematext](https://github.com/sematext). +- [SPM for Docker](https://github.com/sematext/sematext-agent-docker) - :heavy_dollar_sign: Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [sematext](https://github.com/sematext). - [Sysdig Monitor](https://www.sysdig.com/products/monitor) - :heavy_dollar_sign: Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. # Useful Resources @@ -745,26 +692,26 @@ Services to securely store your Docker images. - [Awesome CI/CD](https://github.com/cicdops/awesome-ciandcd) - Not specific to docker but relevant. - [Awesome Compose](https://github.com/docker/awesome-compose) - Docker Compose samples. -- [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) by [@ramitsurana][ramitsurana] -- [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo, by [@Friz-zy](https://github.com/Friz-zy). -- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. By [@Kickball](https://github.com/Kickball) -- [Awesome Sysadmin](https://github.com/n1trux/awesome-sysadmin) by [@n1trux](https://github.com/n1trux) -- [ToolsOfTheTrade](https://github.com/cjbarber/ToolsOfTheTrade) a list of SaaS and On premise applications by [@cjbarber](https://github.com/cjbarber) +- [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) by [ramitsurana][ramitsurana] +- [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo, by [Friz-zy](https://github.com/Friz-zy). +- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. By [Kickball](https://github.com/Kickball) +- [Awesome Sysadmin](https://github.com/n1trux/awesome-sysadmin) by [n1trux](https://github.com/n1trux) +- [ToolsOfTheTrade](https://github.com/cjbarber/ToolsOfTheTrade) a list of SaaS and On premise applications by [cjbarber](https://github.com/cjbarber) ## Demos and Examples - [An Annotated Docker Config for Frontend Web Development](https://nystudio107.com/blog/an-annotated-docker-config-for-frontend-web-development) A local development environment with Docker allows you to shrink-wrap the devops your project needs as config, making onboarding frictionless. -- [Local Docker DB](https://github.com/alexmacarthur/local-docker-db) a list of docker-compose samples for a lot of databases by [@alexmacarthur](https://github.com/alexmacarthur) +- [Local Docker DB](https://github.com/alexmacarthur/local-docker-db) a list of docker-compose samples for a lot of databases by [alexmacarthur](https://github.com/alexmacarthur) - [Webstack-micro](https://github.com/ferbs/webstack-micro) Demo web app showing how Docker Compose might be used to set up an API Gateway, centralized authentication, background workers, and WebSockets as containerized services. ## Good Tips - [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** -- [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [@jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015. +- [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015. - [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/) - [Dockerfile best practices](https://github.com/hexops/dockerfile) - This repository has best-practices for writing Dockerfiles. -- [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [@King Chung Huang](https://github.com/kinghuang) -- [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [@fgrehm][fgrehm] +- [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [King Chung Huang](https://github.com/kinghuang) +- [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [fgrehm][fgrehm] ## Raspberry Pi & ARM @@ -776,7 +723,7 @@ Services to securely store your Docker images. ## Security - [Bringing new security features to Docker](https://opensource.com/business/14/9/security-for-docker) -- [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) by [@tomwillfixit](https://twitter.com/tomwillfixit) +- [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) by [tomwillfixit](https://twitter.com/tomwillfixit) - [Docker Secure Deployment Guidelines](https://github.com/AonCyberLabs/Docker-Secure-Deployment-Guidelines) - [Docker Security - Quick Reference](https://binarymist.io/publication/docker-security/) - [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://www.slideshare.net/slideshow/docker-security-are-your-containers-tightly-secured-to-the-ship/43834790) @@ -792,20 +739,20 @@ Services to securely store your Docker images. ## Videos - [Contributing to Docker by Andrew "Tianon" Page (InfoSiftr)](https://www.youtube.com/watch?v=1jwo8-1HYYg) (34:31) -- [Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic](https://www.youtube.com/watch?v=GpHMTR7P2Ms) (3:11:06) by [@jpetazzo][jpetazzo] +- [Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic](https://www.youtube.com/watch?v=GpHMTR7P2Ms) (3:11:06) by [jpetazzo][jpetazzo] - [Docker and SELinux by Daniel Walsh from Red Hat](https://www.youtube.com/watch?v=zWGFqMuEHdw) (40:23) -- [Docker Course](https://www.youtube.com/watch?v=UZpyvK6UGFo) (Spanish) by [@pablokbs](https://github.com/pablokbs) -- [Docker for Developers](https://www.youtube.com/watch?v=FdkNAjjO5yQ) (54:26) by [@jpetazzo][jpetazzo] <== Good introduction, context, demo +- [Docker Course](https://www.youtube.com/watch?v=UZpyvK6UGFo) (Spanish) by [pablokbs](https://github.com/pablokbs) +- [Docker for Developers](https://www.youtube.com/watch?v=FdkNAjjO5yQ) (54:26) by [jpetazzo][jpetazzo] <== Good introduction, context, demo - [Docker from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxD-btrjrqdEfQHbkZnQrmqE) (1:22:01) on YouTube by Paris Nakita Kejser - [Docker: How to Use Your Own Private Registry](https://www.youtube.com/watch?v=CAewZCBT4PI) (15:01) -- [Docker in Production](https://www.youtube.com/watch?v=Glk5d5WP6MI) by [@jpetazzo][jpetazzo] (36:05) +- [Docker in Production](https://www.youtube.com/watch?v=Glk5d5WP6MI) by [jpetazzo][jpetazzo] (36:05) - [Docker Primer to Docker Compose](https://www.youtube.com/watch?v=G-s2GXGAjTk) (1:56:45) on YouTube by LoginRadius - [Docker Registry from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAz3d4Fj3edq7UcxEhdTCBm) (44:40) on YouTube by Paris Nakita Kejser - [Docker Swarm from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAY4gZd1Wl-GsLvg-e9Ap1e) (1:41:28) on YouTube by Paris Nakita Kejser - [Extending Docker with Plugins](https://vimeo.com/110835013) (15:21) -- [From Local Docker Development to Production Deployments](https://www.youtube.com/watch?v=7CZFpHUPqXw) by [@jpetazzo][jpetazzo] @ AWS re:Invent 2015 +- [From Local Docker Development to Production Deployments](https://www.youtube.com/watch?v=7CZFpHUPqXw) by [jpetazzo][jpetazzo] @ AWS re:Invent 2015 - [Immutable Infrastructure with Docker and EC2 by Michael Bryzek (Gilt)](https://www.youtube.com/watch?v=GaHzdqFithc) (42:04) -- [Introduction to Docker and containers](https://www.youtube.com/watch?v=ZVaRK10HBjo) (3:09:00) by [@jpetazzo][jpetazzo] +- [Introduction to Docker and containers](https://www.youtube.com/watch?v=ZVaRK10HBjo) (3:09:00) by [jpetazzo][jpetazzo] - [Logging on Docker: What You Need to Know](https://vimeo.com/123341629) (51:27) - [Performance Analysis of Docker - Jeremy Eder](https://www.youtube.com/watch?v=6f2E6PKYb0w) (1:36:58) - [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615) Free Udacity course @@ -817,10 +764,6 @@ Services to securely store your Docker images. - [Docker BR on Telegram](https://telegram.me/dockerbr) -## Chinese - -- [DockerOne](http://dockone.io/) Docker Community (in Chinese) by [@LiYingJie](http://dockone.io/people/%E6%9D%8E%E9%A2%96%E6%9D%B0) - ## English - [Docker Community](https://www.docker.com/community/) @@ -882,7 +825,7 @@ Services to securely store your Docker images. [vegasbrianc]: https://github.com/vegasbrianc [weave]: https://github.com/weaveworks/weave [vmware]: https://github.com/vmware -[@byrnedo]: https://github.com/byrnedo -[@crazy-max]: https://github.com/crazy-max -[@grammarly]: https://github.com/grammarly -[@skanehira]: https://github.com/skanehira +[byrnedo]: https://github.com/byrnedo +[crazy-max]: https://github.com/crazy-max +[grammarly]: https://github.com/grammarly +[skanehira]: https://github.com/skanehira From dc01ff137e4017dcd1c625cb254da2ee9841489c Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 00:06:37 +0100 Subject: [PATCH 246/327] chore(github): align contributor docs and CI with Go workflow --- .github/CODEOWNERS | 2 +- .github/CONTRIBUTING.md | 116 ++++++----------- .github/ISSUE_TEMPLATE/add-a-project.md | 9 +- .github/MAINTENANCE.md | 158 +++++++++--------------- .github/PULL_REQUEST_TEMPLATE.md | 58 +++------ .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 9 files changed, 126 insertions(+), 225 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 55d6bb2cf..ad6cfe7d5 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -*.md @veggiemonk @agebhar1 @dmitrytokarev @gesellix @mashb1t @moshloop @vegasbrianc @noteed +* @veggiemonk @agebhar1 @dmitrytokarev @gesellix @mashb1t @moshloop @vegasbrianc @noteed diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index e0fdbe2f5..92cfeab29 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,94 +1,56 @@ # Contributing to awesome-docker -First: if you're unsure or afraid of anything, just ask or submit the issue or pull request anyways. You won't be yelled at for giving your best effort. The worst that can happen is that you'll be politely asked to change something. We appreciate any sort of contributions, and don't want a wall of rules to get in the way of that. +Thanks for taking the time to contribute. -However, for those individuals who want a bit more guidance on the best way to contribute to the project, read on. This document will cover what we're looking for. By addressing all the points we're looking for, it raises the chances we can quickly merge or address your contributions. +This repository is a curated list of Docker/container resources plus a Go-based maintenance CLI used by CI. Contributions are welcome for both content and tooling. -We appreciate and recognize [all contributors](https://github.com/veggiemonk/awesome-docker/graphs/contributors). +Please read and follow the [Code of Conduct](./CODE_OF_CONDUCT.md). -Please note that this project is released with a [Contributor Code of Conduct](https://github.com/veggiemonk/awesome-docker/blob/master/.github/CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. +## What We Accept -# Table of Contents +- New high-quality Docker/container-related projects +- Fixes to descriptions, ordering, or categorization +- Removal of broken, archived, deprecated, or duplicate entries +- Improvements to the Go CLI and GitHub workflows -- [Mission Statement](#mission-statement) -- [Quality Standards](#quality-standards) -- [Contribution Guidelines](#contribution-guidelines) -- [New Collaborators](#new-collaborators) +## README Entry Rules -# Mission Statement +- Use one link per entry. +- Prefer GitHub project/repository URLs over marketing pages. +- Keep entries alphabetically sorted within their section. +- Keep descriptions concise and concrete. +- Use `:construction:` for WIP projects. +- Use `:heavy_dollar_sign:` for paid/commercial services. +- Do not use `:skull:`; archived/deprecated projects should be removed. +- Avoid duplicate links and redirect variants. -`awesome-docker` is a hand-crafted list for high-quality information about Docker and its resources. It should be related or compatible with Docker or containers. If it's just an image built on top of Docker, the project possibly belongs to other [awesome lists](https://github.com/sindresorhus/awesome). You can check the [awesome-selfhosted list](https://github.com/Kickball/awesome-selfhosted) or the [awesome-sysadmin list](https://github.com/n1trux/awesome-sysadmin) as well. -If it's a **tutorial or a blog post**, they get outdated really quickly so we don't really put them on the list but if it is on a very advanced and/or specific topic, we will consider it! -If something is awesome, share it (pull request or [issue](https://github.com/veggiemonk/awesome-docker/issues/new) or [chat](https://gitter.im/veggiemonk/awesome-docker)), let us know why and we will help you! +## Local Validation -# Quality Standards +```bash +# Build CLI +make build -Note that we can help you achieve those standards, just try your best and be brave. -We'll guide you to the best of our abilities. +# Validate README formatting and content +make lint -To be on the list, it would be **nice** if entries adhere to these quality standards: +# Run code tests (when touching Go code) +make test -- It should take less than 20 sec to find what is the project, how to install it and how to use it. -- Generally useful to the community. -- A project on GitHub with a well documented `README.md` file and plenty of examples is considered high quality. -- Clearly stating if an entry is related to (Linux) containers and not to Docker. There is an [awesome list](https://github.com/Friz-zy/awesome-linux-containers) for that. -- Clearly stating "what is it" i.e. which category it belongs to. -- Clearly stating "what is it for" i.e. mention a real problem it solves (even a small one). Make it clear for the next person. -- If it is a **WIP** (work in progress, not safe for production), please mention it. (Remember the time before Docker 1.0 ? ;-) ) -- Always put the link to the GitHub project instead of the website! +# Optional: full external checks (requires GITHUB_TOKEN) +./awesome-docker check +./awesome-docker validate +``` -To be on the list, the project **must** have: +## Pull Request Expectations -- How to setup/install the project -- How to use the project (examples) +- Keep the PR focused to one logical change. +- Explain what changed and why. +- If adding entries, include the target category. +- If removing entries, explain why (archived, broken, duplicate, etc.). +- Fill in the PR template checklist. -If your PR is not merged, we will tell you why so that you may be able to improve it. -But usually, we are pretty relaxed people, so just come and say hi, we'll figure something out together. +## Maintainer Notes -# Contribution Guidelines - -## I want to share a project, what should I do? - -- **Adding to the list:** Submit a pull request or open an [issue](https://github.com/veggiemonk/awesome-docker/issues/new) -- **Removing from the list:** Submit a pull request or open an [issue](https://github.com/veggiemonk/awesome-docker/issues/new) -- Changing something else: Submit a pull request or open an [issue](https://github.com/veggiemonk/awesome-docker/issues/new) -- Don't know what to do: Open an [issue](https://github.com/veggiemonk/awesome-docker/issues/new) or join our [chat](https://gitter.im/veggiemonk/awesome-docker), let us know what's going on. - -**join the chat:** - -[![Join the chat at https://gitter.im/veggiemonk/awesome-docker](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/veggiemonk/awesome-docker) - -or you can - -**ping us on Twitter:** - -* [veggiemonk](https://twitter.com/veggiemonk) -* [idomyowntricks](https://twitter.com/idomyowntricks) -* [gesellix](https://twitter.com/gesellix) -* [dmitrytokarev](https://twitter.com/dmitrytok) - -### Rules for Pull Request - -- Each item should be limited to one link, no duplicates, no redirection (careful with `http` vs `https`!) -- The link should be the name of the package or project or website -- Description should be clear and concise (read it out loud to be sure) -- Description should follow the link, on the same line -- Entries are listed alphabetically, please respect the order -- If you want to add more than one link, please don't do all PR on the exact same line, it usually results in conflicts and your PR cannot be automatically merged... - -Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. - -#### Your commit message will be a [tweet](https://twitter.com/awesome_docker) so write a [good commit message](https://chris.beams.io/posts/git-commit/), keep that in mind :) - -# New Collaborators - -If you just joined the team of maintainers for this repo, first of all: WELCOME! - -If it is your first time maintaining an open source project, read the [best practice guides for maintainers](https://opensource.guide/best-practices/). - -Here are the few things you need to know: -* We don't push directly to the master branch. Every entry **MUST** be reviewed! -* Each entry should be in accordance to this quality standards and contribution guidelines. -* To ask a contributor to make a change, just copy paste this message [here](https://github.com/veggiemonk/awesome-docker/pull/289#issuecomment-285608004) and change few things like names and stuff. **The main idea is to help people making great projects.** -* If something seems weird, i.e. if you don't understand what a project does or the documentation is poor, don't hesitate to (nicely) ask for more explanation (see previous point). -* Say thank you to people who contribute to this project! It may not seems like much but respect and gratitude are important :D +- Changes should be reviewed before merge. +- Prefer helping contributors improve a PR over silently rejecting it. +- Keep `.github` documentation and workflows aligned with current tooling. diff --git a/.github/ISSUE_TEMPLATE/add-a-project.md b/.github/ISSUE_TEMPLATE/add-a-project.md index 6b0333e6b..3be305e7e 100644 --- a/.github/ISSUE_TEMPLATE/add-a-project.md +++ b/.github/ISSUE_TEMPLATE/add-a-project.md @@ -1,18 +1,21 @@ --- name: Add a project about: Add a new project to the list -title: add [PROJECT_NAME] +title: "add: [PROJECT_NAME]" labels: pending-evaluation assignees: '' --- +Category: Repository link: -Description: +Description (one sentence): Author: +Why this should be in the list: +Notes (`:construction:` or `:heavy_dollar_sign:` if relevant): Or directly write it: ```markdown -[REPO](https://github.com/AUTHOR/REPO) - DESCRIPTION. By [@AUTHOR](https://github.com/AUTHOR) +[REPO](https://github.com/AUTHOR/REPO) - DESCRIPTION. By [AUTHOR](https://github.com/AUTHOR) ``` diff --git a/.github/MAINTENANCE.md b/.github/MAINTENANCE.md index 2dfa90d55..bf76ce141 100644 --- a/.github/MAINTENANCE.md +++ b/.github/MAINTENANCE.md @@ -1,125 +1,81 @@ -# 🔧 Maintenance Guide for Awesome Docker +# Maintenance Guide -This guide helps maintainers keep the awesome-docker list up-to-date and high-quality. +This guide describes how maintainers keep the list and automation healthy. -## 🤖 Automated Systems +## Automated Workflows -### Weekly Health Reports -- **What**: Checks all GitHub repositories for activity, archived status, and maintenance -- **When**: Every Monday at 9 AM UTC -- **Where**: Creates/updates a GitHub issue with label `health-report` -- **Action**: Review the report and mark abandoned projects with `:skull:` +### Pull Requests / Weekly QA (`pull_request.yml`) -### Broken Links Detection -- **What**: Tests all links in README.md for availability -- **When**: Every Saturday at 2 AM UTC + on every PR -- **Where**: Creates/updates a GitHub issue with label `broken-links` -- **Action**: Fix or remove broken links, or add to exclusion list +- Runs on pull requests and weekly on Saturday. +- Builds the Go CLI and runs `./awesome-docker validate`. -### PR Validation -- **What**: Checks for duplicate links and basic validation -- **When**: On every pull request -- **Action**: Automated - contributors see results immediately +### Broken Links Report (`broken_links.yml`) -## 📋 Manual Maintenance Tasks +- Runs weekly on Saturday and on manual trigger. +- Executes `./awesome-docker check`. +- Opens/updates a `broken-links` issue when problems are found. -### Monthly Review (First Monday of the month) -1. Check health report issue for archived/stale projects -2. Mark archived projects with `:skull:` in README.md -3. Review projects with 2+ years of inactivity -4. Remove projects that are truly abandoned/broken +### Weekly Health Report (`health_report.yml`) -### Quarterly Deep Dive (Every 3 months) -1. Run: `./awesome-docker health` then `./awesome-docker report` for detailed report -2. Review project categories - are they still relevant? -3. Check for popular new Docker tools to add -4. Update documentation links if newer versions exist +- Runs weekly on Monday and on manual trigger. +- Executes `./awesome-docker health` then `./awesome-docker report`. +- Opens/updates a `health-report` issue. -### Annual Cleanup (January) -1. Remove all `:skull:` projects older than 1 year -2. Review CONTRIBUTING.md guidelines -3. Update year references in documentation +### Deploy to GitHub Pages (`deploy-pages.yml`) -## 🛠️ Maintenance Commands +- Runs on pushes to `master` and manual trigger. +- Builds website with `./awesome-docker build` and publishes `website/`. + +## Day-to-Day Commands ```bash -# Build the CLI -go build -o awesome-docker ./cmd/awesome-docker +# Build CLI +make build + +# README lint/validation +make lint -# Lint README formatting (add --fix to auto-fix) -./awesome-docker lint +# Auto-fix formatting issues ./awesome-docker lint --fix -# Check all links (requires GITHUB_TOKEN for GitHub repos) -./awesome-docker check +# Link checks and health checks (requires GITHUB_TOKEN) +make check +make health +make report +``` -# PR validation (lint + external link check) -./awesome-docker validate +## Content Maintenance Policy -# Score repository health (requires GITHUB_TOKEN) -./awesome-docker health +- Remove archived/deprecated projects instead of tagging them. +- Remove broken links that cannot be fixed. +- Keep sections alphabetically sorted. +- Keep descriptions short and actionable. -# Generate health report from cache -./awesome-docker report +## Suggested Review Cadence -# Build the website -./awesome-docker build +### Weekly -# Run tests -go test ./... -``` +- Triage open `broken-links` and `health-report` issues. +- Merge straightforward quality PRs. + +### Monthly + +- Review sections for stale/duplicate entries. +- Re-run `check` and `health` manually if needed. + +### Quarterly + +- Review `.github` docs and templates for drift. +- Confirm workflows still match repository tooling and policies. + +## Contributor Support + +When requesting PR changes, be explicit and actionable: -## 📊 Quality Standards - -### Adding New Projects -- Must have clear documentation (README with install/usage) -- Should have activity within last 18 months -- GitHub project preferred over website links -- Must be Docker/container-related - -### Marking Projects as Abandoned -Use `:skull:` emoji when: -- Repository is archived on GitHub -- No commits for 2+ years -- Project explicitly states it's deprecated -- Maintainer confirms abandonment - -### Removing Projects -Only remove (don't just mark `:skull:`): -- Broken/404 links that can't be fixed -- Duplicate entries -- Spam or malicious projects -- Projects that never met quality standards - -## 🚨 Emergency Procedures - -### Critical Broken Links -If important resources are down: -1. Check if they moved (update URL) -2. Search for alternatives -3. Check Internet Archive for mirrors -4. Temporarily comment out until resolved - -### Spam Pull Requests -1. Close immediately -2. Mark as spam -3. Block user if repeated offense -4. Don't engage in comments - -## 📈 Metrics to Track - -- Total projects: ~731 GitHub repos -- Health status: aim for <5% archived -- Link availability: aim for >98% working -- PR merge time: aim for <7 days -- Weekly contributor engagement - -## 🤝 Getting Help - -- Open a discussion in GitHub Discussions -- Check AGENTS.md for AI assistant guidelines -- Review CONTRIBUTING.md for contributor info +- point to section/order problems, +- explain why a link should be removed, +- suggest exact wording when description quality is the issue. --- -*Last updated: 2025-10-01* +Last updated: 2026-02-27 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 2079360fe..292823ae9 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,48 +1,28 @@ - +# Summary - +Describe what changed and why. -# TLDR - * all entries sorted alphabetically (from A to Z), - * If paying service add :heavy_dollar_sign: - * If WIP add :construction: - * clear and short description of the project - * project MUST have: How to setup/install - * project MUST have: How to use (examples) - * we can help you get there :) +## Scope -## Quality Standards +- [ ] README entries/content +- [ ] Go CLI/tooling +- [ ] GitHub workflows or `.github` docs -Note that we can help you achieve those standards, just try your best and be brave. -We'll guide you to the best of our abilities. +## If This PR Adds/Edits README Entries -To be on the list, it would be **nice** if entries adhere to these quality standards: +- Category/section touched: +- New or updated project links: -- It should take less than 20 sec to find what is the project, how to install it and how to use it. -- Generally useful to the community. -- A project on GitHub with a well documented `README.md` file and plenty of examples is considered high quality. -- Clearly stating if an entry is related to (Linux) containers and not to Docker. There is an [awesome list](https://github.com/Friz-zy/awesome-linux-containers) for that. -- Clearly stating "what is it" i.e. which category it belongs to. -- Clearly stating "what is it for" i.e. mention a real problem it solves (even a small one). Make it clear for the next person. -- If it is a **WIP** (work in progress, not safe for production), please mention it. (Remember the time before Docker 1.0 ? ;-) ) -- Always put the link to the GitHub project instead of the website! +## Validation -To be on the list, the project **must** have: +- [ ] `make lint` +- [ ] `make test` (if Go code changed) +- [ ] `./awesome-docker check` (if `GITHUB_TOKEN` available) -- How to setup/install the project -- How to use the project (examples) - -If your PR is not merged, we will tell you why so that you may be able to improve it. -But usually, we are pretty relaxed people, so just come and say hi, we'll figure something out together. - -# Rules for Pull Request - -- Each item should be limited to one link, no duplicates, no redirection (careful with `http` vs `https`!) -- The link should be the name of the package or project or website -- Description should be clear and concise (read it out loud to be sure) -- Description should follow the link, on the same line -- Entries are listed alphabetically, please respect the order -- If you want to add more than one link, please don't do all PR on the exact same line, it usually results in conflicts and your PR cannot be automatically merged... - -Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. +## Contributor Checklist +- [ ] Entries are alphabetically ordered in their section +- [ ] Links point to project repositories (no duplicates or redirects) +- [ ] Descriptions are concise and specific +- [ ] Archived/deprecated projects were removed instead of tagged +- [ ] Used `:construction:` and `:heavy_dollar_sign:` only when applicable diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index 5cc6c77af..835eed249 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/setup-go@v5 with: - go-version: "1.22" + go-version-file: go.mod - name: Build run: go build -o awesome-docker ./cmd/awesome-docker diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 9d90e2583..0316332be 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/setup-go@v5 with: - go-version: "1.22" + go-version-file: go.mod - name: Build CLI run: go build -o awesome-docker ./cmd/awesome-docker diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 3a95606f1..8fc51416d 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/setup-go@v5 with: - go-version: "1.22" + go-version-file: go.mod - name: Build run: go build -o awesome-docker ./cmd/awesome-docker diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index bc613fc9f..edb1936f6 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/setup-go@v5 with: - go-version: "1.22" + go-version-file: go.mod - name: Build run: go build -o awesome-docker ./cmd/awesome-docker From 1151490ae837e9eaf74593ba2f05a68228dfa99f Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 00:12:38 +0100 Subject: [PATCH 247/327] chore(readme): remove entries still marked as under construction --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 801a47de5..45e7277bb 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Capitan](https://github.com/byrnedo/capitan) - Composable docker orchestration with added scripting support by [byrnedo]. - [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files. - [crowdr](https://github.com/polonskiy/crowdr) - Tool for managing multiple Docker containers (`docker-compose` alternative). -- [ctk](https://github.com/ctk-hq/ctk) - :construction: Visual composer for container based workloads. By [corpulent](https://github.com/corpulent). +- [ctk](https://github.com/ctk-hq/ctk) - Visual composer for container based workloads. By [corpulent](https://github.com/corpulent). - [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) - Utility to update docker configs and secrets for deploying in a compose file. - [elsy](https://github.com/cisco/elsy) - An opinionated, multi-language, build tool based on Docker and Docker Compose. - [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker. @@ -201,7 +201,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. - [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. - [Sidekick](https://github.com/runsidekick/sidekick) - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. -- [SuperVisor CPM](https://t0xic0der.medium.com/simply-accessible-container-performance-monitoring-with-supervisor-7fb47f925f3b) - :construction: A simple and accessible FOSS container performance monitoring service written in Python. - [SwarmAlert](https://github.com/gpulido/SwarmAlert) - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. - [Zabbix Docker](https://github.com/gomex/docker-zabbix) - Monitor containers automatically using zabbix LLD feature. - [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. @@ -403,7 +402,6 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [Swirl](https://github.com/cuigh/swirl) - Swirl is a web management tool for Docker, focused on swarm cluster By [cuigh](https://github.com/cuigh/). - [Theia](https://github.com/eclipse-theia/theia) - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. - [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [fr4nsys](https://github.com/fr4nsys). -- [Yacht](https://github.com/SelfhostedPro/Yacht) - :construction: A Web UI for docker that focuses on templates and ease of use in order to make deployments as easy as possible. By [SelfhostedPro](https://github.com/SelfhostedPro). ## Docker Images @@ -486,7 +484,6 @@ Examples by: - [Dockadvisor](https://github.com/deckrun/dockadvisor) - Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks. - [docker-image-size-limit](https://github.com/wemake-services/docker-image-size-limit) - A tool to keep an eye on your docker images size. - [Dockerfile Linter action](https://github.com/buddy-works/dockerfile-linter) - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. -- [dockfmt](https://github.com/jessfraz/dockfmt) - :construction: Dockerfile formatter and parser. - [FROM:latest](https://github.com/replicatedhq/dockerfilelint) - An opinionated Dockerfile linter. - [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions;. @@ -542,7 +539,7 @@ Services to securely store your Docker images. - [DoMonit](https://github.com/eon01/DoMonit) - A simple Docker Monitoring wrapper For Docker API. - [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API. - [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle. -- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) - :construction: Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [greenled](https://github.com/greenled). +- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) - Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [greenled](https://github.com/greenled). - [sbt-docker](https://github.com/marcuslonnberg/sbt-docker) - Create Docker images directly from sbt. ### CI/CD @@ -574,7 +571,7 @@ Services to securely store your Docker images. - [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [TechnologyAdvice](https://github.com/TechnologyAdvice)). - [coder](https://github.com/coder/coder) - Remote development machines powered by Terraform or Docker. - [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment. -- [dde](https://github.com/whatwedo/dde) - :construction: Local development environment toolset based on Docker. By [whatwedo](https://github.com/whatwedo). +- [dde](https://github.com/whatwedo/dde) - Local development environment toolset based on Docker. By [whatwedo](https://github.com/whatwedo). - [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [bibendi](https://github.com/bibendi). - [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [dnephin](https://github.com/dnephin). - [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [NandoQuintana](https://github.com/nandoquintana). @@ -667,7 +664,6 @@ Services to securely store your Docker images. - [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) - :heavy_dollar_sign: Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies). - [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) - [Datadog](https://www.datadoghq.com/) - :heavy_dollar_sign: Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. -- [DockStat](https://github.com/its4nik/dockstat) - :construction: A full fletched (WIP) Docker management solution featuring plugin support and community integration by [its4nik](https://github.com/its4nik). - [Prometheus](https://prometheus.io/) - :heavy_dollar_sign: Open-source service monitoring system and time series database. - [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :heavy_dollar_sign: Docker Monitoring for DevOps and IT is a SaaS Pay per Host model. - [SPM for Docker](https://github.com/sematext/sematext-agent-docker) - :heavy_dollar_sign: Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [sematext](https://github.com/sematext). From a5e2b831b50ee58f4930d6374dfd53a3fe551170 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 00:18:01 +0100 Subject: [PATCH 248/327] Remove construction tag guidance from docs and templates --- .github/CONTRIBUTING.md | 1 - .github/ISSUE_TEMPLATE/add-a-project.md | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 2 +- README.md | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 92cfeab29..f0ea65bac 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -19,7 +19,6 @@ Please read and follow the [Code of Conduct](./CODE_OF_CONDUCT.md). - Prefer GitHub project/repository URLs over marketing pages. - Keep entries alphabetically sorted within their section. - Keep descriptions concise and concrete. -- Use `:construction:` for WIP projects. - Use `:heavy_dollar_sign:` for paid/commercial services. - Do not use `:skull:`; archived/deprecated projects should be removed. - Avoid duplicate links and redirect variants. diff --git a/.github/ISSUE_TEMPLATE/add-a-project.md b/.github/ISSUE_TEMPLATE/add-a-project.md index 3be305e7e..2bdd313a9 100644 --- a/.github/ISSUE_TEMPLATE/add-a-project.md +++ b/.github/ISSUE_TEMPLATE/add-a-project.md @@ -12,7 +12,7 @@ Repository link: Description (one sentence): Author: Why this should be in the list: -Notes (`:construction:` or `:heavy_dollar_sign:` if relevant): +Notes (`:heavy_dollar_sign:` if relevant): Or directly write it: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 292823ae9..db556e1f1 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -25,4 +25,4 @@ Describe what changed and why. - [ ] Links point to project repositories (no duplicates or redirects) - [ ] Descriptions are concise and specific - [ ] Archived/deprecated projects were removed instead of tagged -- [ ] Used `:construction:` and `:heavy_dollar_sign:` only when applicable +- [ ] Used `:heavy_dollar_sign:` only when applicable diff --git a/README.md b/README.md index 45e7277bb..46a7a67c7 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,6 @@ All the links are monitored and tested with a home baked [Node.js script](https: # Legend -- Beta :construction: - Monetized :heavy_dollar_sign: # What is Docker From 67cc5caaa5e1a0e9b43dae9be99108756c0d1868 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 00:27:36 +0100 Subject: [PATCH 249/327] Update agent guide for Go tooling and refresh README links --- AGENTS.md | 67 +++++++++++++++++++++++++++++++++++++++---------------- README.md | 14 +++++------- 2 files changed, 54 insertions(+), 27 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index c557da74a..eb56acf4c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,28 +1,57 @@ # Agent Guidelines for awesome-docker ## Commands -- Build website: `npm run build` (converts README.md to website/index.html) -- Test all links: `npm test` (runs tests/test_all.mjs, requires GITHUB_TOKEN) -- Test PR changes: `npm run test-pr` (runs tests/pull_request.mjs, checks duplicates) -- Health check: `npm run health-check` (generates HEALTH_REPORT.md, requires GITHUB_TOKEN) +- Build CLI: `make build` (or `go build -o awesome-docker ./cmd/awesome-docker`) +- Run tests: `make test` (runs `go test ./internal/... -v`) +- Lint README rules: `make lint` (runs `./awesome-docker lint`) +- Auto-fix lint issues: `./awesome-docker lint --fix` +- Check links: `make check` (runs `./awesome-docker check`; `GITHUB_TOKEN` enables GitHub repo checks) +- PR validation: `./awesome-docker validate` (lint + external link checks in PR mode) +- Build website: `./awesome-docker build` (generates `website/index.html` from `README.md`) +- Health scoring: `make health` (requires `GITHUB_TOKEN`, updates `config/health_cache.yaml`) +- Generate health report: `make report` ## Architecture -- **Main content**: README.md - curated list of Docker resources (markdown format) -- **Build script**: build.js - converts README.md to HTML using showdown & cheerio -- **Tests**: tests/*.mjs - link validation, duplicate detection, URL checking -- **Website**: website/ - static site deployment folder +- **Main content**: `README.md` (curated Docker/container resources) +- **CLI entrypoint**: `cmd/awesome-docker/main.go` (Cobra commands) +- **Core packages**: + - `internal/parser` - parse README sections and entries + - `internal/linter` - alphabetical/order/format validation + autofix + - `internal/checker` - HTTP and GitHub link checks + - `internal/scorer` - repository health scoring and report generation + - `internal/cache` - exclude list and health cache read/write + - `internal/builder` - render README to website HTML from template +- **Config**: + - `config/exclude.yaml` - known link-check exclusions + - `config/website.tmpl.html` - HTML template for site generation + - `config/health_cache.yaml` - persisted health scoring cache +- **Website output**: `website/index.html` ## Code Style -- **Language**: Node.js with ES modules (.mjs) for tests, CommonJS for build.js -- **Imports**: Use ES6 imports in .mjs files, require() in .js files -- **Error handling**: Use try/catch with LOG.error() and process.exit(1) for failures -- **Logging**: Use LOG object with error/debug methods (see build.js for pattern) -- **Async**: Prefer async/await over callbacks +- **Language**: Go +- **Formatting**: Keep code `gofmt`-clean +- **Testing**: Add/adjust table-driven tests in `internal/*_test.go` for behavior changes +- **Error handling**: Return wrapped errors (`fmt.Errorf("context: %w", err)`) from command handlers +- **CLI conventions**: Keep command behavior consistent with existing Cobra commands (`lint`, `check`, `health`, `build`, `report`, `validate`) + +## CI/Automation +- **PR + weekly validation**: `.github/workflows/pull_request.yml` + - Triggers on pull requests to `master` and weekly schedule + - Builds Go CLI and runs `./awesome-docker validate` +- **Weekly broken links issue**: `.github/workflows/broken_links.yml` + - Runs `./awesome-docker check` + - Opens/updates `broken-links` issue when failures are found +- **Weekly health report issue**: `.github/workflows/health_report.yml` + - Runs `./awesome-docker health` then `./awesome-docker report` + - Opens/updates `health-report` issue +- **GitHub Pages deploy**: `.github/workflows/deploy-pages.yml` + - On push to `master`, builds CLI, runs `./awesome-docker build`, deploys `website/` ## Content Guidelines (from CONTRIBUTING.md) -- Link to GitHub projects, not websites -- Entries are listed alphabetically (from A to Z) -- Entries must be Docker/container-related with clear documentation -- Include project description, installation, and usage examples -- Mark WIP projects explicitly -- Avoid outdated tutorials/blog posts unless advanced/specific +- Use one link per entry +- Prefer project/repository URLs over marketing pages +- Keep entries alphabetically ordered within each section +- Keep descriptions concise and concrete +- Use `:heavy_dollar_sign:` only for paid/commercial services +- Remove archived/deprecated projects instead of tagging them +- Avoid duplicate links and redirect variants diff --git a/README.md b/README.md index 46a7a67c7..00818bdf3 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Monitoring - [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. -- [Axibase Collector](https://axibase.com/docs/axibase-collector/) - Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems. - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. - [Checkmate](https://github.com/bluewave-labs/checkmate) - Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. - [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [zorak1103](https://github.com/zorak1103). @@ -190,7 +189,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. - [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [amerkurev](https://github.com/amerkurev). - [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [amir20](https://github.com/amir20). -- [Dynatrace](https://www.dynatrace.com/solutions/container-monitoring/) - :heavy_dollar_sign: Monitor containerized applications without installing agents or modifying your Run commands. +- [Dynatrace](https://docs.dynatrace.com/docs/observe/infrastructure-observability/container-platform-monitoring) - :heavy_dollar_sign: Monitor containerized applications without installing agents or modifying your Run commands. - [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python. - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [vegasbrianc][vegasbrianc]. - [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. @@ -488,7 +487,7 @@ Examples by: ### Metadata -- [opencontainer](https://github.com/opencontainers/image-spec/blob/master/annotations.md) - A convention and shared namespace for Docker labels defined by OCI Image Spec. +- [opencontainer](https://github.com/opencontainers/image-spec/blob/main/annotations.md) - A convention and shared namespace for Docker labels defined by OCI Image Spec. ### Registry @@ -609,7 +608,7 @@ Services to securely store your Docker images. ### Testing - [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [GoogleContainerTools][googlecontainertools]. -- [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. +- [dgoss](https://github.com/goss-org/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. - [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [zuazo](https://github.com/zuazo). - [EZDC](https://github.com/lynchborg/ezdc) - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [byrnedo]. - [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [chef](https://github.com/chef) @@ -619,7 +618,7 @@ Services to securely store your Docker images. ### Wrappers -- [Ansible](https://docs.ansible.com/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat. +- [Ansible](https://docs.ansible.com/projects/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat. - [dexec](https://github.com/docker-exec/dexec) - Command line interface written in Go for running code with Docker Exec images. - [dockerized](https://github.com/benzaita/dockerized-cli) - Seamlessly execute commands in a container. - [Dray](https://github.com/CenturyLinkLabs/dray) - An engine for managing the execution of container-based workflows. @@ -638,7 +637,7 @@ Services to securely store your Docker images. - [CircleCI](https://circleci.com/) - :heavy_dollar_sign: Push or pull Docker images from your build environment, or build and run containers right on CircleCI. - [CodeFresh](https://codefresh.io) - :heavy_dollar_sign: Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. -- [CodeShip](https://www.cloudbees.com/products/codeship) - :heavy_dollar_sign: Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. +- [CodeShip](https://www.cloudbees.com/blog/how-to-run-codeship-parallel-test-pipelines-efficiently-for-optimal-ci-parallelization) - :heavy_dollar_sign: Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. - [ConcourseCI](https://concourse-ci.org) - :heavy_dollar_sign: A CI SaaS platform for developers and DevOps teams pipeline oriented. - [Semaphore CI](https://semaphore.io/) :heavy_dollar_sign: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. - [TravisCI](https://www.travis-ci.com/) - :heavy_dollar_sign: A Free github projects continuous integration Saas platform for developers and Devops. @@ -650,11 +649,10 @@ Services to securely store your Docker images. - [Azure AKS](https://azure.microsoft.com/en-us/products/kubernetes-service/) - :heavy_dollar_sign: Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. - [Cloud 66](https://www.cloud66.com) - :heavy_dollar_sign: Full-stack hosted container management as a service. - [Giant Swarm](https://www.giantswarm.io/) - :heavy_dollar_sign: Simple microservice infrastructure. Deploy your containers in seconds. -- [Google Container Engine](https://cloud.google.com/kubernetes-engine/docs/) - :heavy_dollar_sign: Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. +- [Google Container Engine](https://docs.cloud.google.com/kubernetes-engine/docs) - :heavy_dollar_sign: Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. - [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) - :heavy_dollar_sign: Integrated platform for data and containers built on Apache Mesos. - [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) - :heavy_dollar_sign: Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud. - [Triton](https://www.joyent.com/) - :heavy_dollar_sign: Elastic container-native infrastructure by Joyent. -- [Virtuozzo Application Platform](https://www.virtuozzo.com/application-platform-partners/) - :heavy_dollar_sign: Deploy and manage your projects with turnkey PaaS across a wide network of reliable service providers. ### Monitoring Services From ca2246667c84c69eb972fb4d771edec39487ac30 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 00:46:59 +0100 Subject: [PATCH 250/327] Harden health checks and refresh GitHub health cache --- cmd/awesome-docker/main.go | 6 + config/health_cache.yaml | 2122 +++++++++++++++++++++++++++++++ internal/checker/github.go | 41 +- internal/checker/github_test.go | 24 + 4 files changed, 2186 insertions(+), 7 deletions(-) create mode 100644 config/health_cache.yaml diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index 2a7b9eb08..e9267abb4 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -200,6 +200,12 @@ func healthCmd() *cobra.Command { for _, e := range errs { fmt.Printf(" error: %v\n", e) } + if len(infos) == 0 { + if len(errs) > 0 { + return fmt.Errorf("failed to fetch GitHub metadata for all repositories (%d errors); check network/DNS and GITHUB_TOKEN", len(errs)) + } + return fmt.Errorf("no GitHub repositories found in README") + } scored := scorer.ScoreAll(infos) cacheEntries := scorer.ToCacheEntries(scored) diff --git a/config/health_cache.yaml b/config/health_cache.yaml new file mode 100644 index 000000000..bc130fddd --- /dev/null +++ b/config/health_cache.yaml @@ -0,0 +1,2122 @@ +entries: + - url: https://github.com/byrnedo/capitan + name: byrnedo/capitan + status: stale + stars: 31 + last_push: 2017-06-07T09:46:56Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/magicmark/composerize + name: magicmark/composerize + status: healthy + stars: 3701 + forks: 247 + last_push: 2026-01-17T12:14:28Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/polonskiy/crowdr + name: polonskiy/crowdr + status: stale + stars: 98 + forks: 9 + last_push: 2020-10-09T07:57:52Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ctk-hq/ctk + name: ctk-hq/ctk + status: healthy + stars: 298 + forks: 27 + last_push: 2026-02-15T22:53:00Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/sudo-bmitch/docker-config-update + name: sudo-bmitch/docker-config-update + status: stale + stars: 51 + forks: 8 + last_push: 2023-03-30T13:03:12Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/cisco/elsy + name: cisco/elsy + status: stale + stars: 80 + forks: 22 + last_push: 2022-01-18T13:38:49Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/cloud66-oss/habitus + name: cloud66-oss/habitus + status: stale + stars: 1390 + forks: 82 + last_push: 2020-02-05T17:10:30Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/kubernetes/kompose + name: kubernetes/kompose + status: healthy + stars: 10459 + forks: 793 + last_push: 2026-02-27T14:23:27Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/av/harbor + name: av/harbor + status: healthy + stars: 2470 + forks: 164 + last_push: 2026-02-15T00:04:21Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ihucos/plash + name: ihucos/plash + status: healthy + stars: 387 + forks: 15 + last_push: 2025-03-20T15:47:21Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/containers/podman-compose + name: containers/podman-compose + status: healthy + stars: 5973 + forks: 576 + last_push: 2026-02-26T23:05:51Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/alexaandrov/stitchocker + name: alexaandrov/stitchocker + status: inactive + stars: 30 + forks: 3 + last_push: 2024-03-14T13:50:30Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ethibox/awesome-stacks + name: ethibox/awesome-stacks + status: healthy + stars: 1245 + forks: 162 + last_push: 2026-02-25T16:10:25Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/newrelic/centurion + name: newrelic/centurion + status: archived + stars: 1757 + forks: 112 + last_push: 2025-09-11T20:47:50Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/brooklyncentral/clocker + name: brooklyncentral/clocker + status: stale + stars: 429 + forks: 65 + last_push: 2018-10-24T15:29:12Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ehazlett/conduit + name: ehazlett/conduit + status: stale + stars: 108 + forks: 11 + last_push: 2016-11-07T18:20:56Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ContainX/depcon + name: ContainX/depcon + status: stale + stars: 93 + forks: 15 + last_push: 2018-06-05T04:40:23Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/deploystackio/docker-to-iac + name: deploystackio/docker-to-iac + status: healthy + stars: 23 + last_push: 2026-02-25T22:52:42Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/hasura/gitkube + name: hasura/gitkube + status: stale + stars: 3850 + forks: 203 + last_push: 2023-08-31T07:48:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/grafeas/grafeas + name: grafeas/grafeas + status: healthy + stars: 1564 + forks: 307 + last_push: 2026-02-13T21:53:15Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/LombardiDaniel/swarm-ansible + name: LombardiDaniel/swarm-ansible + status: healthy + stars: 58 + forks: 4 + last_push: 2026-01-24T22:01:08Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/hansehe/SwarmManagement + name: hansehe/SwarmManagement + status: healthy + stars: 21 + forks: 1 + last_push: 2025-05-13T15:24:25Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/werf/werf + name: werf/werf + status: healthy + stars: 4659 + forks: 230 + last_push: 2026-02-27T21:26:34Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/willfarrell/docker-autoheal + name: willfarrell/docker-autoheal + status: healthy + stars: 1800 + forks: 253 + last_push: 2025-09-09T16:33:25Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/google/cadvisor + name: google/cadvisor + status: healthy + stars: 18913 + forks: 2460 + last_push: 2026-02-19T21:28:50Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/bluewave-labs/checkmate + name: bluewave-labs/checkmate + status: healthy + stars: 9321 + forks: 674 + last_push: 2026-02-27T16:58:09Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/zorak1103/dlia + name: zorak1103/dlia + status: healthy + stars: 3 + last_push: 2026-02-27T11:12:38Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/deltaskelta/docker-alertd + name: deltaskelta/docker-alertd + status: stale + stars: 108 + forks: 12 + last_push: 2017-11-15T04:40:06Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/docker-flow/docker-flow-monitor + name: docker-flow/docker-flow-monitor + status: stale + stars: 88 + forks: 38 + last_push: 2021-03-17T14:33:01Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/stefanprodan/dockprom + name: stefanprodan/dockprom + status: healthy + stars: 6484 + forks: 1769 + last_push: 2025-07-04T04:18:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/amerkurev/doku + name: amerkurev/doku + status: healthy + stars: 408 + forks: 18 + last_push: 2025-12-26T09:13:21Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/nicolargo/glances + name: nicolargo/glances + status: healthy + stars: 31804 + forks: 1688 + last_push: 2026-02-27T09:35:02Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/dromara/hertzbeat + name: dromara/hertzbeat + status: healthy + stars: 7103 + forks: 1255 + last_push: 2026-02-27T16:10:50Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/vegasbrianc/docker-monitoring + name: vegasbrianc/docker-monitoring + status: stale + stars: 473 + forks: 129 + last_push: 2018-06-10T20:53:49Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/gliderlabs/logspout + name: gliderlabs/logspout + status: stale + stars: 4700 + forks: 669 + last_push: 2023-07-11T20:36:12Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/decryptus/monit-docker + name: decryptus/monit-docker + status: stale + stars: 34 + forks: 5 + last_push: 2023-01-16T11:31:14Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/NexClipper/NexClipper + name: NexClipper/NexClipper + status: stale + stars: 566 + forks: 72 + last_push: 2023-05-05T02:21:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/uschtwill/docker_monitoring_logging_alerting + name: uschtwill/docker_monitoring_logging_alerting + status: stale + stars: 540 + forks: 119 + last_push: 2018-09-13T07:36:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/runsidekick/sidekick + name: runsidekick/sidekick + status: stale + stars: 1611 + forks: 67 + last_push: 2023-06-29T12:18:38Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/gpulido/SwarmAlert + name: gpulido/SwarmAlert + status: stale + stars: 22 + forks: 2 + last_push: 2019-11-27T12:17:14Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/gomex/docker-zabbix + name: gomex/docker-zabbix + status: stale + stars: 53 + forks: 12 + last_push: 2017-07-28T14:29:08Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/monitoringartist/Zabbix-Docker-Monitoring + name: monitoringartist/Zabbix-Docker-Monitoring + status: stale + stars: 1197 + forks: 265 + last_push: 2022-02-22T17:01:39Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/coreos/flannel + name: coreos/flannel + status: healthy + stars: 9406 + forks: 2898 + last_push: 2026-02-23T14:17:42Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Microsoft/Freeflow + name: Microsoft/Freeflow + status: stale + stars: 632 + forks: 96 + last_push: 2023-06-12T19:30:22Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jason5ng32/MyIP + name: jason5ng32/MyIP + status: healthy + stars: 9859 + forks: 1072 + last_push: 2026-02-10T07:38:47Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/nicolaka/netshoot + name: nicolaka/netshoot + status: healthy + stars: 10421 + forks: 1085 + last_push: 2026-01-28T16:42:51Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jpetazzo/pipework + name: jpetazzo/pipework + status: inactive + stars: 4251 + forks: 727 + last_push: 2024-11-04T17:31:57Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Peco602/ansible-linux-docker + name: Peco602/ansible-linux-docker + status: stale + stars: 37 + forks: 4 + last_push: 2023-06-21T09:34:02Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/athena-oss/athena + name: athena-oss/athena + status: stale + stars: 96 + forks: 25 + last_push: 2017-07-06T08:26:12Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/CloudSlang/cloud-slang + name: CloudSlang/cloud-slang + status: healthy + stars: 240 + forks: 83 + last_push: 2026-02-18T13:38:20Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/clusterdock/clusterdock + name: clusterdock/clusterdock + status: stale + stars: 29 + forks: 8 + last_push: 2023-05-16T18:05:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Dataman-Cloud/crane + name: Dataman-Cloud/crane + status: stale + stars: 749 + forks: 164 + last_push: 2023-08-31T09:46:38Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/docker-flow/docker-flow-swarm-listener + name: docker-flow/docker-flow-swarm-listener + status: stale + stars: 69 + forks: 50 + last_push: 2019-05-20T19:40:37Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Wowu/docker-rollout + name: Wowu/docker-rollout + status: healthy + stars: 3104 + forks: 93 + last_push: 2025-07-25T17:57:48Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/codeabovelab/haven-platform + name: codeabovelab/haven-platform + status: stale + stars: 296 + forks: 41 + last_push: 2018-07-06T11:21:20Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/kubernetes/kubernetes + name: kubernetes/kubernetes + status: healthy + stars: 120812 + forks: 42554 + last_push: 2026-02-27T20:09:31Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ManageIQ/manageiq + name: ManageIQ/manageiq + status: healthy + stars: 1387 + forks: 923 + last_push: 2026-02-27T17:24:52Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/apache/mesos + name: apache/mesos + status: inactive + stars: 5365 + forks: 1669 + last_push: 2024-08-23T18:59:16Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/hashicorp/nomad + name: hashicorp/nomad + status: healthy + stars: 16237 + forks: 2059 + last_push: 2026-02-27T21:40:19Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/rancher/rancher + name: rancher/rancher + status: healthy + stars: 25387 + forks: 3170 + last_push: 2026-02-27T21:04:04Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/redherd-project/redherd-framework + name: redherd-project/redherd-framework + status: stale + stars: 74 + forks: 17 + last_push: 2023-04-25T18:54:33Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/crazy-max/swarm-cronjob + name: crazy-max/swarm-cronjob + status: healthy + stars: 862 + forks: 74 + last_push: 2026-02-27T07:02:23Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/caprover/caprover + name: caprover/caprover + status: healthy + stars: 14878 + forks: 964 + last_push: 2026-01-31T15:42:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/convox/rack + name: convox/rack + status: healthy + stars: 1893 + forks: 177 + last_push: 2026-02-12T19:55:53Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/pbertera/dcw + name: pbertera/dcw + status: stale + stars: 17 + forks: 3 + last_push: 2017-03-29T07:55:37Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/dokku/dokku + name: dokku/dokku + status: healthy + stars: 31878 + forks: 2021 + last_push: 2026-02-27T13:54:30Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/remind101/empire + name: remind101/empire + status: stale + stars: 2682 + forks: 156 + last_push: 2023-11-25T17:16:08Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/exoframejs/exoframe + name: exoframejs/exoframe + status: healthy + stars: 1147 + forks: 59 + last_push: 2026-02-22T16:24:52Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/teamhephy/workflow + name: teamhephy/workflow + status: stale + stars: 419 + forks: 36 + last_push: 2023-09-27T17:30:49Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/krane/krane + name: krane/krane + status: stale + stars: 80 + forks: 8 + last_push: 2023-05-11T20:39:00Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/nanobox-io/nanobox + name: nanobox-io/nanobox + status: stale + stars: 1624 + forks: 90 + last_push: 2019-10-21T20:03:10Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/tsuru/tsuru + name: tsuru/tsuru + status: healthy + stars: 5252 + forks: 550 + last_push: 2026-02-25T21:15:57Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/bunkerity/bunkerweb + name: bunkerity/bunkerweb + status: healthy + stars: 10066 + forks: 565 + last_push: 2026-02-27T08:50:00Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/lucaslorentz/caddy-docker-proxy + name: lucaslorentz/caddy-docker-proxy + status: healthy + stars: 4300 + forks: 210 + last_push: 2026-02-25T20:22:54Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/invzhi/caddy-docker-upstreams + name: invzhi/caddy-docker-upstreams + status: healthy + stars: 36 + forks: 8 + last_push: 2025-09-08T05:17:01Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/moonbuggy/docker-dnsmasq-updater + name: moonbuggy/docker-dnsmasq-updater + status: inactive + stars: 35 + forks: 2 + last_push: 2025-02-09T00:21:52Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/docker-flow/docker-flow-proxy + name: docker-flow/docker-flow-proxy + status: healthy + stars: 321 + forks: 189 + last_push: 2025-12-05T02:29:16Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/fabiolb/fabio + name: fabiolb/fabio + status: healthy + stars: 7332 + forks: 624 + last_push: 2026-02-23T02:48:11Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion + name: nginx-proxy/docker-letsencrypt-nginx-proxy-companion + status: healthy + stars: 7698 + forks: 835 + last_push: 2026-02-15T12:34:13Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Yundera/mesh-router + name: Yundera/mesh-router + status: healthy + stars: 8 + last_push: 2026-02-27T21:23:25Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jc21/nginx-proxy-manager + name: jc21/nginx-proxy-manager + status: healthy + stars: 31873 + forks: 3627 + last_push: 2026-02-27T00:35:00Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Safe3/openresty-manager + name: Safe3/openresty-manager + status: healthy + stars: 1317 + forks: 97 + last_push: 2026-01-25T10:38:42Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/flavioaiello/swarm-router + name: flavioaiello/swarm-router + status: healthy + stars: 73 + forks: 12 + last_push: 2025-09-15T06:12:30Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/containous/traefik + name: containous/traefik + status: healthy + stars: 61956 + forks: 5848 + last_push: 2026-02-27T15:30:05Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/cri-o/cri-o + name: cri-o/cri-o + status: healthy + stars: 5579 + forks: 1147 + last_push: 2026-02-27T21:48:13Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/lxc/lxc + name: lxc/lxc + status: healthy + stars: 5115 + forks: 1162 + last_push: 2026-02-26T19:40:10Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/containers/libpod + name: containers/libpod + status: healthy + stars: 30828 + forks: 2995 + last_push: 2026-02-26T02:13:27Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/brauner/rlxc + name: brauner/rlxc + status: stale + stars: 18 + forks: 3 + last_push: 2021-06-30T13:12:28Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/opencontainers/runtime-tools + name: opencontainers/runtime-tools + status: healthy + stars: 472 + forks: 159 + last_push: 2025-12-05T00:49:12Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/SongStitch/anchor + name: SongStitch/anchor + status: inactive + stars: 24 + last_push: 2025-01-15T23:09:06Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/genuinetools/bane + name: genuinetools/bane + status: stale + stars: 1225 + forks: 91 + last_push: 2020-09-17T20:10:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/dash14/buildcage + name: dash14/buildcage + status: healthy + stars: 3 + last_push: 2026-02-23T08:57:48Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/hectorm/cetusguard + name: hectorm/cetusguard + status: healthy + stars: 82 + forks: 2 + last_push: 2026-02-09T12:53:32Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/bridgecrewio/checkov + name: bridgecrewio/checkov + status: healthy + stars: 8487 + forks: 1306 + last_push: 2026-02-24T10:20:12Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/dev-sec/cis-docker-benchmark + name: dev-sec/cis-docker-benchmark + status: stale + stars: 524 + forks: 118 + last_push: 2023-05-02T12:59:10Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/quay/clair + name: quay/clair + status: healthy + stars: 10932 + forks: 1195 + last_push: 2026-02-25T21:52:05Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/wolffcatskyy/crowdsec-blocklist-import + name: wolffcatskyy/crowdsec-blocklist-import + status: healthy + stars: 175 + forks: 4 + last_push: 2026-02-26T20:00:21Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/eliasgranderubio/dagda + name: eliasgranderubio/dagda + status: stale + stars: 1219 + forks: 169 + last_push: 2023-05-23T02:03:43Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/deepfence/ThreatMapper + name: deepfence/ThreatMapper + status: healthy + stars: 5235 + forks: 640 + last_push: 2026-01-08T17:51:41Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/docker/docker-bench-security + name: docker/docker-bench-security + status: inactive + stars: 9599 + forks: 1036 + last_push: 2024-10-21T07:26:06Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/google/docker-explorer + name: google/docker-explorer + status: inactive + stars: 552 + forks: 45 + last_push: 2024-10-04T07:44:31Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Peco602/dvwassl + name: Peco602/dvwassl + status: stale + stars: 6 + forks: 4 + last_push: 2023-04-30T17:03:01Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/checkmarx/kics + name: checkmarx/kics + status: healthy + stars: 2575 + forks: 360 + last_push: 2026-02-27T12:39:43Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/theupdateframework/notary + name: theupdateframework/notary + status: archived + stars: 3288 + forks: 520 + last_push: 2024-08-07T19:02:32Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/OpenSCAP/openscap + name: OpenSCAP/openscap + status: healthy + stars: 1672 + forks: 421 + last_push: 2026-02-27T12:44:50Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/dormstern/segspec + name: dormstern/segspec + status: healthy + stars: 15 + last_push: 2026-02-23T11:39:00Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/anchore/syft + name: anchore/syft + status: healthy + stars: 8429 + forks: 776 + last_push: 2026-02-27T19:38:05Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/falcosecurity/falco + name: falcosecurity/falco + status: healthy + stars: 8694 + forks: 989 + last_push: 2026-02-27T12:34:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/aquasecurity/trivy + name: aquasecurity/trivy + status: healthy + stars: 32289 + forks: 2977 + last_push: 2026-02-26T18:00:30Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/bytesharky/docker-dns + name: bytesharky/docker-dns + status: healthy + stars: 3 + forks: 1 + last_push: 2025-12-26T02:44:43Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/etcd-io/etcd + name: etcd-io/etcd + status: healthy + stars: 51580 + forks: 10330 + last_push: 2026-02-27T21:04:29Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/istio/istio + name: istio/istio + status: healthy + stars: 38054 + forks: 8250 + last_push: 2026-02-27T22:16:29Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/gliderlabs/registrator + name: gliderlabs/registrator + status: healthy + stars: 4677 + forks: 909 + last_push: 2025-05-22T04:16:52Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/minio/minio + name: minio/minio + status: archived + stars: 60392 + forks: 7138 + last_push: 2026-02-12T20:18:51Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Storidge/quick-start + name: Storidge/quick-start + status: stale + stars: 1 + forks: 1 + last_push: 2019-09-09T21:42:15Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/AbianS/docker-db-manager + name: AbianS/docker-db-manager + status: healthy + stars: 155 + forks: 5 + last_push: 2025-11-26T09:24:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/felixgborrego/simple-docker-ui + name: felixgborrego/simple-docker-ui + status: inactive + stars: 607 + forks: 96 + last_push: 2024-09-06T09:31:07Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/slonopotamus/stevedore + name: slonopotamus/stevedore + status: healthy + stars: 368 + forks: 13 + last_push: 2026-02-27T11:51:20Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jr-k/d4s + name: jr-k/d4s + status: healthy + stars: 51 + forks: 4 + last_push: 2026-02-24T00:58:30Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/wagoodman/dive + name: wagoodman/dive + status: healthy + stars: 53433 + forks: 1949 + last_push: 2025-12-15T17:20:36Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/lirantal/dockly + name: lirantal/dockly + status: healthy + stars: 4011 + forks: 163 + last_push: 2026-02-01T19:31:17Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/shubh-io/dockmate + name: shubh-io/dockmate + status: healthy + stars: 276 + forks: 5 + last_push: 2026-01-14T06:52:19Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/GhostWriters/DockSTARTer + name: GhostWriters/DockSTARTer + status: healthy + stars: 2543 + forks: 291 + last_push: 2026-02-25T19:44:53Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/durableprogramming/dprs + name: durableprogramming/dprs + status: healthy + stars: 36 + forks: 1 + last_push: 2026-02-12T20:14:04Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/moncho/dry + name: moncho/dry + status: healthy + stars: 3222 + forks: 102 + last_push: 2026-02-27T23:13:28Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ajayd-san/gomanagedocker + name: ajayd-san/gomanagedocker + status: inactive + stars: 632 + forks: 26 + last_push: 2024-12-28T07:44:20Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jesseduffield/lazydocker + name: jesseduffield/lazydocker + status: healthy + stars: 49901 + forks: 1577 + last_push: 2026-01-17T06:16:20Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Lifailon/lazyjournal + name: Lifailon/lazyjournal + status: healthy + stars: 1132 + forks: 27 + last_push: 2026-02-25T09:43:40Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/mrjackwills/oxker + name: mrjackwills/oxker + status: healthy + stars: 1536 + forks: 41 + last_push: 2026-02-23T15:18:34Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jenssegers/captain + name: jenssegers/captain + status: stale + stars: 244 + forks: 11 + last_push: 2022-12-08T07:39:21Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Falldog/dcinja + name: Falldog/dcinja + status: healthy + stars: 13 + forks: 3 + last_push: 2025-06-26T12:33:01Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/exdx/dcp + name: exdx/dcp + status: stale + stars: 114 + forks: 3 + last_push: 2023-07-24T01:09:54Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/FabienD/docker-stack + name: FabienD/docker-stack + status: healthy + stars: 22 + forks: 2 + last_push: 2026-02-04T08:56:30Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/s0rg/decompose + name: s0rg/decompose + status: healthy + stars: 123 + forks: 6 + last_push: 2025-12-19T20:03:44Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/christian-korneck/docker-pushrm + name: christian-korneck/docker-pushrm + status: inactive + stars: 148 + forks: 3 + last_push: 2024-06-10T21:42:09Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/lucabello/docker-captain + name: lucabello/docker-captain + status: healthy + stars: 2 + last_push: 2026-02-21T00:13:43Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/mayflower/docker-ls + name: mayflower/docker-ls + status: archived + stars: 456 + forks: 68 + last_push: 2023-08-31T06:44:18Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/howtowhale/dvm + name: howtowhale/dvm + status: stale + stars: 524 + forks: 50 + last_push: 2022-03-30T13:23:11Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/iamsoorena/goinside + name: iamsoorena/goinside + status: stale + stars: 30 + forks: 2 + last_push: 2020-10-17T20:31:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/g31s/Pdocker + name: g31s/Pdocker + status: stale + stars: 7 + forks: 2 + last_push: 2021-02-27T06:42:13Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/shiwaforce/poco + name: shiwaforce/poco + status: healthy + stars: 109 + forks: 6 + last_push: 2026-02-24T16:23:44Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/JonathonReinhart/scuba + name: JonathonReinhart/scuba + status: healthy + stars: 96 + forks: 17 + last_push: 2026-01-26T04:03:05Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/containers/skopeo + name: containers/skopeo + status: healthy + stars: 10502 + forks: 907 + last_push: 2026-02-27T15:31:34Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/segersniels/supdock + name: segersniels/supdock + status: healthy + stars: 86 + forks: 3 + last_push: 2026-02-23T13:29:54Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/qazbnm456/tsaotun + name: qazbnm456/tsaotun + status: stale + stars: 58 + forks: 3 + last_push: 2022-10-04T06:53:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/vutran/dext-docker-registry-plugin + name: vutran/dext-docker-registry-plugin + status: stale + stars: 4 + forks: 1 + last_push: 2017-01-10T03:04:36Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jeroenpeeters/docker-ssh + name: jeroenpeeters/docker-ssh + status: stale + stars: 660 + forks: 89 + last_push: 2018-04-11T20:24:08Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/marty90/multidocker + name: marty90/multidocker + status: stale + stars: 56 + forks: 9 + last_push: 2018-11-27T15:12:56Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/adrianmo/powerline-docker + name: adrianmo/powerline-docker + status: stale + stars: 61 + forks: 6 + last_push: 2017-06-30T09:11:44Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/knrdl/casa + name: knrdl/casa + status: healthy + stars: 84 + forks: 5 + last_push: 2026-02-26T16:33:07Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/wrfly/container-web-tty + name: wrfly/container-web-tty + status: healthy + stars: 258 + forks: 46 + last_push: 2026-02-07T06:18:34Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ProductiveOps/dokemon + name: ProductiveOps/dokemon + status: stale + stars: 758 + forks: 36 + last_push: 2024-02-21T10:51:14Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/klausmeyer/docker-registry-browser + name: klausmeyer/docker-registry-browser + status: healthy + stars: 675 + forks: 61 + last_push: 2026-02-21T09:06:10Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/mkuchin/docker-registry-web + name: mkuchin/docker-registry-web + status: stale + stars: 548 + forks: 133 + last_push: 2022-02-08T08:42:02Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/dockersamples/docker-swarm-visualizer + name: dockersamples/docker-swarm-visualizer + status: inactive + stars: 3348 + forks: 594 + last_push: 2024-10-26T07:12:05Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/louislam/dockge + name: louislam/dockge + status: healthy + stars: 22251 + forks: 705 + last_push: 2026-01-21T10:51:44Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/mbecker20/komodo + name: mbecker20/komodo + status: healthy + stars: 10397 + forks: 276 + last_push: 2026-02-27T22:21:17Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/kubevious/kubevious + name: kubevious/kubevious + status: stale + stars: 1693 + forks: 95 + last_push: 2024-01-15T18:42:38Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/hywax/mafl + name: hywax/mafl + status: healthy + stars: 671 + forks: 52 + last_push: 2025-10-26T02:26:26Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/netdata/netdata + name: netdata/netdata + status: healthy + stars: 77906 + forks: 6359 + last_push: 2026-02-27T21:54:35Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/OctoLinker/OctoLinker + name: OctoLinker/OctoLinker + status: stale + stars: 5351 + forks: 283 + last_push: 2023-10-02T12:33:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/portainer/portainer + name: portainer/portainer + status: healthy + stars: 36692 + forks: 2779 + last_push: 2026-02-27T13:23:22Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ozlerhakan/rapid + name: ozlerhakan/rapid + status: stale + stars: 147 + forks: 24 + last_push: 2021-09-21T08:44:39Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/tobegit3hub/seagull + name: tobegit3hub/seagull + status: stale + stars: 1939 + forks: 268 + last_push: 2017-11-22T02:11:23Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/swarmpit/swarmpit + name: swarmpit/swarmpit + status: healthy + stars: 3407 + forks: 312 + last_push: 2026-01-25T16:08:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/cuigh/swirl + name: cuigh/swirl + status: stale + stars: 667 + forks: 83 + last_push: 2023-05-16T02:47:48Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/eclipse-theia/theia + name: eclipse-theia/theia + status: healthy + stars: 21381 + forks: 2799 + last_push: 2026-02-27T22:10:02Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/fr4nsys/usulnet + name: fr4nsys/usulnet + status: healthy + stars: 71 + forks: 2 + last_push: 2026-02-23T23:00:19Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/genuinetools/amicontained + name: genuinetools/amicontained + status: stale + stars: 1072 + forks: 71 + last_push: 2020-12-09T04:37:59Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/garywiz/chaperone + name: garywiz/chaperone + status: stale + stars: 178 + forks: 31 + last_push: 2020-07-16T21:30:27Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/nicomt/ckron + name: nicomt/ckron + status: healthy + stars: 56 + forks: 6 + last_push: 2026-02-15T17:58:14Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/GoogleContainerTools/distroless + name: GoogleContainerTools/distroless + status: healthy + stars: 22291 + forks: 1361 + last_push: 2026-02-27T21:06:10Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/gliderlabs/docker-alpine + name: gliderlabs/docker-alpine + status: stale + stars: 5719 + forks: 530 + last_push: 2021-04-01T08:02:51Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jwilder/docker-gen + name: jwilder/docker-gen + status: healthy + stars: 4616 + forks: 615 + last_push: 2026-02-13T13:22:38Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/powerman/dockerize + name: powerman/dockerize + status: healthy + stars: 195 + forks: 17 + last_push: 2026-02-23T15:53:51Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/tianon/gosu + name: tianon/gosu + status: healthy + stars: 4947 + forks: 356 + last_push: 2026-02-21T00:14:55Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/sindresorhus/is-docker + name: sindresorhus/is-docker + status: healthy + stars: 231 + forks: 16 + last_push: 2025-09-15T21:04:10Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ivanilves/lstags + name: ivanilves/lstags + status: stale + stars: 340 + forks: 26 + last_push: 2023-05-11T20:38:37Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/tarampampam/microcheck + name: tarampampam/microcheck + status: healthy + stars: 127 + forks: 2 + last_push: 2026-02-24T19:11:41Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/mcuadros/ofelia + name: mcuadros/ofelia + status: healthy + stars: 3731 + forks: 204 + last_push: 2026-02-27T07:34:07Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/beyondssl/sparkview-container + name: beyondssl/sparkview-container + status: healthy + stars: 20 + forks: 2 + last_push: 2025-09-22T06:59:43Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ncopa/su-exec + name: ncopa/su-exec + status: healthy + stars: 1017 + forks: 103 + last_push: 2025-10-07T13:49:01Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/theAkito/sue + name: theAkito/sue + status: stale + stars: 13 + forks: 1 + last_push: 2022-04-26T21:10:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/aptible/supercronic + name: aptible/supercronic + status: healthy + stars: 2383 + forks: 141 + last_push: 2026-02-11T20:22:54Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/vorakl/TrivialRC + name: vorakl/TrivialRC + status: stale + stars: 31 + forks: 5 + last_push: 2023-12-20T00:39:55Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ansible-community/ansible-bender + name: ansible-community/ansible-bender + status: healthy + stars: 692 + forks: 74 + last_push: 2026-01-07T23:21:32Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/containers/buildah + name: containers/buildah + status: healthy + stars: 8633 + forks: 879 + last_push: 2026-02-27T18:52:32Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/moby/buildkit + name: moby/buildkit + status: healthy + stars: 9795 + forks: 1373 + last_push: 2026-02-27T15:45:57Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/cekit/cekit + name: cekit/cekit + status: healthy + stars: 113 + forks: 44 + last_push: 2026-01-30T15:06:33Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/mutable/container-factory + name: mutable/container-factory + status: stale + stars: 64 + forks: 3 + last_push: 2015-05-06T16:07:53Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/mdlavin/copy-docker-image + name: mdlavin/copy-docker-image + status: stale + stars: 38 + forks: 16 + last_push: 2018-08-29T08:27:20Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/alibaba/derrick + name: alibaba/derrick + status: stale + stars: 694 + forks: 109 + last_push: 2023-03-06T22:40:17Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/orisano/dlayer + name: orisano/dlayer + status: healthy + stars: 445 + forks: 12 + last_push: 2026-02-11T11:03:36Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/mudler/docker-companion + name: mudler/docker-companion + status: healthy + stars: 47 + forks: 9 + last_push: 2025-05-28T08:17:46Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/CtripCloud/docker-make + name: CtripCloud/docker-make + status: stale + stars: 99 + forks: 20 + last_push: 2019-11-22T08:32:26Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/orf/docker-repack + name: orf/docker-repack + status: healthy + stars: 151 + forks: 3 + last_push: 2025-04-24T06:46:00Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/bcicen/docker-replay + name: bcicen/docker-replay + status: stale + stars: 203 + forks: 13 + last_push: 2018-10-13T13:09:28Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/swipely/dockly + name: swipely/dockly + status: stale + stars: 228 + forks: 10 + last_push: 2023-02-15T15:26:17Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/utensils/essex + name: utensils/essex + status: healthy + stars: 38 + last_push: 2025-03-18T21:33:36Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/NVIDIA/hpc-container-maker + name: NVIDIA/hpc-container-maker + status: healthy + stars: 508 + forks: 100 + last_push: 2026-02-19T23:22:06Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/genuinetools/img + name: genuinetools/img + status: inactive + stars: 3990 + forks: 234 + last_push: 2024-05-19T22:07:07Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/duedil-ltd/portainer + name: duedil-ltd/portainer + status: stale + stars: 134 + forks: 16 + last_push: 2017-02-28T17:15:49Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/cybersecsi/RAUDI + name: cybersecsi/RAUDI + status: healthy + stars: 560 + forks: 34 + last_push: 2026-02-26T09:33:46Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/lavie/runlike + name: lavie/runlike + status: healthy + stars: 2916 + forks: 162 + last_push: 2025-12-04T12:36:39Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/theAkito/userdef + name: theAkito/userdef + status: stale + stars: 11 + last_push: 2023-10-14T20:34:12Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/P3GLEG/Whaler + name: P3GLEG/Whaler + status: healthy + stars: 1185 + forks: 101 + last_push: 2025-09-17T03:56:52Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Gueils/whales + name: Gueils/whales + status: stale + stars: 391 + forks: 20 + last_push: 2019-05-27T13:20:14Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/garywiz/chaperone-docker + name: garywiz/chaperone-docker + status: stale + stars: 66 + forks: 11 + last_push: 2018-10-05T07:48:36Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/patrickhoefler/dockerfilegraph + name: patrickhoefler/dockerfilegraph + status: healthy + stars: 255 + forks: 17 + last_push: 2026-02-26T05:40:58Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Dockershelf/dockershelf + name: Dockershelf/dockershelf + status: healthy + stars: 97 + forks: 13 + last_push: 2026-01-22T01:03:39Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/deckrun/dockadvisor + name: deckrun/dockadvisor + status: healthy + stars: 178 + forks: 6 + last_push: 2026-01-12T09:26:02Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/wemake-services/docker-image-size-limit + name: wemake-services/docker-image-size-limit + status: healthy + stars: 130 + forks: 5 + last_push: 2026-02-27T11:53:07Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/buddy-works/dockerfile-linter + name: buddy-works/dockerfile-linter + status: stale + stars: 46 + forks: 3 + last_push: 2023-03-04T05:06:08Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/replicatedhq/dockerfilelint + name: replicatedhq/dockerfilelint + status: stale + stars: 1031 + forks: 83 + last_push: 2023-09-27T20:58:01Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/hadolint/hadolint + name: hadolint/hadolint + status: healthy + stars: 11966 + forks: 487 + last_push: 2026-01-27T13:27:01Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/RedCoolBeans/cargos-buildroot + name: RedCoolBeans/cargos-buildroot + status: stale + stars: 11 + forks: 2 + last_push: 2017-04-02T14:59:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/hcguersoy/cleanreg + name: hcguersoy/cleanreg + status: stale + stars: 59 + forks: 18 + last_push: 2022-09-03T17:43:40Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/netvarun/docket + name: netvarun/docket + status: stale + stars: 709 + forks: 33 + last_push: 2020-09-02T02:35:17Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/dragonflyoss/Dragonfly2 + name: dragonflyoss/Dragonfly2 + status: healthy + stars: 3049 + forks: 373 + last_push: 2026-02-25T02:37:31Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/uber/kraken + name: uber/kraken + status: healthy + stars: 6653 + forks: 468 + last_push: 2026-02-25T13:57:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jhstatewide/nscr + name: jhstatewide/nscr + status: healthy + stars: 1 + last_push: 2025-10-27T14:37:18Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/inmagik/registryo + name: inmagik/registryo + status: healthy + stars: 15 + last_push: 2025-12-17T10:20:47Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/noteed/rescoyl + name: noteed/rescoyl + status: stale + stars: 18 + forks: 4 + last_push: 2017-04-08T19:17:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/instacart/ahab + name: instacart/ahab + status: stale + stars: 137 + forks: 7 + last_push: 2018-11-16T21:54:44Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/lispyclouds/contajners + name: lispyclouds/contajners + status: healthy + stars: 145 + forks: 8 + last_push: 2026-02-20T09:07:36Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/gesellix/docker-client + name: gesellix/docker-client + status: healthy + stars: 119 + forks: 28 + last_push: 2026-02-27T16:52:20Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/dgongut/docker-controller-bot + name: dgongut/docker-controller-bot + status: healthy + stars: 240 + forks: 31 + last_push: 2026-02-04T15:58:07Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/whisklabs/docker-it-scala + name: whisklabs/docker-it-scala + status: stale + stars: 433 + forks: 90 + last_push: 2024-02-14T12:56:54Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/amihaiemil/docker-java-api + name: amihaiemil/docker-java-api + status: stale + stars: 274 + forks: 55 + last_push: 2021-06-04T01:21:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/fabric8io/docker-maven-plugin + name: fabric8io/docker-maven-plugin + status: healthy + stars: 1928 + forks: 656 + last_push: 2026-02-24T15:30:08Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Microsoft/Docker.DotNet + name: Microsoft/Docker.DotNet + status: healthy + stars: 2403 + forks: 407 + last_push: 2025-08-28T14:08:51Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ChangemakerStudios/Docker.Registry.DotNet + name: ChangemakerStudios/Docker.Registry.DotNet + status: healthy + stars: 42 + forks: 21 + last_push: 2025-10-06T03:43:52Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/apocas/dockerode + name: apocas/dockerode + status: healthy + stars: 4827 + forks: 486 + last_push: 2026-01-09T08:49:53Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/eon01/DoMonit + name: eon01/DoMonit + status: stale + stars: 76 + forks: 15 + last_push: 2021-06-01T21:57:21Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/fsouza/go-dockerclient + name: fsouza/go-dockerclient + status: healthy + stars: 2236 + forks: 555 + last_push: 2026-02-26T03:52:11Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/gesellix/gradle-docker-plugin + name: gesellix/gradle-docker-plugin + status: healthy + stars: 81 + forks: 17 + last_push: 2026-02-27T14:32:37Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/greenled/portainer-stack-utils + name: greenled/portainer-stack-utils + status: healthy + stars: 74 + forks: 16 + last_push: 2025-12-05T02:34:50Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/marcuslonnberg/sbt-docker + name: marcuslonnberg/sbt-docker + status: inactive + stars: 733 + forks: 112 + last_push: 2024-12-12T15:18:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/harbur/captain + name: harbur/captain + status: healthy + stars: 776 + forks: 48 + last_push: 2025-05-25T00:09:20Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/caicloud/cyclone + name: caicloud/cyclone + status: stale + stars: 1074 + forks: 171 + last_push: 2023-10-24T12:08:27Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/DefangLabs/defang + name: DefangLabs/defang + status: healthy + stars: 146 + forks: 24 + last_push: 2026-02-27T19:16:01Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/crazy-max/diun + name: crazy-max/diun + status: healthy + stars: 4428 + forks: 144 + last_push: 2026-02-27T07:02:29Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/mag37/dockcheck + name: mag37/dockcheck + status: healthy + stars: 2221 + forks: 77 + last_push: 2026-02-06T17:07:58Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/jenkinsci/docker-plugin + name: jenkinsci/docker-plugin + status: healthy + stars: 498 + forks: 325 + last_push: 2026-01-16T13:00:38Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/drone/drone + name: drone/drone + status: healthy + stars: 33826 + forks: 2894 + last_push: 2026-02-27T08:17:22Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/CodesWhat/drydock + name: CodesWhat/drydock + status: healthy + stars: 93 + forks: 4 + last_push: 2026-02-24T04:20:32Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/shizunge/gantry + name: shizunge/gantry + status: healthy + stars: 86 + forks: 4 + last_push: 2026-02-24T05:29:27Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/theSage21/jaypore_ci + name: theSage21/jaypore_ci + status: stale + stars: 38 + forks: 4 + last_push: 2023-06-03T17:03:43Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Kraken-CI/kraken + name: Kraken-CI/kraken + status: healthy + stars: 160 + forks: 20 + last_push: 2026-01-15T13:00:32Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/francescou/docker-continuous-deployment + name: francescou/docker-continuous-deployment + status: stale + stars: 145 + forks: 38 + last_push: 2017-08-01T17:25:15Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/stelligent/mu + name: stelligent/mu + status: stale + stars: 965 + forks: 133 + last_push: 2020-06-18T14:09:29Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/systemslab/popper + name: systemslab/popper + status: stale + stars: 307 + forks: 62 + last_push: 2022-03-29T22:02:27Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Stratoscale/skipper + name: Stratoscale/skipper + status: healthy + stars: 50 + forks: 22 + last_push: 2025-05-13T13:33:39Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ghostsquad/swarmci + name: ghostsquad/swarmci + status: stale + stars: 58 + forks: 6 + last_push: 2017-02-24T02:14:18Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/binci/binci + name: binci/binci + status: stale + stars: 673 + forks: 24 + last_push: 2022-12-06T20:24:40Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/coder/coder + name: coder/coder + status: healthy + stars: 12338 + forks: 1177 + last_push: 2026-02-27T23:34:35Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/lstephen/construi + name: lstephen/construi + status: stale + stars: 24 + forks: 5 + last_push: 2022-12-08T06:36:04Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/whatwedo/dde + name: whatwedo/dde + status: healthy + stars: 46 + forks: 9 + last_push: 2026-02-20T12:25:04Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/bibendi/dip + name: bibendi/dip + status: inactive + stars: 1322 + forks: 50 + last_push: 2024-12-25T09:38:57Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/dnephin/dobi + name: dnephin/dobi + status: stale + stars: 315 + forks: 34 + last_push: 2023-11-10T06:32:19Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/nandoquintana/docker-missing-tools + name: nandoquintana/docker-missing-tools + status: stale + stars: 30 + forks: 6 + last_push: 2018-05-01T13:10:10Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Ph3nol/Docker-Arch + name: Ph3nol/Docker-Arch + status: stale + stars: 31 + forks: 2 + last_push: 2018-09-24T06:43:08Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/EugenMayer/docker-sync + name: EugenMayer/docker-sync + status: healthy + stars: 3565 + forks: 285 + last_push: 2025-11-30T20:06:16Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/shyiko/docker-vm + name: shyiko/docker-vm + status: stale + stars: 43 + forks: 8 + last_push: 2016-09-24T17:45:47Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/matifali/dockerdl + name: matifali/dockerdl + status: healthy + stars: 86 + forks: 11 + last_push: 2025-12-29T19:27:19Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/eclipse/che + name: eclipse/che + status: healthy + stars: 7128 + forks: 1199 + last_push: 2026-02-27T12:40:18Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/EnvCLI/EnvCLI + name: EnvCLI/EnvCLI + status: healthy + stars: 116 + forks: 4 + last_push: 2025-06-16T20:36:16Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/hpsaturn/esp32s3-linux + name: hpsaturn/esp32s3-linux + status: healthy + stars: 78 + forks: 9 + last_push: 2025-04-05T08:38:16Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/moshebe/gebug + name: moshebe/gebug + status: healthy + stars: 634 + forks: 17 + last_push: 2026-02-27T21:45:21Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/senges/kitt + name: senges/kitt + status: stale + stars: 20 + forks: 1 + last_push: 2023-02-23T14:01:05Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/lando/lando + name: lando/lando + status: healthy + stars: 4220 + forks: 530 + last_push: 2026-02-24T21:10:02Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Peco602/rust-universal-compiler + name: Peco602/rust-universal-compiler + status: stale + stars: 33 + forks: 2 + last_push: 2023-04-30T17:04:02Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/uniget-org/cli + name: uniget-org/cli + status: healthy + stars: 20 + last_push: 2026-02-12T08:35:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/tailhook/vagga + name: tailhook/vagga + status: stale + stars: 1895 + forks: 96 + last_push: 2023-03-31T06:13:55Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/deluan/zsh-in-docker + name: deluan/zsh-in-docker + status: inactive + stars: 1094 + forks: 119 + last_push: 2024-09-30T19:07:49Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/tjamet/caduc + name: tjamet/caduc + status: stale + stars: 21 + forks: 1 + last_push: 2019-01-07T16:07:50Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ZZROTDesign/docker-clean + name: ZZROTDesign/docker-clean + status: stale + stars: 1304 + forks: 90 + last_push: 2018-01-16T16:29:41Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Yelp/docker-custodian + name: Yelp/docker-custodian + status: inactive + stars: 374 + forks: 49 + last_push: 2024-08-14T08:08:10Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/pdacity/docker_gc + name: pdacity/docker_gc + status: stale + stars: 127 + forks: 22 + last_push: 2024-02-09T17:50:47Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/stepchowfun/docuum + name: stepchowfun/docuum + status: healthy + stars: 683 + forks: 42 + last_push: 2025-12-12T02:03:33Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/apache/openwhisk + name: apache/openwhisk + status: healthy + stars: 6756 + forks: 1173 + last_push: 2026-01-24T05:17:06Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/bfirsh/funker-example-voting-app + name: bfirsh/funker-example-voting-app + status: stale + stars: 26 + forks: 8 + last_push: 2016-11-29T11:51:39Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/iron-io/functions + name: iron-io/functions + status: stale + stars: 3220 + forks: 224 + last_push: 2023-09-15T01:37:58Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/openfaas/faas + name: openfaas/faas + status: healthy + stars: 26102 + forks: 1970 + last_push: 2026-02-22T08:49:51Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/grycap/scar + name: grycap/scar + status: stale + stars: 600 + forks: 47 + last_push: 2023-05-22T11:01:11Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/GoogleContainerTools/container-structure-test + name: GoogleContainerTools/container-structure-test + status: healthy + stars: 2460 + forks: 207 + last_push: 2026-02-20T23:41:16Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/zuazo/dockerspec + name: zuazo/dockerspec + status: stale + stars: 181 + forks: 8 + last_push: 2017-08-30T20:40:57Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/lynchborg/ezdc + name: lynchborg/ezdc + status: stale + stars: 12 + last_push: 2024-02-12T08:42:24Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/kurtosis-tech/kurtosis + name: kurtosis-tech/kurtosis + status: healthy + stars: 523 + forks: 88 + last_push: 2026-02-27T07:48:41Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/alexei-led/pumba + name: alexei-led/pumba + status: healthy + stars: 2980 + forks: 201 + last_push: 2026-02-27T19:58:45Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/docker-exec/dexec + name: docker-exec/dexec + status: stale + stars: 332 + forks: 14 + last_push: 2021-05-13T06:04:19Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/benzaita/dockerized-cli + name: benzaita/dockerized-cli + status: stale + stars: 65 + forks: 5 + last_push: 2024-02-27T13:49:38Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/CenturyLinkLabs/dray + name: CenturyLinkLabs/dray + status: stale + stars: 386 + forks: 37 + last_push: 2020-01-24T17:34:58Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/artsy/hokusai + name: artsy/hokusai + status: healthy + stars: 98 + forks: 25 + last_push: 2026-02-06T19:41:17Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/livecycle/preevy + name: livecycle/preevy + status: healthy + stars: 2189 + forks: 87 + last_push: 2026-02-06T07:38:46Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ianmiell/shutit + name: ianmiell/shutit + status: stale + stars: 2145 + forks: 110 + last_push: 2022-08-14T14:43:18Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/subuser-security/subuser + name: subuser-security/subuser + status: inactive + stars: 894 + forks: 63 + last_push: 2025-02-23T11:31:31Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/christippett/terraform-cloudinit-container-server + name: christippett/terraform-cloudinit-container-server + status: stale + stars: 120 + forks: 30 + last_push: 2022-08-19T06:41:50Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/ramitsurana/turbo + name: ramitsurana/turbo + status: stale + stars: 27 + forks: 12 + last_push: 2021-12-22T19:03:53Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/indigo-dc/udocker + name: indigo-dc/udocker + status: healthy + stars: 1703 + forks: 164 + last_push: 2025-08-13T17:21:57Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/Appdynamics/docker-monitoring-extension + name: Appdynamics/docker-monitoring-extension + status: inactive + stars: 5 + forks: 6 + last_push: 2024-10-02T10:48:59Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/sematext/sematext-agent-docker + name: sematext/sematext-agent-docker + status: stale + stars: 208 + forks: 32 + last_push: 2023-12-09T18:07:20Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/cicdops/awesome-ciandcd + name: cicdops/awesome-ciandcd + status: inactive + stars: 1985 + forks: 224 + last_push: 2024-04-01T18:08:23Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/docker/awesome-compose + name: docker/awesome-compose + status: healthy + stars: 44126 + forks: 8054 + last_push: 2026-02-27T05:54:59Z + checked_at: 2026-02-27T23:43:36.588325Z + - url: https://github.com/hexops/dockerfile + name: hexops/dockerfile + status: stale + stars: 4092 + forks: 155 + last_push: 2021-08-08T04:42:37Z + checked_at: 2026-02-27T23:43:36.588325Z diff --git a/internal/checker/github.go b/internal/checker/github.go index 146240e70..a141286f9 100644 --- a/internal/checker/github.go +++ b/internal/checker/github.go @@ -27,21 +27,35 @@ type RepoInfo struct { // ExtractGitHubRepo extracts owner/name from a GitHub URL. // Returns false for non-repo URLs (issues, wiki, apps, etc.). -func ExtractGitHubRepo(url string) (owner, name string, ok bool) { - if !strings.HasPrefix(url, "https://github.com/") { +func ExtractGitHubRepo(rawURL string) (owner, name string, ok bool) { + u, err := url.Parse(rawURL) + if err != nil { + return "", "", false + } + + host := strings.ToLower(u.Hostname()) + if host != "github.com" && host != "www.github.com" { return "", "", false } - path := strings.TrimPrefix(url, "https://github.com/") - path = strings.TrimRight(path, "/") + + path := strings.Trim(u.Path, "/") parts := strings.Split(path, "/") if len(parts) != 2 || parts[0] == "" || parts[1] == "" { return "", "", false } - // Skip non-repo paths - if parts[0] == "apps" || parts[0] == "features" || parts[0] == "topics" { + + // Skip known non-repository top-level routes. + switch parts[0] { + case "apps", "features", "topics": return "", "", false } - return parts[0], parts[1], true + + name = strings.TrimSuffix(parts[1], ".git") + if name == "" { + return "", "", false + } + + return parts[0], name, true } func isHTTPURL(raw string) bool { @@ -52,6 +66,16 @@ func isHTTPURL(raw string) bool { return u.Scheme == "http" || u.Scheme == "https" } +func isGitHubAuthError(err error) bool { + if err == nil { + return false + } + s := strings.ToLower(err.Error()) + return strings.Contains(s, "401 unauthorized") || + strings.Contains(s, "bad credentials") || + strings.Contains(s, "resource not accessible by integration") +} + // PartitionLinks separates URLs into GitHub repos and external HTTP(S) links. func PartitionLinks(urls []string) (github, external []string) { for _, url := range urls { @@ -134,6 +158,9 @@ func (gc *GitHubChecker) CheckRepos(ctx context.Context, urls []string, batchSiz info, err := gc.CheckRepo(ctx, owner, name) if err != nil { errs = append(errs, err) + if isGitHubAuthError(err) { + break + } continue } results = append(results, info) diff --git a/internal/checker/github_test.go b/internal/checker/github_test.go index 8e751d001..9ed629484 100644 --- a/internal/checker/github_test.go +++ b/internal/checker/github_test.go @@ -1,6 +1,7 @@ package checker import ( + "errors" "testing" ) @@ -14,6 +15,10 @@ func TestExtractGitHubRepo(t *testing.T) { {"https://github.com/docker/compose", "docker", "compose", true}, {"https://github.com/moby/moby", "moby", "moby", true}, {"https://github.com/user/repo/", "user", "repo", true}, + {"https://github.com/user/repo?tab=readme-ov-file", "user", "repo", true}, + {"https://github.com/user/repo#readme", "user", "repo", true}, + {"https://github.com/user/repo.git", "user", "repo", true}, + {"https://www.github.com/user/repo", "user", "repo", true}, {"https://github.com/user/repo/issues", "", "", false}, {"https://github.com/user/repo/wiki", "", "", false}, {"https://github.com/apps/dependabot", "", "", false}, @@ -52,3 +57,22 @@ func TestPartitionLinks(t *testing.T) { t.Errorf("external links = %d, want 2", len(ext)) } } + +func TestIsGitHubAuthError(t *testing.T) { + tests := []struct { + err error + want bool + }{ + {errors.New("non-200 OK status code: 401 Unauthorized body: \"Bad credentials\""), true}, + {errors.New("Resource not accessible by integration"), true}, + {errors.New("dial tcp: lookup api.github.com: no such host"), false}, + {errors.New("context deadline exceeded"), false}, + } + + for _, tt := range tests { + got := isGitHubAuthError(tt.err) + if got != tt.want { + t.Errorf("isGitHubAuthError(%q) = %v, want %v", tt.err, got, tt.want) + } + } +} From ae81c12fc5b8eb80c1e412825d2c1cf023fdacd0 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 01:00:35 +0100 Subject: [PATCH 251/327] Make report output complete by default and keep JSON mode --- cmd/awesome-docker/main.go | 15 +++++- go.mod | 2 +- internal/scorer/scorer.go | 84 ++++++++++++++++++++++++---------- internal/scorer/scorer_test.go | 64 ++++++++++++++++++++++++++ 4 files changed, 140 insertions(+), 25 deletions(-) diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index e9267abb4..254028dac 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -240,7 +240,8 @@ func buildCmd() *cobra.Command { } func reportCmd() *cobra.Command { - return &cobra.Command{ + var jsonOutput bool + cmd := &cobra.Command{ Use: "report", Short: "Generate health report from cache", RunE: func(cmd *cobra.Command, args []string) error { @@ -263,11 +264,23 @@ func reportCmd() *cobra.Command { }) } + if jsonOutput { + payload, err := scorer.GenerateJSONReport(scored) + if err != nil { + return fmt.Errorf("json report: %w", err) + } + fmt.Println(string(payload)) + return nil + } + report := scorer.GenerateReport(scored) fmt.Print(report) return nil }, } + + cmd.Flags().BoolVar(&jsonOutput, "json", false, "Output full health report as JSON") + return cmd } func validateCmd() *cobra.Command { diff --git a/go.mod b/go.mod index b72fbff74..6a38142d6 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/veggiemonk/awesome-docker -go 1.25.0 +go 1.26.0 require github.com/spf13/cobra v1.10.2 diff --git a/internal/scorer/scorer.go b/internal/scorer/scorer.go index c91aaf1e2..f2f34d614 100644 --- a/internal/scorer/scorer.go +++ b/internal/scorer/scorer.go @@ -1,6 +1,7 @@ package scorer import ( + "encoding/json" "fmt" "strings" "time" @@ -30,6 +31,24 @@ type ScoredEntry struct { LastPush time.Time } +// ReportSummary contains grouped status counts. +type ReportSummary struct { + Healthy int `json:"healthy"` + Inactive int `json:"inactive"` + Stale int `json:"stale"` + Archived int `json:"archived"` + Dead int `json:"dead"` +} + +// ReportData is the full machine-readable report model. +type ReportData struct { + GeneratedAt time.Time `json:"generated_at"` + Total int `json:"total"` + Summary ReportSummary `json:"summary"` + Entries []ScoredEntry `json:"entries"` + ByStatus map[Status][]ScoredEntry `json:"by_status"` +} + // Score computes the health status of a GitHub repo. func Score(info checker.RepoInfo) Status { if info.IsDisabled { @@ -89,45 +108,64 @@ func ToCacheEntries(scored []ScoredEntry) []cache.HealthEntry { func GenerateReport(scored []ScoredEntry) string { var b strings.Builder - groups := map[Status][]ScoredEntry{} - for _, s := range scored { - groups[s.Status] = append(groups[s.Status], s) - } + data := BuildReportData(scored) + groups := data.ByStatus fmt.Fprintf(&b, "# Health Report\n\n") - fmt.Fprintf(&b, "**Generated:** %s\n\n", time.Now().UTC().Format(time.RFC3339)) - fmt.Fprintf(&b, "**Total:** %d repositories\n\n", len(scored)) + fmt.Fprintf(&b, "**Generated:** %s\n\n", data.GeneratedAt.Format(time.RFC3339)) + fmt.Fprintf(&b, "**Total:** %d repositories\n\n", data.Total) fmt.Fprintf(&b, "## Summary\n\n") - fmt.Fprintf(&b, "- Healthy: %d\n", len(groups[StatusHealthy])) - fmt.Fprintf(&b, "- Inactive (1-2 years): %d\n", len(groups[StatusInactive])) - fmt.Fprintf(&b, "- Stale (2+ years): %d\n", len(groups[StatusStale])) - fmt.Fprintf(&b, "- Archived: %d\n", len(groups[StatusArchived])) - fmt.Fprintf(&b, "- Dead: %d\n\n", len(groups[StatusDead])) + fmt.Fprintf(&b, "- Healthy: %d\n", data.Summary.Healthy) + fmt.Fprintf(&b, "- Inactive (1-2 years): %d\n", data.Summary.Inactive) + fmt.Fprintf(&b, "- Stale (2+ years): %d\n", data.Summary.Stale) + fmt.Fprintf(&b, "- Archived: %d\n", data.Summary.Archived) + fmt.Fprintf(&b, "- Dead: %d\n\n", data.Summary.Dead) - writeSection := func(title string, status Status, limit int) { + writeSection := func(title string, status Status) { entries := groups[status] if len(entries) == 0 { return } fmt.Fprintf(&b, "## %s\n\n", title) - count := len(entries) - if limit > 0 && count > limit { - count = limit - } - for _, e := range entries[:count] { + for _, e := range entries { fmt.Fprintf(&b, "- [%s](%s) - Stars: %d - Last push: %s\n", e.Name, e.URL, e.Stars, e.LastPush.Format("2006-01-02")) } - if len(entries) > count { - fmt.Fprintf(&b, "\n... and %d more\n", len(entries)-count) - } b.WriteString("\n") } - writeSection("Archived (should mark :skull:)", StatusArchived, 0) - writeSection("Stale (2+ years inactive)", StatusStale, 50) - writeSection("Inactive (1-2 years)", StatusInactive, 30) + writeSection("Archived (should mark :skull:)", StatusArchived) + writeSection("Stale (2+ years inactive)", StatusStale) + writeSection("Inactive (1-2 years)", StatusInactive) return b.String() } + +// BuildReportData returns full report data for machine-readable and markdown rendering. +func BuildReportData(scored []ScoredEntry) ReportData { + groups := map[Status][]ScoredEntry{} + for _, s := range scored { + groups[s.Status] = append(groups[s.Status], s) + } + + return ReportData{ + GeneratedAt: time.Now().UTC(), + Total: len(scored), + Summary: ReportSummary{ + Healthy: len(groups[StatusHealthy]), + Inactive: len(groups[StatusInactive]), + Stale: len(groups[StatusStale]), + Archived: len(groups[StatusArchived]), + Dead: len(groups[StatusDead]), + }, + Entries: scored, + ByStatus: groups, + } +} + +// GenerateJSONReport returns the full report as pretty-printed JSON. +func GenerateJSONReport(scored []ScoredEntry) ([]byte, error) { + data := BuildReportData(scored) + return json.MarshalIndent(data, "", " ") +} diff --git a/internal/scorer/scorer_test.go b/internal/scorer/scorer_test.go index 1aab44af9..1d3251522 100644 --- a/internal/scorer/scorer_test.go +++ b/internal/scorer/scorer_test.go @@ -1,6 +1,8 @@ package scorer import ( + "encoding/json" + "fmt" "strings" "testing" "time" @@ -82,6 +84,68 @@ func TestGenerateReport(t *testing.T) { } } +func TestGenerateReportShowsAllEntries(t *testing.T) { + var results []ScoredEntry + for i := 0; i < 55; i++ { + results = append(results, ScoredEntry{ + URL: fmt.Sprintf("https://github.com/stale/%d", i), + Name: fmt.Sprintf("stale/%d", i), + Status: StatusStale, + Stars: i, + LastPush: time.Now().AddDate(-3, 0, 0), + }) + } + + report := GenerateReport(results) + if strings.Contains(report, "... and") { + t.Fatal("report should not be truncated") + } + if !strings.Contains(report, "stale/54") { + t.Fatal("report should contain all entries") + } +} + +func TestGenerateJSONReport(t *testing.T) { + results := []ScoredEntry{ + { + URL: "https://github.com/a/a", + Name: "a/a", + Status: StatusHealthy, + Stars: 100, + LastPush: time.Now(), + }, + { + URL: "https://github.com/b/b", + Name: "b/b", + Status: StatusStale, + Stars: 50, + LastPush: time.Now().AddDate(-3, 0, 0), + }, + } + + data, err := GenerateJSONReport(results) + if err != nil { + t.Fatalf("GenerateJSONReport() error = %v", err) + } + + var report ReportData + if err := json.Unmarshal(data, &report); err != nil { + t.Fatalf("json.Unmarshal() error = %v", err) + } + if report.Total != 2 { + t.Fatalf("report.Total = %d, want 2", report.Total) + } + if report.Summary.Healthy != 1 || report.Summary.Stale != 1 { + t.Fatalf("summary = %+v, want healthy=1 stale=1", report.Summary) + } + if len(report.Entries) != 2 { + t.Fatalf("len(report.Entries) = %d, want 2", len(report.Entries)) + } + if len(report.ByStatus[StatusStale]) != 1 { + t.Fatalf("len(report.ByStatus[stale]) = %d, want 1", len(report.ByStatus[StatusStale])) + } +} + func TestScoreAll(t *testing.T) { infos := []checker.RepoInfo{ {Owner: "a", Name: "a", PushedAt: time.Now(), Stars: 10}, From 0089da7ecb870aaeb279ddf13d45bed40c622dba Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 01:07:53 +0100 Subject: [PATCH 252/327] Expand Makefile workflow dependencies and sync parser formatting --- Makefile | 135 ++++++++++++++++++++++++++++++++++---- internal/parser/parser.go | 4 +- internal/parser/types.go | 2 +- 3 files changed, 126 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 9101c7e81..47e67a8d9 100644 --- a/Makefile +++ b/Makefile @@ -1,23 +1,134 @@ -BINARY := awesome-docker -.PHONY: build test lint check health report clean +SHELL := /bin/bash -build: - go build -o $(BINARY) ./cmd/awesome-docker +BINARY ?= awesome-docker +GO ?= go +CMD_PACKAGE := ./cmd/awesome-docker +INTERNAL_PACKAGES := ./internal/... +WEBSITE_OUTPUT := website/index.html +HEALTH_CACHE := config/health_cache.yaml +HEALTH_REPORT_MD := HEALTH_REPORT.md +HEALTH_REPORT_JSON := HEALTH_REPORT.json -test: - go test ./internal/... -v +GO_SOURCES := $(shell find cmd internal -type f -name '*.go') +BUILD_INPUTS := $(GO_SOURCES) go.mod go.sum +WEBSITE_INPUTS := README.md config/website.tmpl.html +HEALTH_INPUTS := README.md config/exclude.yaml -lint: build +.DEFAULT_GOAL := help + +.PHONY: help \ + build rebuild clean \ + fmt test test-race \ + lint lint-fix check check-pr validate website \ + guard-github-token health health-cache \ + report report-json report-file report-json-file health-report \ + workflow-dev workflow-pr workflow-maint workflow-ci + +help: ## Show the full local workflow and available targets + @echo "awesome-docker Makefile" + @echo + @echo "Workflows:" + @echo " make workflow-dev # local iteration (fmt + test + lint + check-pr + website)" + @echo " make workflow-pr # recommended before opening/updating a PR" + @echo " make workflow-maint # repository maintenance (health + JSON report)" + @echo " make workflow-ci # CI-equivalent checks" + @echo + @echo "Core targets:" + @echo " make build # build CLI binary" + @echo " make test # run internal Go tests" + @echo " make lint # validate README formatting/content rules" + @echo " make check # check links (uses GITHUB_TOKEN when set)" + @echo " make validate # run PR validation (lint + check --pr)" + @echo " make website # generate website/index.html" + @echo " make report-file # generate HEALTH_REPORT.md" + @echo " make report-json-file# generate HEALTH_REPORT.json" + @echo " make health # refresh health cache (requires GITHUB_TOKEN)" + @echo " make report # print markdown health report" + @echo " make report-json # print full JSON health report" + @echo + @echo "Generated artifacts:" + @echo " $(BINARY)" + @echo " $(WEBSITE_OUTPUT)" + @echo " $(HEALTH_CACHE)" + @echo " $(HEALTH_REPORT_MD)" + @echo " $(HEALTH_REPORT_JSON)" + +$(BINARY): $(BUILD_INPUTS) + $(GO) build -o $(BINARY) $(CMD_PACKAGE) + +build: $(BINARY) ## Build CLI binary + +rebuild: clean build ## Rebuild from scratch + +clean: ## Remove generated binary + rm -f $(BINARY) $(HEALTH_REPORT_MD) $(HEALTH_REPORT_JSON) + +fmt: ## Format Go code + $(GO) fmt ./... + +test: ## Run internal unit tests + $(GO) test $(INTERNAL_PACKAGES) -v + +test-race: ## Run internal tests with race detector + $(GO) test $(INTERNAL_PACKAGES) -race + +lint: build ## Validate README formatting/content rules ./$(BINARY) lint -check: build +lint-fix: build ## Auto-fix lint issues when possible + ./$(BINARY) lint --fix + +check: build ## Check links (GitHub checks enabled when GITHUB_TOKEN is set) ./$(BINARY) check -health: build +check-pr: build ## Check links in PR mode (external links only) + ./$(BINARY) check --pr + +validate: build ## Run PR validation (lint + check --pr) + ./$(BINARY) validate + +$(WEBSITE_OUTPUT): $(BINARY) $(WEBSITE_INPUTS) + ./$(BINARY) build + +website: $(WEBSITE_OUTPUT) ## Generate website from README + +guard-github-token: + @if [ -z "$$GITHUB_TOKEN" ]; then \ + echo "GITHUB_TOKEN is required for this target."; \ + echo "Set it with: export GITHUB_TOKEN="; \ + exit 1; \ + fi + +$(HEALTH_CACHE): guard-github-token $(BINARY) $(HEALTH_INPUTS) ./$(BINARY) health -report: build +health-cache: $(HEALTH_CACHE) ## Update config/health_cache.yaml + +health: ## Refresh health cache from GitHub metadata + @$(MAKE) --no-print-directory -B health-cache + +report: build ## Print markdown health report from cache ./$(BINARY) report -clean: - rm -f $(BINARY) +report-json: build ## Print full health report as JSON + ./$(BINARY) report --json + +$(HEALTH_REPORT_MD): $(BINARY) $(HEALTH_CACHE) + ./$(BINARY) report > $(HEALTH_REPORT_MD) + +report-file: $(HEALTH_REPORT_MD) ## Generate HEALTH_REPORT.md from cache + +$(HEALTH_REPORT_JSON): $(BINARY) $(HEALTH_CACHE) + ./$(BINARY) report --json > $(HEALTH_REPORT_JSON) + +report-json-file: $(HEALTH_REPORT_JSON) ## Generate HEALTH_REPORT.json from cache + +health-report: health report-file ## Refresh health cache then generate HEALTH_REPORT.md + +workflow-dev: fmt test lint check-pr website ## Full local development workflow + +workflow-pr: fmt test validate ## Recommended workflow before opening a PR + +workflow-maint: health report-json-file ## Weekly maintenance workflow + +workflow-ci: test validate ## CI-equivalent validation workflow diff --git a/internal/parser/parser.go b/internal/parser/parser.go index 7fbb09313..a571cf2b3 100644 --- a/internal/parser/parser.go +++ b/internal/parser/parser.go @@ -11,8 +11,8 @@ import ( // entryRe matches: - [Name](URL) - Description // Also handles optional markers/text between URL and " - " separator, e.g.: // -// - [Name](URL) :skull: - Description -// - [Name](URL) (2) :skull: - Description +// - [Name](URL) :skull: - Description +// - [Name](URL) (2) :skull: - Description var entryRe = regexp.MustCompile(`^[-*]\s+\[([^\]]+)\]\(([^)]+)\)(.*?)\s+-\s+(.+)$`) // headingRe matches markdown headings: # Title, ## Title, etc. diff --git a/internal/parser/types.go b/internal/parser/types.go index 43a1ccf4f..2c58bd56d 100644 --- a/internal/parser/types.go +++ b/internal/parser/types.go @@ -30,6 +30,6 @@ type Section struct { // Document is the parsed representation of the full README. type Document struct { - Preamble []string // lines before the first section + Preamble []string // lines before the first section Sections []Section } From 8dc187abc3883440700bfbf65f6d28f0e31103c5 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 01:09:04 +0100 Subject: [PATCH 253/327] gofumpt --- internal/builder/builder.go | 2 +- internal/builder/builder_test.go | 8 ++++---- internal/cache/cache.go | 2 +- internal/cache/cache_test.go | 4 ++-- internal/parser/parser.go | 3 ++- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/internal/builder/builder.go b/internal/builder/builder.go index 872072e81..ac85f31a0 100644 --- a/internal/builder/builder.go +++ b/internal/builder/builder.go @@ -44,7 +44,7 @@ func Build(markdownPath, templatePath, outputPath string) error { output = strings.Replace(output, r.old, r.new, 1) } - if err := os.WriteFile(outputPath, []byte(output), 0644); err != nil { + if err := os.WriteFile(outputPath, []byte(output), 0o644); err != nil { return fmt.Errorf("write output: %w", err) } return nil diff --git a/internal/builder/builder_test.go b/internal/builder/builder_test.go index cdf992dd1..7fd631e01 100644 --- a/internal/builder/builder_test.go +++ b/internal/builder/builder_test.go @@ -12,7 +12,7 @@ func TestBuild(t *testing.T) { md := "# Test List\n\n- [Example](https://example.com) - A test entry.\n" mdPath := filepath.Join(dir, "README.md") - if err := os.WriteFile(mdPath, []byte(md), 0644); err != nil { + if err := os.WriteFile(mdPath, []byte(md), 0o644); err != nil { t.Fatal(err) } @@ -23,7 +23,7 @@ func TestBuild(t *testing.T) { ` tmplPath := filepath.Join(dir, "template.html") - if err := os.WriteFile(tmplPath, []byte(tmpl), 0644); err != nil { + if err := os.WriteFile(tmplPath, []byte(tmpl), 0o644); err != nil { t.Fatal(err) } @@ -51,7 +51,7 @@ func TestBuildWithSectionPlaceholder(t *testing.T) { md := "# Hello\n\nWorld.\n" mdPath := filepath.Join(dir, "README.md") - if err := os.WriteFile(mdPath, []byte(md), 0644); err != nil { + if err := os.WriteFile(mdPath, []byte(md), 0o644); err != nil { t.Fatal(err) } @@ -63,7 +63,7 @@ func TestBuildWithSectionPlaceholder(t *testing.T) { ` tmplPath := filepath.Join(dir, "template.html") - if err := os.WriteFile(tmplPath, []byte(tmpl), 0644); err != nil { + if err := os.WriteFile(tmplPath, []byte(tmpl), 0o644); err != nil { t.Fatal(err) } diff --git a/internal/cache/cache.go b/internal/cache/cache.go index a19089d8d..ce9c67286 100644 --- a/internal/cache/cache.go +++ b/internal/cache/cache.go @@ -76,7 +76,7 @@ func SaveHealthCache(path string, hc *HealthCache) error { if err != nil { return err } - return os.WriteFile(path, data, 0644) + return os.WriteFile(path, data, 0o644) } // Merge updates the cache with new entries, replacing existing ones by URL. diff --git a/internal/cache/cache_test.go b/internal/cache/cache_test.go index a8687432e..71d129336 100644 --- a/internal/cache/cache_test.go +++ b/internal/cache/cache_test.go @@ -14,7 +14,7 @@ func TestLoadExcludeList(t *testing.T) { - https://example.com - https://test.org ` - if err := os.WriteFile(path, []byte(content), 0644); err != nil { + if err := os.WriteFile(path, []byte(content), 0o644); err != nil { t.Fatal(err) } @@ -81,7 +81,7 @@ func TestLoadHealthCacheMissing(t *testing.T) { func TestLoadHealthCacheInvalidYAML(t *testing.T) { dir := t.TempDir() path := filepath.Join(dir, "health.yaml") - if err := os.WriteFile(path, []byte("entries:\n - url: [not yaml"), 0644); err != nil { + if err := os.WriteFile(path, []byte("entries:\n - url: [not yaml"), 0o644); err != nil { t.Fatal(err) } diff --git a/internal/parser/parser.go b/internal/parser/parser.go index a571cf2b3..3b428f1b4 100644 --- a/internal/parser/parser.go +++ b/internal/parser/parser.go @@ -110,7 +110,8 @@ func Parse(r io.Reader) (Document, error) { func buildTree(flat []struct { section Section level int -}) []Section { +}, +) []Section { if len(flat) == 0 { return nil } From 927c3124b8c7c78e34a60fa388857defa28b2d9d Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 01:11:19 +0100 Subject: [PATCH 254/327] Update AGENTS guide for Makefile workflows and generated artifacts --- AGENTS.md | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index eb56acf4c..a7b11e7ce 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,14 +2,22 @@ ## Commands - Build CLI: `make build` (or `go build -o awesome-docker ./cmd/awesome-docker`) +- Rebuild from scratch: `make rebuild` +- Show local workflows: `make help` +- Format Go code: `make fmt` - Run tests: `make test` (runs `go test ./internal/... -v`) +- Race tests: `make test-race` - Lint README rules: `make lint` (runs `./awesome-docker lint`) -- Auto-fix lint issues: `./awesome-docker lint --fix` +- Auto-fix lint issues: `make lint-fix` - Check links: `make check` (runs `./awesome-docker check`; `GITHUB_TOKEN` enables GitHub repo checks) -- PR validation: `./awesome-docker validate` (lint + external link checks in PR mode) -- Build website: `./awesome-docker build` (generates `website/index.html` from `README.md`) -- Health scoring: `make health` (requires `GITHUB_TOKEN`, updates `config/health_cache.yaml`) -- Generate health report: `make report` +- PR-safe link checks: `make check-pr` +- PR validation: `make validate` (lint + external link checks in PR mode) +- Build website: `make website` (generates `website/index.html` from `README.md`) +- Health scoring: `make health` (requires `GITHUB_TOKEN`, refreshes `config/health_cache.yaml`) +- Print health report (Markdown): `make report` +- Print health report (JSON): `make report-json` or `./awesome-docker report --json` +- Generate report files: `make report-file` (`HEALTH_REPORT.md`) and `make report-json-file` (`HEALTH_REPORT.json`) +- Maintenance shortcut: `make workflow-maint` (health + JSON report file) ## Architecture - **Main content**: `README.md` (curated Docker/container resources) @@ -25,7 +33,11 @@ - `config/exclude.yaml` - known link-check exclusions - `config/website.tmpl.html` - HTML template for site generation - `config/health_cache.yaml` - persisted health scoring cache -- **Website output**: `website/index.html` +- **Generated outputs**: + - `awesome-docker` - compiled CLI binary + - `website/index.html` - generated website + - `HEALTH_REPORT.md` - generated markdown report + - `HEALTH_REPORT.json` - generated JSON report ## Code Style - **Language**: Go @@ -47,6 +59,15 @@ - **GitHub Pages deploy**: `.github/workflows/deploy-pages.yml` - On push to `master`, builds CLI, runs `./awesome-docker build`, deploys `website/` +## Makefile Workflow +- The `Makefile` models file dependencies for generated artifacts (`awesome-docker`, `website/index.html`, `config/health_cache.yaml`, `HEALTH_REPORT.md`, `HEALTH_REPORT.json`). +- Prefer `make` targets over ad-hoc command sequences so dependency and regeneration behavior stays consistent. +- Use: + - `make workflow-dev` for local iteration + - `make workflow-pr` before opening/updating a PR + - `make workflow-maint` for health/report maintenance + - `make workflow-ci` for CI-equivalent local checks + ## Content Guidelines (from CONTRIBUTING.md) - Use one link per entry - Prefer project/repository URLs over marketing pages From 89d625229b308cb8f257a223c79ea658250ba4fd Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 01:13:31 +0100 Subject: [PATCH 255/327] Update github actions --- .github/workflows/broken_links.yml | 8 ++++---- .github/workflows/deploy-pages.yml | 8 ++++---- .github/workflows/health_report.yml | 6 +++--- .github/workflows/pull_request.yml | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index 835eed249..cab7e2f6f 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -13,9 +13,9 @@ jobs: issues: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 - - uses: actions/setup-go@v5 + - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # ratchet:actions/setup-go@v6 with: go-version-file: go.mod @@ -45,7 +45,7 @@ jobs: - name: Create/Update Issue for Broken Links if: steps.link_check.outputs.has_errors == 'true' - uses: actions/github-script@v7 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 with: script: | const fs = require('fs'); @@ -81,7 +81,7 @@ jobs: - name: Close Issue if No Errors if: steps.link_check.outputs.has_errors == 'false' - uses: actions/github-script@v7 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 with: script: | const issues = await github.rest.issues.listForRepo({ diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 0316332be..54db0dde0 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -20,9 +20,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 - - uses: actions/setup-go@v5 + - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # ratchet:actions/setup-go@v6 with: go-version-file: go.mod @@ -33,7 +33,7 @@ jobs: run: ./awesome-docker build - name: Upload artifact - uses: actions/upload-pages-artifact@v4 + uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # ratchet:actions/upload-pages-artifact@v4 with: path: ./website @@ -46,4 +46,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # ratchet:actions/deploy-pages@v4 diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 8fc51416d..14e091a59 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -13,9 +13,9 @@ jobs: issues: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 - - uses: actions/setup-go@v5 + - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # ratchet:actions/setup-go@v6 with: go-version-file: go.mod @@ -40,7 +40,7 @@ jobs: - name: Create/Update Issue with Health Report if: steps.report.outputs.has_report == 'true' - uses: actions/github-script@v7 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 with: script: | const fs = require('fs'); diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index edb1936f6..f72cd989d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,9 +11,9 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 - - uses: actions/setup-go@v5 + - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # ratchet:actions/setup-go@v6 with: go-version-file: go.mod From 682cffc308bf604d9875d516ae91d57c990e64cd Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 01:15:15 +0100 Subject: [PATCH 256/327] update dependencies --- Makefile | 8 ++++++++ go.mod | 14 ++++++++------ go.sum | 4 +++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 47e67a8d9..68523a2fa 100644 --- a/Makefile +++ b/Makefile @@ -132,3 +132,11 @@ workflow-pr: fmt test validate ## Recommended workflow before opening a PR workflow-maint: health report-json-file ## Weekly maintenance workflow workflow-ci: test validate ## CI-equivalent validation workflow + +update-ga: + ratchet upgrade .github/workflows/* + +update-go: + go get -u go@latest + go get -u ./... + go mod tidy diff --git a/go.mod b/go.mod index 6a38142d6..57ec3028e 100644 --- a/go.mod +++ b/go.mod @@ -2,14 +2,16 @@ module github.com/veggiemonk/awesome-docker go 1.26.0 -require github.com/spf13/cobra v1.10.2 +require ( + github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed + github.com/spf13/cobra v1.10.2 + github.com/yuin/goldmark v1.7.16 + golang.org/x/oauth2 v0.35.0 + gopkg.in/yaml.v3 v3.0.1 +) require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed // indirect github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf // indirect - github.com/spf13/pflag v1.0.9 // indirect - github.com/yuin/goldmark v1.7.16 // indirect - golang.org/x/oauth2 v0.35.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect + github.com/spf13/pflag v1.0.10 // indirect ) diff --git a/go.sum b/go.sum index 0c38e5035..cc4a312cc 100644 --- a/go.sum +++ b/go.sum @@ -8,13 +8,15 @@ github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf h1:o1uxfymjZ7jZ4M github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf/go.mod h1:9dIRpgIY7hVhoqfe0/FcYp0bpInZaT7dc3BYOprrIUE= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= -github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE= github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From e6e23bf1cff7e93a7a855799defda37c5dc69bff Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 01:20:15 +0100 Subject: [PATCH 257/327] remove netlify status --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 00818bdf3..f7efbd5ea 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Awesome Docker [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)][sindresorhus] [![Netlify Status](https://api.netlify.com/api/v1/badges/8ca86717-11ba-46d4-9d0a-700d8527f13b/deploy-status)](https://app.netlify.com/sites/awesome-docker/deploys)[![Track Awesome List](https://www.trackawesomelist.com/badge.svg)](https://www.trackawesomelist.com/veggiemonk/awesome-docker/)[![Last Commit](https://img.shields.io/github/last-commit/veggiemonk/awesome-docker)](https://github.com/veggiemonk/awesome-docker/commits/main) +# Awesome Docker [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)][sindresorhus] [![Track Awesome List](https://www.trackawesomelist.com/badge.svg)](https://www.trackawesomelist.com/veggiemonk/awesome-docker/)[![Last Commit](https://img.shields.io/github/last-commit/veggiemonk/awesome-docker)](https://github.com/veggiemonk/awesome-docker/commits/main) > A curated list of Docker resources and projects From c14a071c8d7ebd0f9b665e327fdf33d630ccf0a2 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 01:31:37 +0100 Subject: [PATCH 258/327] Improve checker/fixer cohesion and harden workflows --- cmd/awesome-docker/main.go | 33 ++++++++++++----- internal/builder/builder.go | 26 +++++++++++--- internal/builder/builder_test.go | 20 +++++++++++ internal/cache/cache.go | 1 + internal/cache/cache_test.go | 16 +++++++++ internal/checker/http.go | 38 ++++++++++++-------- internal/checker/http_test.go | 38 ++++++++++++++++++++ internal/linter/fixer.go | 61 ++++++++++++++++---------------- internal/linter/fixer_test.go | 53 +++++++++++++++++++++++++++ internal/parser/parser.go | 21 ++++++----- internal/parser/parser_test.go | 14 ++++++++ internal/scorer/scorer.go | 41 +++++++++++---------- 12 files changed, 278 insertions(+), 84 deletions(-) diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index 254028dac..9c336feb8 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -121,7 +121,10 @@ func checkCmd() *cobra.Command { var urls []string collectURLs(doc.Sections, &urls) - exclude, _ := cache.LoadExcludeList(excludePath) + exclude, err := cache.LoadExcludeList(excludePath) + if err != nil { + return fmt.Errorf("load exclude list: %w", err) + } ghURLs, extURLs := checker.PartitionLinks(urls) @@ -138,13 +141,15 @@ func checkCmd() *cobra.Command { } } + var ghErrs []error if !prMode { token := os.Getenv("GITHUB_TOKEN") if token != "" { fmt.Printf("Checking %d GitHub repositories...\n", len(ghURLs)) gc := checker.NewGitHubChecker(token) _, errs := gc.CheckRepos(context.Background(), ghURLs, 50) - for _, e := range errs { + ghErrs = errs + for _, e := range ghErrs { fmt.Printf(" GitHub error: %v\n", e) } } else { @@ -164,8 +169,16 @@ func checkCmd() *cobra.Command { for _, r := range broken { fmt.Printf(" %s -> %d %s\n", r.URL, r.StatusCode, r.Error) } + } + if len(broken) > 0 && len(ghErrs) > 0 { + return fmt.Errorf("found %d broken links and %d GitHub API errors", len(broken), len(ghErrs)) + } + if len(broken) > 0 { return fmt.Errorf("found %d broken links", len(broken)) } + if len(ghErrs) > 0 { + return fmt.Errorf("github checks failed with %d errors", len(ghErrs)) + } fmt.Println("All links OK") return nil @@ -256,11 +269,12 @@ func reportCmd() *cobra.Command { var scored []scorer.ScoredEntry for _, e := range hc.Entries { scored = append(scored, scorer.ScoredEntry{ - URL: e.URL, - Name: e.Name, - Status: scorer.Status(e.Status), - Stars: e.Stars, - LastPush: e.LastPush, + URL: e.URL, + Name: e.Name, + Status: scorer.Status(e.Status), + Stars: e.Stars, + HasLicense: e.HasLicense, + LastPush: e.LastPush, }) } @@ -307,7 +321,10 @@ func validateCmd() *cobra.Command { fmt.Println("\n=== Checking links (PR mode) ===") var urls []string collectURLs(doc.Sections, &urls) - exclude, _ := cache.LoadExcludeList(excludePath) + exclude, err := cache.LoadExcludeList(excludePath) + if err != nil { + return fmt.Errorf("load exclude list: %w", err) + } _, extURLs := checker.PartitionLinks(urls) fmt.Printf("Checking %d external links...\n", len(extURLs)) diff --git a/internal/builder/builder.go b/internal/builder/builder.go index ac85f31a0..6b2cd201f 100644 --- a/internal/builder/builder.go +++ b/internal/builder/builder.go @@ -36,12 +36,30 @@ func Build(markdownPath, templatePath, outputPath string) error { // Inject into template — support both placeholder formats output := string(tmpl) - replacements := []struct{ old, new string }{ - {`
`, `
` + buf.String() + `
`}, - {`
`, `
` + buf.String() + `
`}, + replacements := []struct { + old string + new string + }{ + { + old: `
`, + new: `
` + buf.String() + `
`, + }, + { + old: `
`, + new: `
` + buf.String() + `
`, + }, } + + replaced := false for _, r := range replacements { - output = strings.Replace(output, r.old, r.new, 1) + if strings.Contains(output, r.old) { + output = strings.Replace(output, r.old, r.new, 1) + replaced = true + break + } + } + if !replaced { + return fmt.Errorf("template missing supported markdown placeholder") } if err := os.WriteFile(outputPath, []byte(output), 0o644); err != nil { diff --git a/internal/builder/builder_test.go b/internal/builder/builder_test.go index 7fd631e01..5cf98c3f0 100644 --- a/internal/builder/builder_test.go +++ b/internal/builder/builder_test.go @@ -111,3 +111,23 @@ func TestBuildRealREADME(t *testing.T) { } t.Logf("Generated %d bytes", info.Size()) } + +func TestBuildFailsWithoutPlaceholder(t *testing.T) { + dir := t.TempDir() + + mdPath := filepath.Join(dir, "README.md") + if err := os.WriteFile(mdPath, []byte("# Title\n"), 0o644); err != nil { + t.Fatal(err) + } + + tmplPath := filepath.Join(dir, "template.html") + if err := os.WriteFile(tmplPath, []byte("
"), 0o644); err != nil { + t.Fatal(err) + } + + outPath := filepath.Join(dir, "index.html") + err := Build(mdPath, tmplPath, outPath) + if err == nil { + t.Fatal("expected Build to fail when template has no supported placeholder") + } +} diff --git a/internal/cache/cache.go b/internal/cache/cache.go index ce9c67286..0c481ba3c 100644 --- a/internal/cache/cache.go +++ b/internal/cache/cache.go @@ -89,6 +89,7 @@ func (hc *HealthCache) Merge(entries []HealthEntry) { if i, exists := index[e.URL]; exists { hc.Entries[i] = e } else { + index[e.URL] = len(hc.Entries) hc.Entries = append(hc.Entries, e) } } diff --git a/internal/cache/cache_test.go b/internal/cache/cache_test.go index 71d129336..52a161d28 100644 --- a/internal/cache/cache_test.go +++ b/internal/cache/cache_test.go @@ -119,3 +119,19 @@ func TestMerge(t *testing.T) { t.Errorf("last entry = %q, want C", hc.Entries[2].Name) } } + +func TestMergeDeduplicatesIncomingBatch(t *testing.T) { + hc := &HealthCache{} + + hc.Merge([]HealthEntry{ + {URL: "https://github.com/c/c", Name: "C", Stars: 1}, + {URL: "https://github.com/c/c", Name: "C", Stars: 2}, + }) + + if len(hc.Entries) != 1 { + t.Fatalf("entries = %d, want 1", len(hc.Entries)) + } + if hc.Entries[0].Stars != 2 { + t.Fatalf("stars = %d, want last value 2", hc.Entries[0].Stars) + } +} diff --git a/internal/checker/http.go b/internal/checker/http.go index 3e1792974..7aa0a824f 100644 --- a/internal/checker/http.go +++ b/internal/checker/http.go @@ -25,6 +25,15 @@ type LinkResult struct { Error string } +func shouldFallbackToGET(statusCode int) bool { + switch statusCode { + case http.StatusBadRequest, http.StatusForbidden, http.StatusMethodNotAllowed, http.StatusNotImplemented: + return true + default: + return false + } +} + // CheckLink checks a single URL. Uses HEAD first, falls back to GET. func CheckLink(url string, client *http.Client) LinkResult { result := LinkResult{URL: url} @@ -32,14 +41,6 @@ func CheckLink(url string, client *http.Client) LinkResult { ctx, cancel := context.WithTimeout(context.Background(), defaultTimeout) defer cancel() - // Try HEAD first - req, err := http.NewRequestWithContext(ctx, http.MethodHead, url, nil) - if err != nil { - result.Error = err.Error() - return result - } - req.Header.Set("User-Agent", userAgent) - // Track redirects var finalURL string origCheckRedirect := client.CheckRedirect @@ -52,16 +53,25 @@ func CheckLink(url string, client *http.Client) LinkResult { } defer func() { client.CheckRedirect = origCheckRedirect }() - resp, err := client.Do(req) + doRequest := func(method string) (*http.Response, error) { + req, err := http.NewRequestWithContext(ctx, method, url, nil) + if err != nil { + return nil, err + } + req.Header.Set("User-Agent", userAgent) + return client.Do(req) + } + + resp, err := doRequest(http.MethodHead) if err != nil { - // Fallback to GET - req, err2 := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) - if err2 != nil { + resp, err = doRequest(http.MethodGet) + if err != nil { result.Error = err.Error() return result } - req.Header.Set("User-Agent", userAgent) - resp, err = client.Do(req) + } else if shouldFallbackToGET(resp.StatusCode) { + resp.Body.Close() + resp, err = doRequest(http.MethodGet) if err != nil { result.Error = err.Error() return result diff --git a/internal/checker/http_test.go b/internal/checker/http_test.go index b8eef4527..e51188d6b 100644 --- a/internal/checker/http_test.go +++ b/internal/checker/http_test.go @@ -78,3 +78,41 @@ func TestCheckLinks(t *testing.T) { } } } + +func TestCheckLinkFallbackToGETOnMethodNotAllowed(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == http.MethodHead { + w.WriteHeader(http.StatusMethodNotAllowed) + return + } + w.WriteHeader(http.StatusOK) + })) + defer server.Close() + + result := CheckLink(server.URL, &http.Client{}) + if !result.OK { + t.Errorf("expected OK after GET fallback, got status %d, error: %s", result.StatusCode, result.Error) + } + if result.StatusCode != http.StatusOK { + t.Errorf("status = %d, want 200", result.StatusCode) + } +} + +func TestCheckLinkFallbackToGETOnForbiddenHead(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Method == http.MethodHead { + w.WriteHeader(http.StatusForbidden) + return + } + w.WriteHeader(http.StatusOK) + })) + defer server.Close() + + result := CheckLink(server.URL, &http.Client{}) + if !result.OK { + t.Errorf("expected OK after GET fallback, got status %d, error: %s", result.StatusCode, result.Error) + } + if result.StatusCode != http.StatusOK { + t.Errorf("status = %d, want 200", result.StatusCode) + } +} diff --git a/internal/linter/fixer.go b/internal/linter/fixer.go index edb22e087..4d8eac74b 100644 --- a/internal/linter/fixer.go +++ b/internal/linter/fixer.go @@ -20,6 +20,9 @@ var attributionRe = regexp.MustCompile(`\s+(?:(?:[Cc]reated|[Mm]aintained|[Bb]ui // bareAttributionRe matches: by @author at end of line (no link). var bareAttributionRe = regexp.MustCompile(`\s+by\s+@\w+\.?$`) +// sectionHeadingRe matches markdown headings. +var sectionHeadingRe = regexp.MustCompile(`^(#{1,6})\s+(.+?)(?:\s*)?$`) + // RemoveAttribution strips author attribution from a description string. func RemoveAttribution(desc string) string { desc = attributionRe.ReplaceAllString(desc, "") @@ -47,12 +50,6 @@ func FormatEntry(e parser.Entry) string { return fmt.Sprintf("- [%s](%s) - %s", e.Name, e.URL, desc) } -// entryGroup tracks a consecutive run of entry lines. -type entryGroup struct { - startIdx int // index in lines slice - entries []parser.Entry -} - // FixFile reads the README, fixes entries (capitalize, period, remove attribution, // sort), and writes the result back. func FixFile(path string) (int, error) { @@ -71,34 +68,39 @@ func FixFile(path string) (int, error) { return 0, err } - // Identify entry groups (consecutive parsed entry lines) - var groups []entryGroup - var current *entryGroup fixCount := 0 + var headingLines []int for i, line := range lines { - entry, err := parser.ParseEntry(line, i+1) - if err != nil { - // Not an entry — close any active group - if current != nil { - groups = append(groups, *current) - current = nil + if sectionHeadingRe.MatchString(line) { + headingLines = append(headingLines, i) + } + } + + // Process each heading block independently to match linter sort scope. + for i, headingIdx := range headingLines { + start := headingIdx + 1 + end := len(lines) + if i+1 < len(headingLines) { + end = headingLines[i+1] + } + + var entryPositions []int + var entries []parser.Entry + for lineIdx := start; lineIdx < end; lineIdx++ { + entry, err := parser.ParseEntry(lines[lineIdx], lineIdx+1) + if err != nil { + continue } - continue + entryPositions = append(entryPositions, lineIdx) + entries = append(entries, entry) } - if current == nil { - current = &entryGroup{startIdx: i} + if len(entries) == 0 { + continue } - current.entries = append(current.entries, entry) - } - if current != nil { - groups = append(groups, *current) - } - // Process each group: fix entries, sort, replace lines - for _, g := range groups { var fixed []parser.Entry - for _, e := range g.entries { + for _, e := range entries { f := FixEntry(e) f.Description = RemoveAttribution(f.Description) // Re-apply period after removing attribution (it may have been stripped) @@ -109,13 +111,12 @@ func FixFile(path string) (int, error) { } sorted := SortEntries(fixed) - for j, e := range sorted { newLine := FormatEntry(e) - idx := g.startIdx + j - if lines[idx] != newLine { + lineIdx := entryPositions[j] + if lines[lineIdx] != newLine { fixCount++ - lines[idx] = newLine + lines[lineIdx] = newLine } } } diff --git a/internal/linter/fixer_test.go b/internal/linter/fixer_test.go index ae37ef0d8..6872ce77a 100644 --- a/internal/linter/fixer_test.go +++ b/internal/linter/fixer_test.go @@ -138,3 +138,56 @@ Some text here. t.Errorf("expected period added, got:\n%s", result) } } + +func TestFixFileSortsAcrossBlankLinesAndIsIdempotent(t *testing.T) { + content := `# Awesome Docker + +## Tools + +- [Zulu](https://example.com/zulu) - z tool + +- [Alpha](https://example.com/alpha) - a tool +` + + tmp, err := os.CreateTemp("", "readme-*.md") + if err != nil { + t.Fatal(err) + } + defer os.Remove(tmp.Name()) + + if _, err := tmp.WriteString(content); err != nil { + t.Fatal(err) + } + tmp.Close() + + firstCount, err := FixFile(tmp.Name()) + if err != nil { + t.Fatal(err) + } + if firstCount == 0 { + t.Fatal("expected first run to apply fixes") + } + + firstData, err := os.ReadFile(tmp.Name()) + if err != nil { + t.Fatal(err) + } + firstResult := string(firstData) + + alphaIdx := strings.Index(firstResult, "[Alpha]") + zuluIdx := strings.Index(firstResult, "[Zulu]") + if alphaIdx == -1 || zuluIdx == -1 { + t.Fatalf("expected both Alpha and Zulu in result:\n%s", firstResult) + } + if alphaIdx > zuluIdx { + t.Fatalf("expected Alpha before Zulu after fix:\n%s", firstResult) + } + + secondCount, err := FixFile(tmp.Name()) + if err != nil { + t.Fatal(err) + } + if secondCount != 0 { + t.Fatalf("expected second run to be idempotent, got %d changes", secondCount) + } +} diff --git a/internal/parser/parser.go b/internal/parser/parser.go index 3b428f1b4..5eb0d9307 100644 --- a/internal/parser/parser.go +++ b/internal/parser/parser.go @@ -18,10 +18,13 @@ var entryRe = regexp.MustCompile(`^[-*]\s+\[([^\]]+)\]\(([^)]+)\)(.*?)\s+-\s+(.+ // headingRe matches markdown headings: # Title, ## Title, etc. var headingRe = regexp.MustCompile(`^(#{1,6})\s+(.+?)(?:\s*)?$`) -var markerMap = map[string]Marker{ - ":skull:": MarkerAbandoned, - ":heavy_dollar_sign:": MarkerPaid, - ":construction:": MarkerWIP, +var markerDefs = []struct { + text string + marker Marker +}{ + {text: ":skull:", marker: MarkerAbandoned}, + {text: ":heavy_dollar_sign:", marker: MarkerPaid}, + {text: ":construction:", marker: MarkerWIP}, } // ParseEntry parses a single markdown list line into an Entry. @@ -36,11 +39,11 @@ func ParseEntry(line string, lineNum int) (Entry, error) { var markers []Marker // Extract markers from both the middle section and the description - for text, marker := range markerMap { - if strings.Contains(middle, text) || strings.Contains(desc, text) { - markers = append(markers, marker) - middle = strings.ReplaceAll(middle, text, "") - desc = strings.ReplaceAll(desc, text, "") + for _, def := range markerDefs { + if strings.Contains(middle, def.text) || strings.Contains(desc, def.text) { + markers = append(markers, def.marker) + middle = strings.ReplaceAll(middle, def.text, "") + desc = strings.ReplaceAll(desc, def.text, "") } } desc = strings.TrimSpace(desc) diff --git a/internal/parser/parser_test.go b/internal/parser/parser_test.go index d414747fa..9f86b6f5e 100644 --- a/internal/parser/parser_test.go +++ b/internal/parser/parser_test.go @@ -54,6 +54,20 @@ func TestParseEntryMultipleMarkers(t *testing.T) { } } +func TestParseEntryMarkersCanonicalOrder(t *testing.T) { + line := `- [SomeProject](https://example.com) - :construction: A project. :skull:` + entry, err := ParseEntry(line, 1) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if len(entry.Markers) != 2 { + t.Fatalf("markers count = %d, want 2", len(entry.Markers)) + } + if entry.Markers[0] != MarkerAbandoned || entry.Markers[1] != MarkerWIP { + t.Fatalf("marker order = %v, want [MarkerAbandoned MarkerWIP]", entry.Markers) + } +} + func TestParseDocument(t *testing.T) { input := `# Awesome Docker diff --git a/internal/scorer/scorer.go b/internal/scorer/scorer.go index f2f34d614..1920e0cf6 100644 --- a/internal/scorer/scorer.go +++ b/internal/scorer/scorer.go @@ -23,12 +23,13 @@ const ( // ScoredEntry is a repo with its computed health status. type ScoredEntry struct { - URL string - Name string - Status Status - Stars int - Forks int - LastPush time.Time + URL string + Name string + Status Status + Stars int + Forks int + HasLicense bool + LastPush time.Time } // ReportSummary contains grouped status counts. @@ -75,12 +76,13 @@ func ScoreAll(infos []checker.RepoInfo) []ScoredEntry { results := make([]ScoredEntry, len(infos)) for i, info := range infos { results[i] = ScoredEntry{ - URL: info.URL, - Name: fmt.Sprintf("%s/%s", info.Owner, info.Name), - Status: Score(info), - Stars: info.Stars, - Forks: info.Forks, - LastPush: info.PushedAt, + URL: info.URL, + Name: fmt.Sprintf("%s/%s", info.Owner, info.Name), + Status: Score(info), + Stars: info.Stars, + Forks: info.Forks, + HasLicense: info.HasLicense, + LastPush: info.PushedAt, } } return results @@ -92,13 +94,14 @@ func ToCacheEntries(scored []ScoredEntry) []cache.HealthEntry { now := time.Now().UTC() for i, s := range scored { entries[i] = cache.HealthEntry{ - URL: s.URL, - Name: s.Name, - Status: string(s.Status), - Stars: s.Stars, - Forks: s.Forks, - LastPush: s.LastPush, - CheckedAt: now, + URL: s.URL, + Name: s.Name, + Status: string(s.Status), + Stars: s.Stars, + Forks: s.Forks, + HasLicense: s.HasLicense, + LastPush: s.LastPush, + CheckedAt: now, } } return entries From 9a5331398d4d618ab59ec10453b441e8d55f5550 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 01:44:56 +0100 Subject: [PATCH 259/327] Add ci subcommands and simplify scheduled workflows --- .github/workflows/broken_links.yml | 27 +- .github/workflows/health_report.yml | 24 +- cmd/awesome-docker/main.go | 526 +++++++++++++++++++++------- 3 files changed, 419 insertions(+), 158 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index cab7e2f6f..d300688f2 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -5,9 +5,14 @@ on: - cron: "0 2 * * 6" workflow_dispatch: +concurrency: + group: broken-links-${{ github.ref }} + cancel-in-progress: false + jobs: check-links: runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read issues: write @@ -24,22 +29,7 @@ jobs: - name: Run Link Check id: link_check - run: | - set +e - ./awesome-docker check > link_check_output.txt 2>&1 - exit_code=$? - set -e - - has_errors=false - if [ "$exit_code" -ne 0 ]; then - has_errors=true - fi - if grep -qi "broken links" link_check_output.txt; then - has_errors=true - fi - - echo "has_errors=$has_errors" >> "$GITHUB_OUTPUT" - echo "check_exit_code=$exit_code" >> "$GITHUB_OUTPUT" + run: ./awesome-docker ci broken-links --issue-file broken_links_issue.md --github-output "$GITHUB_OUTPUT" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -49,10 +39,7 @@ jobs: with: script: | const fs = require('fs'); - const output = fs.readFileSync('link_check_output.txt', 'utf8'); - const exitCode = '${{ steps.link_check.outputs.check_exit_code }}'; - - const issueBody = `# Broken Links Detected\n\nThe weekly link check found broken links or the checker failed to execute cleanly.\n\nChecker exit code: ${exitCode}\n\n\`\`\`\n${output}\n\`\`\`\n\n## Action Required\n\n- Update the URL if the resource moved\n- Remove the entry if permanently unavailable\n- Add to \`config/exclude.yaml\` if a known false positive\n- Investigate checker failures when exit code is non-zero\n\n---\n*Auto-generated by broken_links.yml*`; + const issueBody = fs.readFileSync('broken_links_issue.md', 'utf8'); const issues = await github.rest.issues.listForRepo({ owner: context.repo.owner, diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 14e091a59..094518261 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -5,9 +5,14 @@ on: - cron: "0 9 * * 1" workflow_dispatch: +concurrency: + group: health-report-${{ github.ref }} + cancel-in-progress: false + jobs: health-check: runs-on: ubuntu-latest + timeout-minutes: 30 permissions: contents: read issues: write @@ -22,22 +27,12 @@ jobs: - name: Build run: go build -o awesome-docker ./cmd/awesome-docker - - name: Run Health Scoring - run: ./awesome-docker health - continue-on-error: true + - name: Run Health + Report + id: report + run: ./awesome-docker ci health-report --issue-file health_report.txt --github-output "$GITHUB_OUTPUT" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Generate Report - id: report - run: | - ./awesome-docker report > health_report.txt 2>&1 || true - if [ -s health_report.txt ]; then - echo "has_report=true" >> "$GITHUB_OUTPUT" - else - echo "has_report=false" >> "$GITHUB_OUTPUT" - fi - - name: Create/Update Issue with Health Report if: steps.report.outputs.has_report == 'true' uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 @@ -45,8 +40,7 @@ jobs: script: | const fs = require('fs'); const report = fs.readFileSync('health_report.txt', 'utf8'); - - const issueBody = report + '\n\n---\n*Auto-generated weekly by health_report.yml*'; + const issueBody = report; const issues = await github.rest.issues.listForRepo({ owner: context.repo.owner, diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index 9c336feb8..5ad2518b4 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -4,6 +4,8 @@ import ( "context" "fmt" "os" + "strconv" + "strings" "github.com/spf13/cobra" "github.com/veggiemonk/awesome-docker/internal/builder" @@ -23,6 +25,15 @@ const ( version = "0.1.0" ) +type checkSummary struct { + ExternalTotal int + GitHubTotal int + Broken []checker.LinkResult + Redirected []checker.LinkResult + GitHubErrors []error + GitHubSkipped bool +} + func main() { root := &cobra.Command{ Use: "awesome-docker", @@ -37,6 +48,7 @@ func main() { buildCmd(), reportCmd(), validateCmd(), + ciCmd(), ) if err := root.Execute(); err != nil { @@ -70,6 +82,205 @@ func collectURLs(sections []parser.Section, urls *[]string) { } } +func runLinkChecks(prMode bool) (checkSummary, error) { + doc, err := parseReadme() + if err != nil { + return checkSummary{}, fmt.Errorf("parse: %w", err) + } + + var urls []string + collectURLs(doc.Sections, &urls) + + exclude, err := cache.LoadExcludeList(excludePath) + if err != nil { + return checkSummary{}, fmt.Errorf("load exclude list: %w", err) + } + + ghURLs, extURLs := checker.PartitionLinks(urls) + + summary := checkSummary{ + ExternalTotal: len(extURLs), + GitHubTotal: len(ghURLs), + } + + results := checker.CheckLinks(extURLs, 10, exclude) + for _, r := range results { + if !r.OK { + summary.Broken = append(summary.Broken, r) + } + if r.Redirected { + summary.Redirected = append(summary.Redirected, r) + } + } + + if prMode { + summary.GitHubSkipped = true + return summary, nil + } + + token := os.Getenv("GITHUB_TOKEN") + if token == "" { + summary.GitHubSkipped = true + return summary, nil + } + + gc := checker.NewGitHubChecker(token) + _, errs := gc.CheckRepos(context.Background(), ghURLs, 50) + summary.GitHubErrors = errs + return summary, nil +} + +func runHealth(ctx context.Context) error { + token := os.Getenv("GITHUB_TOKEN") + if token == "" { + return fmt.Errorf("GITHUB_TOKEN environment variable is required") + } + + doc, err := parseReadme() + if err != nil { + return fmt.Errorf("parse: %w", err) + } + + var urls []string + collectURLs(doc.Sections, &urls) + ghURLs, _ := checker.PartitionLinks(urls) + + fmt.Printf("Scoring %d GitHub repositories...\n", len(ghURLs)) + gc := checker.NewGitHubChecker(token) + infos, errs := gc.CheckRepos(ctx, ghURLs, 50) + for _, e := range errs { + fmt.Printf(" error: %v\n", e) + } + if len(infos) == 0 { + if len(errs) > 0 { + return fmt.Errorf("failed to fetch GitHub metadata for all repositories (%d errors); check network/DNS and GITHUB_TOKEN", len(errs)) + } + return fmt.Errorf("no GitHub repositories found in README") + } + + scored := scorer.ScoreAll(infos) + cacheEntries := scorer.ToCacheEntries(scored) + + hc, err := cache.LoadHealthCache(healthCachePath) + if err != nil { + return fmt.Errorf("load cache: %w", err) + } + hc.Merge(cacheEntries) + if err := cache.SaveHealthCache(healthCachePath, hc); err != nil { + return fmt.Errorf("save cache: %w", err) + } + + fmt.Printf("Cache updated: %d entries in %s\n", len(hc.Entries), healthCachePath) + return nil +} + +func scoredFromCache() ([]scorer.ScoredEntry, error) { + hc, err := cache.LoadHealthCache(healthCachePath) + if err != nil { + return nil, fmt.Errorf("load cache: %w", err) + } + if len(hc.Entries) == 0 { + return nil, fmt.Errorf("no cache data, run 'health' first") + } + + scored := make([]scorer.ScoredEntry, 0, len(hc.Entries)) + for _, e := range hc.Entries { + scored = append(scored, scorer.ScoredEntry{ + URL: e.URL, + Name: e.Name, + Status: scorer.Status(e.Status), + Stars: e.Stars, + HasLicense: e.HasLicense, + LastPush: e.LastPush, + }) + } + return scored, nil +} + +func markdownReportFromCache() (string, error) { + scored, err := scoredFromCache() + if err != nil { + return "", err + } + return scorer.GenerateReport(scored), nil +} + +func writeGitHubOutput(path, key, value string) error { + if path == "" { + return nil + } + f, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644) + if err != nil { + return fmt.Errorf("open github output file: %w", err) + } + defer f.Close() + if _, err := fmt.Fprintf(f, "%s=%s\n", key, value); err != nil { + return fmt.Errorf("write github output: %w", err) + } + return nil +} + +func sanitizeOutputValue(v string) string { + v = strings.ReplaceAll(v, "\n", " ") + v = strings.ReplaceAll(v, "\r", " ") + return strings.TrimSpace(v) +} + +func buildBrokenLinksIssueBody(summary checkSummary, runErr error) string { + var b strings.Builder + b.WriteString("# Broken Links Detected\n\n") + + if runErr != nil { + b.WriteString("The link checker failed to execute cleanly.\n\n") + b.WriteString("## Failure\n\n") + fmt.Fprintf(&b, "- %s\n\n", runErr) + } else { + fmt.Fprintf(&b, "- Broken links: %d\n", len(summary.Broken)) + fmt.Fprintf(&b, "- Redirected links: %d\n", len(summary.Redirected)) + fmt.Fprintf(&b, "- GitHub API errors: %d\n\n", len(summary.GitHubErrors)) + + if len(summary.Broken) > 0 { + b.WriteString("## Broken Links\n\n") + for _, r := range summary.Broken { + fmt.Fprintf(&b, "- `%s` -> `%d %s`\n", r.URL, r.StatusCode, strings.TrimSpace(r.Error)) + } + b.WriteString("\n") + } + + if len(summary.GitHubErrors) > 0 { + b.WriteString("## GitHub API Errors\n\n") + for _, e := range summary.GitHubErrors { + fmt.Fprintf(&b, "- `%s`\n", e) + } + b.WriteString("\n") + } + } + + b.WriteString("## Action Required\n\n") + b.WriteString("- Update the URL if the resource moved\n") + b.WriteString("- Remove the entry if permanently unavailable\n") + b.WriteString("- Add to `config/exclude.yaml` if a known false positive\n") + b.WriteString("- Investigate GitHub API/auth failures when present\n\n") + b.WriteString("---\n") + b.WriteString("*Auto-generated by awesome-docker ci broken-links*\n") + return b.String() +} + +func buildHealthReportIssueBody(report string, healthErr error) string { + var b strings.Builder + if healthErr != nil { + b.WriteString("WARNING: health refresh failed in this run; showing latest cached report.\n\n") + fmt.Fprintf(&b, "Error: `%s`\n\n", healthErr) + } + b.WriteString(report) + if !strings.HasSuffix(report, "\n") { + b.WriteString("\n") + } + b.WriteString("\n---\n") + b.WriteString("*Auto-generated weekly by awesome-docker ci health-report*\n") + return b.String() +} + func lintCmd() *cobra.Command { var fix bool cmd := &cobra.Command{ @@ -113,71 +324,45 @@ func checkCmd() *cobra.Command { Use: "check", Short: "Check links for reachability", RunE: func(cmd *cobra.Command, args []string) error { - doc, err := parseReadme() - if err != nil { - return fmt.Errorf("parse: %w", err) - } - - var urls []string - collectURLs(doc.Sections, &urls) - - exclude, err := cache.LoadExcludeList(excludePath) + summary, err := runLinkChecks(prMode) if err != nil { - return fmt.Errorf("load exclude list: %w", err) - } - - ghURLs, extURLs := checker.PartitionLinks(urls) - - fmt.Printf("Checking %d external links...\n", len(extURLs)) - results := checker.CheckLinks(extURLs, 10, exclude) - var broken []checker.LinkResult - var redirected []checker.LinkResult - for _, r := range results { - if !r.OK { - broken = append(broken, r) - } - if r.Redirected { - redirected = append(redirected, r) - } + return err } - var ghErrs []error + fmt.Printf("Checking %d external links...\n", summary.ExternalTotal) if !prMode { - token := os.Getenv("GITHUB_TOKEN") - if token != "" { - fmt.Printf("Checking %d GitHub repositories...\n", len(ghURLs)) - gc := checker.NewGitHubChecker(token) - _, errs := gc.CheckRepos(context.Background(), ghURLs, 50) - ghErrs = errs - for _, e := range ghErrs { - fmt.Printf(" GitHub error: %v\n", e) - } - } else { + if summary.GitHubSkipped { fmt.Println("GITHUB_TOKEN not set, skipping GitHub repo checks") + } else { + fmt.Printf("Checking %d GitHub repositories...\n", summary.GitHubTotal) } } - if len(redirected) > 0 { - fmt.Printf("\n%d redirected links (consider updating):\n", len(redirected)) - for _, r := range redirected { + for _, e := range summary.GitHubErrors { + fmt.Printf(" GitHub error: %v\n", e) + } + + if len(summary.Redirected) > 0 { + fmt.Printf("\n%d redirected links (consider updating):\n", len(summary.Redirected)) + for _, r := range summary.Redirected { fmt.Printf(" %s -> %s\n", r.URL, r.RedirectURL) } } - if len(broken) > 0 { - fmt.Printf("\n%d broken links:\n", len(broken)) - for _, r := range broken { + if len(summary.Broken) > 0 { + fmt.Printf("\n%d broken links:\n", len(summary.Broken)) + for _, r := range summary.Broken { fmt.Printf(" %s -> %d %s\n", r.URL, r.StatusCode, r.Error) } } - if len(broken) > 0 && len(ghErrs) > 0 { - return fmt.Errorf("found %d broken links and %d GitHub API errors", len(broken), len(ghErrs)) + if len(summary.Broken) > 0 && len(summary.GitHubErrors) > 0 { + return fmt.Errorf("found %d broken links and %d GitHub API errors", len(summary.Broken), len(summary.GitHubErrors)) } - if len(broken) > 0 { - return fmt.Errorf("found %d broken links", len(broken)) + if len(summary.Broken) > 0 { + return fmt.Errorf("found %d broken links", len(summary.Broken)) } - if len(ghErrs) > 0 { - return fmt.Errorf("github checks failed with %d errors", len(ghErrs)) + if len(summary.GitHubErrors) > 0 { + return fmt.Errorf("github checks failed with %d errors", len(summary.GitHubErrors)) } fmt.Println("All links OK") @@ -193,47 +378,7 @@ func healthCmd() *cobra.Command { Use: "health", Short: "Score repository health and update cache", RunE: func(cmd *cobra.Command, args []string) error { - token := os.Getenv("GITHUB_TOKEN") - if token == "" { - return fmt.Errorf("GITHUB_TOKEN environment variable is required") - } - - doc, err := parseReadme() - if err != nil { - return fmt.Errorf("parse: %w", err) - } - - var urls []string - collectURLs(doc.Sections, &urls) - ghURLs, _ := checker.PartitionLinks(urls) - - fmt.Printf("Scoring %d GitHub repositories...\n", len(ghURLs)) - gc := checker.NewGitHubChecker(token) - infos, errs := gc.CheckRepos(context.Background(), ghURLs, 50) - for _, e := range errs { - fmt.Printf(" error: %v\n", e) - } - if len(infos) == 0 { - if len(errs) > 0 { - return fmt.Errorf("failed to fetch GitHub metadata for all repositories (%d errors); check network/DNS and GITHUB_TOKEN", len(errs)) - } - return fmt.Errorf("no GitHub repositories found in README") - } - - scored := scorer.ScoreAll(infos) - cacheEntries := scorer.ToCacheEntries(scored) - - hc, err := cache.LoadHealthCache(healthCachePath) - if err != nil { - return fmt.Errorf("load cache: %w", err) - } - hc.Merge(cacheEntries) - if err := cache.SaveHealthCache(healthCachePath, hc); err != nil { - return fmt.Errorf("save cache: %w", err) - } - - fmt.Printf("Cache updated: %d entries in %s\n", len(hc.Entries), healthCachePath) - return nil + return runHealth(context.Background()) }, } } @@ -258,24 +403,9 @@ func reportCmd() *cobra.Command { Use: "report", Short: "Generate health report from cache", RunE: func(cmd *cobra.Command, args []string) error { - hc, err := cache.LoadHealthCache(healthCachePath) + scored, err := scoredFromCache() if err != nil { - return fmt.Errorf("load cache: %w", err) - } - if len(hc.Entries) == 0 { - return fmt.Errorf("no cache data, run 'health' first") - } - - var scored []scorer.ScoredEntry - for _, e := range hc.Entries { - scored = append(scored, scorer.ScoredEntry{ - URL: e.URL, - Name: e.Name, - Status: scorer.Status(e.Status), - Stars: e.Stars, - HasLicense: e.HasLicense, - LastPush: e.LastPush, - }) + return err } if jsonOutput { @@ -319,32 +449,182 @@ func validateCmd() *cobra.Command { fmt.Printf("Lint OK: %d warnings\n", result.Warnings) fmt.Println("\n=== Checking links (PR mode) ===") - var urls []string - collectURLs(doc.Sections, &urls) - exclude, err := cache.LoadExcludeList(excludePath) + summary, err := runLinkChecks(true) if err != nil { - return fmt.Errorf("load exclude list: %w", err) + return err + } + fmt.Printf("Checking %d external links...\n", summary.ExternalTotal) + if len(summary.Broken) > 0 { + fmt.Printf("\n%d broken links:\n", len(summary.Broken)) + for _, r := range summary.Broken { + fmt.Printf(" %s -> %d %s\n", r.URL, r.StatusCode, r.Error) + } + return fmt.Errorf("found %d broken links", len(summary.Broken)) } - _, extURLs := checker.PartitionLinks(urls) - fmt.Printf("Checking %d external links...\n", len(extURLs)) - results := checker.CheckLinks(extURLs, 10, exclude) - var broken []checker.LinkResult - for _, r := range results { - if !r.OK { - broken = append(broken, r) + fmt.Println("\nValidation passed") + return nil + }, + } +} + +func ciCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "ci", + Short: "CI-oriented helper commands", + } + cmd.AddCommand( + ciBrokenLinksCmd(), + ciHealthReportCmd(), + ) + return cmd +} + +func ciBrokenLinksCmd() *cobra.Command { + var issueFile string + var githubOutput string + var strict bool + + cmd := &cobra.Command{ + Use: "broken-links", + Short: "Run link checks and emit CI outputs/artifacts", + RunE: func(cmd *cobra.Command, args []string) error { + summary, runErr := runLinkChecks(false) + + hasErrors := runErr != nil || len(summary.Broken) > 0 || len(summary.GitHubErrors) > 0 + exitCode := 0 + if hasErrors { + exitCode = 1 + } + if runErr != nil { + exitCode = 2 + } + + if issueFile != "" && hasErrors { + body := buildBrokenLinksIssueBody(summary, runErr) + if err := os.WriteFile(issueFile, []byte(body), 0o644); err != nil { + return fmt.Errorf("write issue file: %w", err) } } - if len(broken) > 0 { - fmt.Printf("\n%d broken links:\n", len(broken)) - for _, r := range broken { - fmt.Printf(" %s -> %d %s\n", r.URL, r.StatusCode, r.Error) + + if err := writeGitHubOutput(githubOutput, "has_errors", strconv.FormatBool(hasErrors)); err != nil { + return err + } + if err := writeGitHubOutput(githubOutput, "check_exit_code", strconv.Itoa(exitCode)); err != nil { + return err + } + if err := writeGitHubOutput(githubOutput, "broken_count", strconv.Itoa(len(summary.Broken))); err != nil { + return err + } + if err := writeGitHubOutput(githubOutput, "github_error_count", strconv.Itoa(len(summary.GitHubErrors))); err != nil { + return err + } + if runErr != nil { + if err := writeGitHubOutput(githubOutput, "run_error", sanitizeOutputValue(runErr.Error())); err != nil { + return err } - return fmt.Errorf("found %d broken links", len(broken)) } - fmt.Println("\nValidation passed") + if runErr != nil { + fmt.Printf("CI broken-links run error: %v\n", runErr) + } + if hasErrors { + fmt.Printf("CI broken-links found %d broken links and %d GitHub errors\n", len(summary.Broken), len(summary.GitHubErrors)) + } else { + fmt.Println("CI broken-links found no errors") + } + + if strict { + if runErr != nil { + return runErr + } + if hasErrors { + return fmt.Errorf("found %d broken links and %d GitHub API errors", len(summary.Broken), len(summary.GitHubErrors)) + } + } + return nil + }, + } + + cmd.Flags().StringVar(&issueFile, "issue-file", "broken_links_issue.md", "Path to write issue markdown body") + cmd.Flags().StringVar(&githubOutput, "github-output", "", "Path to GitHub output file (typically $GITHUB_OUTPUT)") + cmd.Flags().BoolVar(&strict, "strict", false, "Return non-zero when errors are found") + return cmd +} + +func ciHealthReportCmd() *cobra.Command { + var issueFile string + var githubOutput string + var strict bool + + cmd := &cobra.Command{ + Use: "health-report", + Short: "Refresh health cache, render report, and emit CI outputs/artifacts", + RunE: func(cmd *cobra.Command, args []string) error { + healthErr := runHealth(context.Background()) + report, reportErr := markdownReportFromCache() + + healthOK := healthErr == nil + reportOK := reportErr == nil + hasReport := reportOK && strings.TrimSpace(report) != "" + hasErrors := !healthOK || !reportOK + + if hasReport && issueFile != "" { + body := buildHealthReportIssueBody(report, healthErr) + if err := os.WriteFile(issueFile, []byte(body), 0o644); err != nil { + return fmt.Errorf("write issue file: %w", err) + } + } + + if err := writeGitHubOutput(githubOutput, "has_report", strconv.FormatBool(hasReport)); err != nil { + return err + } + if err := writeGitHubOutput(githubOutput, "health_ok", strconv.FormatBool(healthOK)); err != nil { + return err + } + if err := writeGitHubOutput(githubOutput, "report_ok", strconv.FormatBool(reportOK)); err != nil { + return err + } + if err := writeGitHubOutput(githubOutput, "has_errors", strconv.FormatBool(hasErrors)); err != nil { + return err + } + if healthErr != nil { + if err := writeGitHubOutput(githubOutput, "health_error", sanitizeOutputValue(healthErr.Error())); err != nil { + return err + } + } + if reportErr != nil { + if err := writeGitHubOutput(githubOutput, "report_error", sanitizeOutputValue(reportErr.Error())); err != nil { + return err + } + } + + if healthErr != nil { + fmt.Printf("CI health-report health error: %v\n", healthErr) + } + if reportErr != nil { + fmt.Printf("CI health-report report error: %v\n", reportErr) + } + if hasReport { + fmt.Println("CI health-report generated report artifact") + } else { + fmt.Println("CI health-report has no report artifact") + } + + if strict { + if healthErr != nil { + return healthErr + } + if reportErr != nil { + return reportErr + } + } return nil }, } + + cmd.Flags().StringVar(&issueFile, "issue-file", "health_report.txt", "Path to write health issue markdown body") + cmd.Flags().StringVar(&githubOutput, "github-output", "", "Path to GitHub output file (typically $GITHUB_OUTPUT)") + cmd.Flags().BoolVar(&strict, "strict", false, "Return non-zero when health/report fails") + return cmd } From 05266bd8ac9049410fae693326bf1da17e66d428 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sat, 28 Feb 2026 12:13:59 +0100 Subject: [PATCH 260/327] Pages deploy ux a11y refresh (#1252) * Improve Pages workflow and redesign site with accessible sidebar navigation * README clean up * Use Makefile website target in Pages deploy workflow --- .github/ISSUE_TEMPLATE/add-a-project.md | 4 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/pull_request.yml | 3 + README.md | 2 - config/website.tmpl.html | 704 ++++++++++++++++++++---- index.html | 6 +- internal/builder/builder.go | 2 + internal/builder/builder_test.go | 39 ++ 8 files changed, 650 insertions(+), 112 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/add-a-project.md b/.github/ISSUE_TEMPLATE/add-a-project.md index 2bdd313a9..1aece630a 100644 --- a/.github/ISSUE_TEMPLATE/add-a-project.md +++ b/.github/ISSUE_TEMPLATE/add-a-project.md @@ -1,7 +1,7 @@ --- name: Add a project about: Add a new project to the list -title: "add: [PROJECT_NAME]" +title: "add: [PROJECT_NAME] in [SECTION_NAME]" labels: pending-evaluation assignees: '' @@ -17,5 +17,5 @@ Notes (`:heavy_dollar_sign:` if relevant): Or directly write it: ```markdown -[REPO](https://github.com/AUTHOR/REPO) - DESCRIPTION. By [AUTHOR](https://github.com/AUTHOR) +[REPO](https://github.com/AUTHOR/REPO) - DESCRIPTION. ``` diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 54db0dde0..6a126029d 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -30,7 +30,7 @@ jobs: run: go build -o awesome-docker ./cmd/awesome-docker - name: Build website - run: ./awesome-docker build + run: make website - name: Upload artifact uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # ratchet:actions/upload-pages-artifact@v4 diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index f72cd989d..a9e838484 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -20,6 +20,9 @@ jobs: - name: Build run: go build -o awesome-docker ./cmd/awesome-docker + - name: Build website + run: ./awesome-docker build + - name: Validate run: ./awesome-docker validate env: diff --git a/README.md b/README.md index f7efbd5ea..efd959961 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,6 @@ If this list is not complete, you can [contribute][editreadme] to make it so. He The creators and maintainers of this list do not receive any form of payment to accept a change made by any contributor. This page is not an official Docker product in any way. It is a list of links to projects and is maintained by volunteers. Everybody is welcome to contribute. The goal of this repo is to index open-source projects, not to advertise for profit. -All the links are monitored and tested with a home baked [Node.js script](https://github.com/veggiemonk/awesome-docker/blob/master/.github/workflows/pull_request.yml) - # Contents diff --git a/config/website.tmpl.html b/config/website.tmpl.html index 94e88e02f..58ea2cb30 100644 --- a/config/website.tmpl.html +++ b/config/website.tmpl.html @@ -6,7 +6,9 @@ Awesome-docker - + + + + + + @@ -201,29 +599,127 @@ -
- - +
+
+
+ diff --git a/index.html b/index.html index 572c81624..2cc7b5c74 100644 --- a/index.html +++ b/index.html @@ -4,10 +4,10 @@ - + Awesome-docker -

We moved to a new place, click here to be redirected.

+

Redirecting to the generated site.

- \ No newline at end of file + diff --git a/internal/builder/builder.go b/internal/builder/builder.go index 6b2cd201f..8e05d530e 100644 --- a/internal/builder/builder.go +++ b/internal/builder/builder.go @@ -8,6 +8,7 @@ import ( "github.com/yuin/goldmark" "github.com/yuin/goldmark/extension" + "github.com/yuin/goldmark/parser" "github.com/yuin/goldmark/renderer/html" ) @@ -27,6 +28,7 @@ func Build(markdownPath, templatePath, outputPath string) error { // Convert markdown to HTML gm := goldmark.New( goldmark.WithExtensions(extension.GFM), + goldmark.WithParserOptions(parser.WithAutoHeadingID()), goldmark.WithRendererOptions(html.WithUnsafe()), ) var buf bytes.Buffer diff --git a/internal/builder/builder_test.go b/internal/builder/builder_test.go index 5cf98c3f0..19ee91214 100644 --- a/internal/builder/builder_test.go +++ b/internal/builder/builder_test.go @@ -131,3 +131,42 @@ func TestBuildFailsWithoutPlaceholder(t *testing.T) { t.Fatal("expected Build to fail when template has no supported placeholder") } } + +func TestBuildAddsHeadingIDs(t *testing.T) { + dir := t.TempDir() + + md := "# Getting Started\n\n## Next Step\n" + mdPath := filepath.Join(dir, "README.md") + if err := os.WriteFile(mdPath, []byte(md), 0o644); err != nil { + t.Fatal(err) + } + + tmpl := ` + + +
+ +` + tmplPath := filepath.Join(dir, "template.html") + if err := os.WriteFile(tmplPath, []byte(tmpl), 0o644); err != nil { + t.Fatal(err) + } + + outPath := filepath.Join(dir, "index.html") + if err := Build(mdPath, tmplPath, outPath); err != nil { + t.Fatalf("Build failed: %v", err) + } + + content, err := os.ReadFile(outPath) + if err != nil { + t.Fatal(err) + } + + html := string(content) + if !strings.Contains(html, `id="getting-started"`) { + t.Error("expected auto-generated heading id for h1") + } + if !strings.Contains(html, `id="next-step"`) { + t.Error("expected auto-generated heading id for h2") + } +} From a68d6f826da2686bca0fc73d0d36a41d43517c3f Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Tue, 10 Mar 2026 16:20:41 +0100 Subject: [PATCH 261/327] Feat/tui browse (#1266) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add interactive TUI browser command using Bubbletea v2 Adds `awesome-docker browse` to interactively explore the curated list in a terminal UI with a category tree (left panel) and detailed resource view (right panel). Enriches health_cache.yaml with category and description fields so the cache is self-contained for the TUI. Co-Authored-By: Claude Opus 4.6 * Add TUI pagination, scrolloff, and fix visual overflow Add pagination keybindings (Ctrl+D/PgDn, Ctrl+U/PgUp, g/Home, G/End) to both tree and list panels. Implement scrolloff (4 lines) to keep context visible around the cursor. Fix list panel overflow caused by Unicode characters (★, ⑂) rendering wider than lipgloss measures, which pushed the footer off-screen. Improve selection highlight visibility with background colors. Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- Makefile | 3 + cmd/awesome-docker/main.go | 65 +- config/health_cache.yaml | 2130 +++++++++++++++++++++++++----------- go.mod | 17 + go.sum | 40 + internal/cache/cache.go | 8 +- internal/scorer/scorer.go | 34 +- internal/tui/model.go | 603 ++++++++++ internal/tui/styles.go | 59 + internal/tui/tree.go | 118 ++ internal/tui/tree_test.go | 109 ++ internal/tui/tui.go | 14 + 12 files changed, 2555 insertions(+), 645 deletions(-) create mode 100644 internal/tui/model.go create mode 100644 internal/tui/styles.go create mode 100644 internal/tui/tree.go create mode 100644 internal/tui/tree_test.go create mode 100644 internal/tui/tui.go diff --git a/Makefile b/Makefile index 68523a2fa..a74cc7e3b 100644 --- a/Makefile +++ b/Makefile @@ -125,6 +125,9 @@ report-json-file: $(HEALTH_REPORT_JSON) ## Generate HEALTH_REPORT.json from cach health-report: health report-file ## Refresh health cache then generate HEALTH_REPORT.md +browse: build ## Launch interactive TUI browser + ./$(BINARY) browse + workflow-dev: fmt test lint check-pr website ## Full local development workflow workflow-pr: fmt test validate ## Recommended workflow before opening a PR diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index 5ad2518b4..28b0bca70 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -14,6 +14,7 @@ import ( "github.com/veggiemonk/awesome-docker/internal/linter" "github.com/veggiemonk/awesome-docker/internal/parser" "github.com/veggiemonk/awesome-docker/internal/scorer" + "github.com/veggiemonk/awesome-docker/internal/tui" ) const ( @@ -49,6 +50,7 @@ func main() { reportCmd(), validateCmd(), ciCmd(), + browseCmd(), ) if err := root.Execute(); err != nil { @@ -82,6 +84,24 @@ func collectURLs(sections []parser.Section, urls *[]string) { } } +type entryMeta struct { + Category string + Description string +} + +func collectEntriesWithCategory(sections []parser.Section, parentPath string, out map[string]entryMeta) { + for _, s := range sections { + path := s.Title + if parentPath != "" { + path = parentPath + " > " + s.Title + } + for _, e := range s.Entries { + out[e.URL] = entryMeta{Category: path, Description: e.Description} + } + collectEntriesWithCategory(s.Children, path, out) + } +} + func runLinkChecks(prMode bool) (checkSummary, error) { doc, err := parseReadme() if err != nil { @@ -159,6 +179,16 @@ func runHealth(ctx context.Context) error { } scored := scorer.ScoreAll(infos) + + meta := make(map[string]entryMeta) + collectEntriesWithCategory(doc.Sections, "", meta) + for i := range scored { + if m, ok := meta[scored[i].URL]; ok { + scored[i].Category = m.Category + scored[i].Description = m.Description + } + } + cacheEntries := scorer.ToCacheEntries(scored) hc, err := cache.LoadHealthCache(healthCachePath) @@ -186,12 +216,15 @@ func scoredFromCache() ([]scorer.ScoredEntry, error) { scored := make([]scorer.ScoredEntry, 0, len(hc.Entries)) for _, e := range hc.Entries { scored = append(scored, scorer.ScoredEntry{ - URL: e.URL, - Name: e.Name, - Status: scorer.Status(e.Status), - Stars: e.Stars, - HasLicense: e.HasLicense, - LastPush: e.LastPush, + URL: e.URL, + Name: e.Name, + Status: scorer.Status(e.Status), + Stars: e.Stars, + Forks: e.Forks, + HasLicense: e.HasLicense, + LastPush: e.LastPush, + Category: e.Category, + Description: e.Description, }) } return scored, nil @@ -628,3 +661,23 @@ func ciHealthReportCmd() *cobra.Command { cmd.Flags().BoolVar(&strict, "strict", false, "Return non-zero when health/report fails") return cmd } + +func browseCmd() *cobra.Command { + var cachePath string + cmd := &cobra.Command{ + Use: "browse", + Short: "Interactive TUI browser for awesome-docker resources", + RunE: func(cmd *cobra.Command, args []string) error { + hc, err := cache.LoadHealthCache(cachePath) + if err != nil { + return fmt.Errorf("load cache: %w", err) + } + if len(hc.Entries) == 0 { + return fmt.Errorf("no cache data; run 'awesome-docker health' first") + } + return tui.Run(hc.Entries) + }, + } + cmd.Flags().StringVar(&cachePath, "cache", healthCachePath, "Path to health cache YAML") + return cmd +} diff --git a/config/health_cache.yaml b/config/health_cache.yaml index bc130fddd..5914e94a0 100644 --- a/config/health_cache.yaml +++ b/config/health_cache.yaml @@ -4,2119 +4,3007 @@ entries: status: stale stars: 31 last_push: 2017-06-07T09:46:56Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: Composable docker orchestration with added scripting support by [byrnedo]. - url: https://github.com/magicmark/composerize name: magicmark/composerize status: healthy - stars: 3701 + stars: 3703 forks: 247 last_push: 2026-01-17T12:14:28Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: Convert docker run commands into docker-compose files. - url: https://github.com/polonskiy/crowdr name: polonskiy/crowdr status: stale stars: 98 forks: 9 last_push: 2020-10-09T07:57:52Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: Tool for managing multiple Docker containers (`docker-compose` alternative). - url: https://github.com/ctk-hq/ctk name: ctk-hq/ctk status: healthy stars: 298 forks: 27 last_push: 2026-02-15T22:53:00Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: Visual composer for container based workloads. By [corpulent](https://github.com/corpulent). - url: https://github.com/sudo-bmitch/docker-config-update name: sudo-bmitch/docker-config-update status: stale stars: 51 forks: 8 last_push: 2023-03-30T13:03:12Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: Utility to update docker configs and secrets for deploying in a compose file. - url: https://github.com/cisco/elsy name: cisco/elsy status: stale stars: 80 forks: 22 last_push: 2022-01-18T13:38:49Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: An opinionated, multi-language, build tool based on Docker and Docker Compose. - url: https://github.com/cloud66-oss/habitus name: cloud66-oss/habitus status: stale - stars: 1390 - forks: 82 + stars: 1392 + forks: 81 last_push: 2020-02-05T17:10:30Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: A Build Flow Tool for Docker. - url: https://github.com/kubernetes/kompose name: kubernetes/kompose status: healthy - stars: 10459 - forks: 793 + stars: 10464 + forks: 794 last_push: 2026-02-27T14:23:27Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: Go from Docker Compose to Kubernetes. - url: https://github.com/av/harbor name: av/harbor status: healthy - stars: 2470 - forks: 164 - last_push: 2026-02-15T00:04:21Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 2485 + forks: 166 + last_push: 2026-03-08T14:30:46Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [av](https://github.com/av). - url: https://github.com/ihucos/plash name: ihucos/plash status: healthy stars: 387 forks: 15 last_push: 2025-03-20T15:47:21Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: A container run and build engine - runs inside docker. - url: https://github.com/containers/podman-compose name: containers/podman-compose status: healthy - stars: 5973 - forks: 576 - last_push: 2026-02-26T23:05:51Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 5990 + forks: 577 + last_push: 2026-03-05T16:25:54Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: A script to run docker-compose.yml using podman. - url: https://github.com/alexaandrov/stitchocker name: alexaandrov/stitchocker status: inactive stars: 30 - forks: 3 + forks: 2 last_push: 2024-03-14T13:50:30Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Container Composition + description: A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [alexaandrov](https://github.com/alexaandrov). - url: https://github.com/ethibox/awesome-stacks name: ethibox/awesome-stacks status: healthy - stars: 1245 + stars: 1250 forks: 162 - last_push: 2026-02-25T16:10:25Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-08T14:40:12Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: Deploy 150+ open-source web apps with one Docker command. - url: https://github.com/newrelic/centurion name: newrelic/centurion status: archived stars: 1757 forks: 112 last_push: 2025-09-11T20:47:50Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [newrelic](https://github.com/newrelic). - url: https://github.com/brooklyncentral/clocker name: brooklyncentral/clocker status: stale stars: 429 - forks: 65 + forks: 64 last_push: 2018-10-24T15:29:12Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [brooklyncentral](https://github.com/brooklyncentral). - url: https://github.com/ehazlett/conduit name: ehazlett/conduit status: stale stars: 108 forks: 11 last_push: 2016-11-07T18:20:56Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: Experimental deployment system for Docker. - url: https://github.com/ContainX/depcon name: ContainX/depcon status: stale stars: 93 forks: 15 last_push: 2018-06-05T04:40:23Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [ContainX][containx]. - url: https://github.com/deploystackio/docker-to-iac name: deploystackio/docker-to-iac status: healthy stars: 23 - last_push: 2026-02-25T22:52:42Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-02T06:11:33Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean. - url: https://github.com/hasura/gitkube name: hasura/gitkube status: stale stars: 3850 forks: 203 last_push: 2023-08-31T07:48:24Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [Hasura](https://github.com/hasura/). - url: https://github.com/grafeas/grafeas name: grafeas/grafeas status: healthy stars: 1564 forks: 307 last_push: 2026-02-13T21:53:15Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas). - url: https://github.com/LombardiDaniel/swarm-ansible name: LombardiDaniel/swarm-ansible status: healthy - stars: 58 + stars: 59 forks: 4 last_push: 2026-01-24T22:01:08Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z - url: https://github.com/hansehe/SwarmManagement name: hansehe/SwarmManagement status: healthy stars: 21 forks: 1 last_push: 2025-05-13T15:24:25Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. - url: https://github.com/werf/werf name: werf/werf status: healthy - stars: 4659 + stars: 4661 forks: 230 - last_push: 2026-02-27T21:26:34Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-06T15:47:09Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Deployment and Infrastructure + description: Werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps. - url: https://github.com/willfarrell/docker-autoheal name: willfarrell/docker-autoheal status: healthy - stars: 1800 - forks: 253 + stars: 1801 + forks: 254 last_push: 2025-09-09T16:33:25Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Monitor and restart unhealthy docker containers automatically. - url: https://github.com/google/cadvisor name: google/cadvisor status: healthy - stars: 18913 - forks: 2460 - last_push: 2026-02-19T21:28:50Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 18952 + forks: 2461 + last_push: 2026-03-02T18:35:32Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Analyzes resource usage and performance characteristics of running containers. - url: https://github.com/bluewave-labs/checkmate name: bluewave-labs/checkmate status: healthy - stars: 9321 - forks: 674 - last_push: 2026-02-27T16:58:09Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 9372 + forks: 680 + last_push: 2026-03-07T01:22:01Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. - url: https://github.com/zorak1103/dlia name: zorak1103/dlia status: healthy stars: 3 - last_push: 2026-02-27T11:12:38Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-07T04:03:52Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [zorak1103](https://github.com/zorak1103). - url: https://github.com/deltaskelta/docker-alertd name: deltaskelta/docker-alertd status: stale stars: 108 forks: 12 last_push: 2017-11-15T04:40:06Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Monitor and send alerts based on docker container resource usage/statistics. - url: https://github.com/docker-flow/docker-flow-monitor name: docker-flow/docker-flow-monitor status: stale stars: 88 forks: 38 last_push: 2021-03-17T14:33:01Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Reconfigures Prometheus when a new service is updated or deployed automatically. - url: https://github.com/stefanprodan/dockprom name: stefanprodan/dockprom status: healthy - stars: 6484 - forks: 1769 - last_push: 2025-07-04T04:18:24Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 6488 + forks: 1768 + last_push: 2026-03-06T05:28:07Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. - url: https://github.com/amerkurev/doku name: amerkurev/doku status: healthy - stars: 408 + stars: 410 forks: 18 last_push: 2025-12-26T09:13:21Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Doku is a simple web-based application that allows you to monitor Docker disk usage. [amerkurev](https://github.com/amerkurev). - url: https://github.com/nicolargo/glances name: nicolargo/glances status: healthy - stars: 31804 - forks: 1688 - last_push: 2026-02-27T09:35:02Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 31995 + forks: 1695 + last_push: 2026-03-07T15:24:35Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: A cross-platform curses-based system monitoring tool written in Python. - url: https://github.com/dromara/hertzbeat name: dromara/hertzbeat status: healthy - stars: 7103 + stars: 7114 forks: 1255 - last_push: 2026-02-27T16:10:50Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-08T12:09:09Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: An open-source real-time monitoring system with custom-monitor and agentless. - url: https://github.com/vegasbrianc/docker-monitoring name: vegasbrianc/docker-monitoring status: stale stars: 473 forks: 129 last_push: 2018-06-10T20:53:49Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: InfluxDB Time series DB in combination with Grafana and cAdvisor. - url: https://github.com/gliderlabs/logspout name: gliderlabs/logspout status: stale - stars: 4700 - forks: 669 + stars: 4701 + forks: 668 last_push: 2023-07-11T20:36:12Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Log routing for Docker container logs. - url: https://github.com/decryptus/monit-docker name: decryptus/monit-docker status: stale stars: 34 forks: 5 last_push: 2023-01-16T11:31:14Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Monitor docker containers resources usage or status and execute docker commands or inside containers. [decryptus][decryptus]. - url: https://github.com/NexClipper/NexClipper name: NexClipper/NexClipper status: stale - stars: 566 + stars: 565 forks: 72 last_push: 2023-05-05T02:21:24Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. - url: https://github.com/uschtwill/docker_monitoring_logging_alerting name: uschtwill/docker_monitoring_logging_alerting status: stale - stars: 540 + stars: 539 forks: 119 last_push: 2018-09-13T07:36:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. - url: https://github.com/runsidekick/sidekick name: runsidekick/sidekick status: stale stars: 1611 forks: 67 last_push: 2023-06-29T12:18:38Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. - url: https://github.com/gpulido/SwarmAlert name: gpulido/SwarmAlert status: stale stars: 22 forks: 2 last_push: 2019-11-27T12:17:14Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. - url: https://github.com/gomex/docker-zabbix name: gomex/docker-zabbix status: stale stars: 53 forks: 12 last_push: 2017-07-28T14:29:08Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Monitor containers automatically using zabbix LLD feature. - url: https://github.com/monitoringartist/Zabbix-Docker-Monitoring name: monitoringartist/Zabbix-Docker-Monitoring status: stale stars: 1197 forks: 265 last_push: 2022-02-22T17:01:39Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Monitoring + description: Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. - url: https://github.com/coreos/flannel name: coreos/flannel status: healthy - stars: 9406 - forks: 2898 - last_push: 2026-02-23T14:17:42Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 9410 + forks: 2902 + last_push: 2026-03-06T12:10:23Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z - url: https://github.com/Microsoft/Freeflow name: Microsoft/Freeflow status: stale stars: 632 forks: 96 last_push: 2023-06-12T19:30:22Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Networking + description: High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [Microsoft](https://github.com/Microsoft). - url: https://github.com/jason5ng32/MyIP name: jason5ng32/MyIP status: healthy - stars: 9859 + stars: 9895 forks: 1072 last_push: 2026-02-10T07:38:47Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Networking + description: All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [jason5ng32](https://github.com/jason5ng32). - url: https://github.com/nicolaka/netshoot name: nicolaka/netshoot status: healthy - stars: 10421 + stars: 10445 forks: 1085 - last_push: 2026-01-28T16:42:51Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-05T17:23:33Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Networking + description: The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. - url: https://github.com/jpetazzo/pipework name: jpetazzo/pipework status: inactive - stars: 4251 + stars: 4252 forks: 727 last_push: 2024-11-04T17:31:57Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Networking + description: Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [jpetazzo][jpetazzo]. - url: https://github.com/Peco602/ansible-linux-docker name: Peco602/ansible-linux-docker status: stale stars: 37 forks: 4 last_push: 2023-06-21T09:34:02Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Run Ansible from a Linux container. By [Peco602][peco602]. - url: https://github.com/athena-oss/athena name: athena-oss/athena status: stale stars: 96 forks: 25 last_push: 2017-07-06T08:26:12Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: An automation platform with a plugin architecture that allows you to easily create and share services. - url: https://github.com/CloudSlang/cloud-slang name: CloudSlang/cloud-slang status: healthy stars: 240 forks: 83 - last_push: 2026-02-18T13:38:20Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-04T10:56:48Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: CloudSlang is a workflow engine to create Docker process automation. - url: https://github.com/clusterdock/clusterdock name: clusterdock/clusterdock status: stale stars: 29 forks: 8 last_push: 2023-05-16T18:05:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Docker container orchestration to enable the testing of long-running cluster deployments. - url: https://github.com/Dataman-Cloud/crane name: Dataman-Cloud/crane status: stale - stars: 749 + stars: 748 forks: 164 last_push: 2023-08-31T09:46:38Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Control plane based on docker built-in swarm [Dataman-Cloud](https://github.com/Dataman-Cloud). - url: https://github.com/docker-flow/docker-flow-swarm-listener name: docker-flow/docker-flow-swarm-listener status: stale stars: 69 forks: 50 last_push: 2019-05-20T19:40:37Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [docker-flow][docker-flow]. - url: https://github.com/Wowu/docker-rollout name: Wowu/docker-rollout status: healthy - stars: 3104 + stars: 3111 forks: 93 last_push: 2025-07-25T17:57:48Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Zero downtime deployment for Docker Compose services. - url: https://github.com/codeabovelab/haven-platform name: codeabovelab/haven-platform status: stale - stars: 296 + stars: 297 forks: 41 last_push: 2018-07-06T11:21:20Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [codeabovelab](https://github.com/codeabovelab). - url: https://github.com/kubernetes/kubernetes name: kubernetes/kubernetes status: healthy - stars: 120812 - forks: 42554 - last_push: 2026-02-27T20:09:31Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 120996 + forks: 42620 + last_push: 2026-03-07T08:41:59Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Open source orchestration system for Docker containers by Google. - url: https://github.com/ManageIQ/manageiq name: ManageIQ/manageiq status: healthy - stars: 1387 - forks: 923 - last_push: 2026-02-27T17:24:52Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 1392 + forks: 922 + last_push: 2026-03-05T20:13:05Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ). - url: https://github.com/apache/mesos name: apache/mesos status: inactive - stars: 5365 + stars: 5364 forks: 1669 last_push: 2024-08-23T18:59:16Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Resource/Job scheduler for containers, VM's and physical hosts [apache](https://mesos.apache.org/). - url: https://github.com/hashicorp/nomad name: hashicorp/nomad status: healthy - stars: 16237 + stars: 16262 forks: 2059 - last_push: 2026-02-27T21:40:19Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-08T09:06:18Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler. - url: https://github.com/rancher/rancher name: rancher/rancher status: healthy - stars: 25387 - forks: 3170 - last_push: 2026-02-27T21:04:04Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 25400 + forks: 3173 + last_push: 2026-03-06T22:49:23Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: An open source project that provides a complete platform for operating Docker in production. - url: https://github.com/redherd-project/redherd-framework name: redherd-project/redherd-framework status: stale stars: 74 forks: 17 last_push: 2023-04-25T18:54:33Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [RedHerdProject](https://github.com/redherd-project). - url: https://github.com/crazy-max/swarm-cronjob name: crazy-max/swarm-cronjob status: healthy - stars: 862 + stars: 861 forks: 74 - last_push: 2026-02-27T07:02:23Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-06T07:02:33Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Orchestration + description: Create jobs on a time-based schedule on Swarm by [crazy-max]. - url: https://github.com/caprover/caprover name: caprover/caprover status: healthy - stars: 14878 - forks: 964 + stars: 14892 + forks: 966 last_push: 2026-01-31T15:42:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: '[Previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids.' - url: https://github.com/convox/rack name: convox/rack status: healthy - stars: 1893 + stars: 1892 forks: 177 last_push: 2026-02-12T19:55:53Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. - url: https://github.com/pbertera/dcw name: pbertera/dcw status: stale stars: 17 forks: 3 last_push: 2017-03-29T07:55:37Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: 'Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels.' - url: https://github.com/dokku/dokku name: dokku/dokku status: healthy - stars: 31878 - forks: 2021 - last_push: 2026-02-27T13:54:30Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 31896 + forks: 2022 + last_push: 2026-03-07T18:31:36Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [progrium][progrium]). - url: https://github.com/remind101/empire name: remind101/empire status: stale - stars: 2682 + stars: 2681 forks: 156 last_push: 2023-11-25T17:16:08Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: A PaaS built on top of Amazon EC2 Container Service (ECS). - url: https://github.com/exoframejs/exoframe name: exoframejs/exoframe status: healthy - stars: 1147 + stars: 1146 forks: 59 last_push: 2026-02-22T16:24:52Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: A self-hosted tool that allows simple one-command deployments using Docker. - url: https://github.com/teamhephy/workflow name: teamhephy/workflow status: stale stars: 419 forks: 36 last_push: 2023-09-27T17:30:49Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow). - url: https://github.com/krane/krane name: krane/krane status: stale stars: 80 forks: 8 last_push: 2023-05-11T20:39:00Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: Toolset for managing container workloads on remote servers. - url: https://github.com/nanobox-io/nanobox name: nanobox-io/nanobox status: stale - stars: 1624 + stars: 1625 forks: 90 last_push: 2019-10-21T20:03:10Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: An application development platform that creates local environments that can then be deployed and scaled in the cloud. - url: https://github.com/tsuru/tsuru name: tsuru/tsuru status: healthy - stars: 5252 + stars: 5259 forks: 550 - last_push: 2026-02-25T21:15:57Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-05T03:11:24Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > PaaS + description: Tsuru is an extensible and open source Platform as a Service software. - url: https://github.com/bunkerity/bunkerweb name: bunkerity/bunkerweb status: healthy - stars: 10066 - forks: 565 - last_push: 2026-02-27T08:50:00Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 10112 + forks: 568 + last_push: 2026-03-06T17:15:47Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: Open-source and next-gen Web Application Firewall (WAF). By [Bunkerity](https://www.bunkerity.com). - url: https://github.com/lucaslorentz/caddy-docker-proxy name: lucaslorentz/caddy-docker-proxy status: healthy - stars: 4300 - forks: 210 - last_push: 2026-02-25T20:22:54Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 4315 + forks: 211 + last_push: 2026-03-08T07:04:18Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: Caddy-based reverse proxy, configured with service or container labels. By [lucaslorentz](https://github.com/lucaslorentz). - url: https://github.com/invzhi/caddy-docker-upstreams name: invzhi/caddy-docker-upstreams status: healthy stars: 36 forks: 8 last_push: 2025-09-08T05:17:01Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: Docker upstreams module for Caddy, configured with container labels. By [invzhi](https://github.com/invzhi). - url: https://github.com/moonbuggy/docker-dnsmasq-updater name: moonbuggy/docker-dnsmasq-updater status: inactive stars: 35 forks: 2 last_push: 2025-02-09T00:21:52Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: Update a remote dnsmasq server with Docker container hostnames. - url: https://github.com/docker-flow/docker-flow-proxy name: docker-flow/docker-flow-proxy status: healthy - stars: 321 + stars: 320 forks: 189 last_push: 2025-12-05T02:29:16Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [docker-flow][docker-flow]. - url: https://github.com/fabiolb/fabio name: fabiolb/fabio status: healthy - stars: 7332 + stars: 7333 forks: 624 last_push: 2026-02-23T02:48:11Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [magiconair](https://github.com/magiconair) (Frank Schroeder). - url: https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion name: nginx-proxy/docker-letsencrypt-nginx-proxy-companion status: healthy stars: 7698 - forks: 835 - last_push: 2026-02-15T12:34:13Z - checked_at: 2026-02-27T23:43:36.588325Z + forks: 834 + last_push: 2026-03-02T17:04:31Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [JrCs](https://github.com/JrCs). - url: https://github.com/Yundera/mesh-router name: Yundera/mesh-router status: healthy stars: 8 - last_push: 2026-02-27T21:23:25Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-02T15:37:53Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [Yundera](https://github.com/Yundera). - url: https://github.com/jc21/nginx-proxy-manager name: jc21/nginx-proxy-manager status: healthy - stars: 31873 - forks: 3627 - last_push: 2026-02-27T00:35:00Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 32001 + forks: 3639 + last_push: 2026-03-06T14:15:08Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: A beautiful web interface for proxying web based services with SSL. By [jc21](https://github.com/jc21). - url: https://github.com/Safe3/openresty-manager name: Safe3/openresty-manager status: healthy - stars: 1317 - forks: 97 + stars: 1322 + forks: 98 last_push: 2026-01-25T10:38:42Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. By [Safe3](https://github.com/Safe3/). - url: https://github.com/flavioaiello/swarm-router name: flavioaiello/swarm-router status: healthy stars: 73 forks: 12 last_push: 2025-09-15T06:12:30Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [flavioaiello](https://github.com/flavioaiello). - url: https://github.com/containous/traefik name: containous/traefik status: healthy - stars: 61956 - forks: 5848 - last_push: 2026-02-27T15:30:05Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 62086 + forks: 5865 + last_push: 2026-03-06T16:16:05Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Reverse Proxy + description: Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [EmileVauge](https://github.com/emilevauge). - url: https://github.com/cri-o/cri-o name: cri-o/cri-o status: healthy - stars: 5579 - forks: 1147 - last_push: 2026-02-27T21:48:13Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 5588 + forks: 1151 + last_push: 2026-03-08T00:16:02Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Runtime + description: Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o). - url: https://github.com/lxc/lxc name: lxc/lxc status: healthy - stars: 5115 + stars: 5126 forks: 1162 - last_push: 2026-02-26T19:40:10Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-02T14:26:30Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Runtime + description: LXC - Linux Containers. - url: https://github.com/containers/libpod name: containers/libpod status: healthy - stars: 30828 - forks: 2995 - last_push: 2026-02-26T02:13:27Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 30937 + forks: 3006 + last_push: 2026-03-06T15:57:05Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Runtime + description: Libpod is a library used to create container pods. Home of Podman. - url: https://github.com/brauner/rlxc name: brauner/rlxc status: stale stars: 18 forks: 3 last_push: 2021-06-30T13:12:28Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Runtime + description: LXC binary written in Rust. - url: https://github.com/opencontainers/runtime-tools name: opencontainers/runtime-tools status: healthy - stars: 472 + stars: 473 forks: 159 last_push: 2025-12-05T00:49:12Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Runtime + description: Oci-runtime-tool is a collection of tools for working with the OCI runtime specification. - url: https://github.com/SongStitch/anchor name: SongStitch/anchor status: inactive stars: 24 last_push: 2025-01-15T23:09:06Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z - url: https://github.com/genuinetools/bane name: genuinetools/bane status: stale - stars: 1225 + stars: 1224 forks: 91 last_push: 2020-09-17T20:10:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: AppArmor profile generator for Docker containers. - url: https://github.com/dash14/buildcage name: dash14/buildcage status: healthy - stars: 3 - last_push: 2026-02-23T08:57:48Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 4 + last_push: 2026-03-08T16:59:17Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. - url: https://github.com/hectorm/cetusguard name: hectorm/cetusguard status: healthy stars: 82 forks: 2 - last_push: 2026-02-09T12:53:32Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-01T11:42:56Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. - url: https://github.com/bridgecrewio/checkov name: bridgecrewio/checkov status: healthy - stars: 8487 - forks: 1306 - last_push: 2026-02-24T10:20:12Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 8510 + forks: 1307 + last_push: 2026-03-08T07:40:01Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [bridgecrew](https://github.com/bridgecrewio). - url: https://github.com/dev-sec/cis-docker-benchmark name: dev-sec/cis-docker-benchmark status: stale stars: 524 forks: 118 last_push: 2023-05-02T12:59:10Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [dev-sec](https://github.com/dev-sec). - url: https://github.com/quay/clair name: quay/clair status: healthy - stars: 10932 + stars: 10940 forks: 1195 - last_push: 2026-02-25T21:52:05Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-06T23:17:06Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [coreos][coreos]. - url: https://github.com/wolffcatskyy/crowdsec-blocklist-import name: wolffcatskyy/crowdsec-blocklist-import status: healthy - stars: 175 + stars: 179 forks: 4 - last_push: 2026-02-26T20:00:21Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-07T18:44:39Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [wolffcatskyy](https://github.com/wolffcatskyy). - url: https://github.com/eliasgranderubio/dagda name: eliasgranderubio/dagda status: stale - stars: 1219 + stars: 1220 forks: 169 last_push: 2023-05-23T02:03:43Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [eliasgranderubio](https://github.com/eliasgranderubio). - url: https://github.com/deepfence/ThreatMapper name: deepfence/ThreatMapper status: healthy stars: 5235 forks: 640 - last_push: 2026-01-08T17:51:41Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-08T03:35:58Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. - url: https://github.com/docker/docker-bench-security name: docker/docker-bench-security status: inactive - stars: 9599 - forks: 1036 + stars: 9600 + forks: 1038 last_push: 2024-10-21T07:26:06Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Script that checks for dozens of common best-practices around deploying Docker containers in production. By [docker][docker]. - url: https://github.com/google/docker-explorer name: google/docker-explorer status: inactive - stars: 552 + stars: 553 forks: 45 last_push: 2024-10-04T07:44:31Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: A tool to help forensicate offline docker acquisitions. - url: https://github.com/Peco602/dvwassl name: Peco602/dvwassl status: stale stars: 6 forks: 4 last_push: 2023-04-30T17:03:01Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [Peco602][peco602]. - url: https://github.com/checkmarx/kics name: checkmarx/kics status: healthy - stars: 2575 - forks: 360 - last_push: 2026-02-27T12:39:43Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 2581 + forks: 361 + last_push: 2026-03-06T15:34:55Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx). - url: https://github.com/theupdateframework/notary name: theupdateframework/notary status: archived - stars: 3288 + stars: 3287 forks: 520 last_push: 2024-08-07T19:02:32Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: A server and a client for running and interacting with trusted collections. By [TUF](https://github.com/theupdateframework). - url: https://github.com/OpenSCAP/openscap name: OpenSCAP/openscap status: healthy - stars: 1672 - forks: 421 + stars: 1676 + forks: 424 last_push: 2026-02-27T12:44:50Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP). - url: https://github.com/dormstern/segspec name: dormstern/segspec status: healthy stars: 15 last_push: 2026-02-23T11:39:00Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [dormstern](https://github.com/dormstern). - url: https://github.com/anchore/syft name: anchore/syft status: healthy - stars: 8429 - forks: 776 - last_push: 2026-02-27T19:38:05Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 8454 + forks: 779 + last_push: 2026-03-08T08:12:44Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. - url: https://github.com/falcosecurity/falco name: falcosecurity/falco status: healthy - stars: 8694 - forks: 989 - last_push: 2026-02-27T12:34:45Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 8712 + forks: 990 + last_push: 2026-03-02T17:54:20Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. - url: https://github.com/aquasecurity/trivy name: aquasecurity/trivy status: healthy - stars: 32289 - forks: 2977 - last_push: 2026-02-26T18:00:30Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 33020 + forks: 76 + last_push: 2026-03-06T06:42:06Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Security + description: Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). - url: https://github.com/bytesharky/docker-dns name: bytesharky/docker-dns status: healthy stars: 3 forks: 1 last_push: 2025-12-26T02:44:43Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Service Discovery + description: Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. `.docker`) on the host to simplify service discovery. - url: https://github.com/etcd-io/etcd name: etcd-io/etcd status: healthy - stars: 51580 - forks: 10330 - last_push: 2026-02-27T21:04:29Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 51631 + forks: 10336 + last_push: 2026-03-06T20:11:02Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Service Discovery + description: Distributed reliable key-value store for the most critical data of a distributed system by [etcd-io](https://github.com/etcd-io) (former part of CoreOS). - url: https://github.com/istio/istio name: istio/istio status: healthy - stars: 38054 - forks: 8250 - last_push: 2026-02-27T22:16:29Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 38089 + forks: 8260 + last_push: 2026-03-08T16:55:04Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Service Discovery + description: An open platform to connect, manage, and secure microservices. - url: https://github.com/gliderlabs/registrator name: gliderlabs/registrator status: healthy - stars: 4677 + stars: 4675 forks: 909 last_push: 2025-05-22T04:16:52Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Service Discovery + description: Service registry bridge for Docker by [gliderlabs][gliderlabs] and [progrium][progrium]. - url: https://github.com/minio/minio name: minio/minio status: archived - stars: 60392 - forks: 7138 + stars: 60448 + forks: 7197 last_push: 2026-02-12T20:18:51Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Volume Management / Data + description: S3 compatible object storage server in Docker containers. - url: https://github.com/Storidge/quick-start name: Storidge/quick-start status: stale stars: 1 forks: 1 last_push: 2019-09-09T21:42:15Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > Volume Management / Data + description: Software-defined Persistent Storage for Kubernetes and Docker Swarm. - url: https://github.com/AbianS/docker-db-manager name: AbianS/docker-db-manager status: healthy stars: 155 forks: 5 last_push: 2025-11-26T09:24:24Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Desktop + description: Desktop app for managing Docker database containers with visual interface and one-click operations. - url: https://github.com/felixgborrego/simple-docker-ui name: felixgborrego/simple-docker-ui status: inactive - stars: 607 + stars: 606 forks: 96 last_push: 2024-09-06T09:31:07Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Desktop + description: Built on Electron. By [felixgborrego](https://github.com/felixgborrego/). - url: https://github.com/slonopotamus/stevedore name: slonopotamus/stevedore status: healthy - stars: 368 + stars: 369 forks: 13 last_push: 2026-02-27T11:51:20Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Desktop + description: Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [slonopotamus](https://github.com/slonopotamus). - url: https://github.com/jr-k/d4s name: jr-k/d4s status: healthy - stars: 51 + stars: 55 forks: 4 - last_push: 2026-02-24T00:58:30Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-04T21:15:58Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s. - url: https://github.com/wagoodman/dive name: wagoodman/dive status: healthy - stars: 53433 - forks: 1949 + stars: 53505 + forks: 1953 last_push: 2025-12-15T17:20:36Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). - url: https://github.com/lirantal/dockly name: lirantal/dockly status: healthy - stars: 4011 - forks: 163 + stars: 4014 + forks: 164 last_push: 2026-02-01T19:31:17Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: An interactive shell UI for managing Docker containers. - url: https://github.com/shubh-io/dockmate name: shubh-io/dockmate status: healthy - stars: 276 + stars: 278 forks: 5 last_push: 2026-01-14T06:52:19Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: Lightweight terminal-based Docker and Podman manager with a text-based user interface,. - url: https://github.com/GhostWriters/DockSTARTer name: GhostWriters/DockSTARTer status: healthy - stars: 2543 + stars: 2545 forks: 291 - last_push: 2026-02-25T19:44:53Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-01T14:12:50Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters). - url: https://github.com/durableprogramming/dprs name: durableprogramming/dprs status: healthy stars: 36 forks: 1 - last_push: 2026-02-12T20:14:04Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-05T15:59:19Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [durableprogramming](https://github.com/durableprogramming). - url: https://github.com/moncho/dry name: moncho/dry status: healthy - stars: 3222 - forks: 102 - last_push: 2026-02-27T23:13:28Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 3227 + forks: 103 + last_push: 2026-03-08T10:25:15Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: An interactive CLI for Docker containers. - url: https://github.com/ajayd-san/gomanagedocker name: ajayd-san/gomanagedocker status: inactive stars: 632 forks: 26 last_push: 2024-12-28T07:44:20Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box. - url: https://github.com/jesseduffield/lazydocker name: jesseduffield/lazydocker status: healthy - stars: 49901 - forks: 1577 + stars: 50030 + forks: 1578 last_push: 2026-01-17T06:16:20Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [jesseduffield](https://github.com/jesseduffield). - url: https://github.com/Lifailon/lazyjournal name: Lifailon/lazyjournal status: healthy - stars: 1132 - forks: 27 - last_push: 2026-02-25T09:43:40Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 1175 + forks: 28 + last_push: 2026-03-06T14:14:51Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring. - url: https://github.com/mrjackwills/oxker name: mrjackwills/oxker status: healthy - stars: 1536 - forks: 41 + stars: 1552 + forks: 43 last_push: 2026-02-23T15:18:34Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Terminal UI + description: A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard),. - url: https://github.com/jenssegers/captain name: jenssegers/captain status: stale stars: 244 - forks: 11 + forks: 10 last_push: 2022-12-08T07:39:21Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Easily start and stop docker compose projects from any directory. By [jenssegers](https://github.com/jenssegers). - url: https://github.com/Falldog/dcinja name: Falldog/dcinja status: healthy stars: 13 forks: 3 last_push: 2025-06-26T12:33:01Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: The powerful and smallest binary size of template engine for docker command line environment. By [Falldog](https://github.com/Falldog). - url: https://github.com/exdx/dcp name: exdx/dcp status: stale stars: 114 forks: 3 last_push: 2023-07-24T01:09:54Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: A simple tool for copying files from container filesystems. By [exdx](https://github.com/exdx). - url: https://github.com/FabienD/docker-stack name: FabienD/docker-stack status: healthy stars: 22 forks: 2 - last_push: 2026-02-04T08:56:30Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-01T10:58:51Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD). - url: https://github.com/s0rg/decompose name: s0rg/decompose status: healthy - stars: 123 + stars: 126 forks: 6 last_push: 2025-12-19T20:03:44Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Reverse-engineering tool for docker environments. By [s0rg](https://github.com/s0rg). - url: https://github.com/christian-korneck/docker-pushrm name: christian-korneck/docker-pushrm status: inactive stars: 148 forks: 3 last_push: 2024-06-10T21:42:09Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [christian-korneck](https://github.com/christian-korneck). - url: https://github.com/lucabello/docker-captain name: lucabello/docker-captain status: healthy stars: 2 - last_push: 2026-02-21T00:13:43Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-07T00:13:26Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. - url: https://github.com/mayflower/docker-ls name: mayflower/docker-ls status: archived stars: 456 forks: 68 last_push: 2023-08-31T06:44:18Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: CLI tools for browsing and manipulating docker registries. - url: https://github.com/howtowhale/dvm name: howtowhale/dvm status: stale - stars: 524 + stars: 525 forks: 50 last_push: 2022-03-30T13:23:11Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Docker version manager. - url: https://github.com/iamsoorena/goinside name: iamsoorena/goinside status: stale stars: 30 forks: 2 last_push: 2020-10-17T20:31:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Get inside a running docker container easily. - url: https://github.com/g31s/Pdocker name: g31s/Pdocker status: stale stars: 7 forks: 2 last_push: 2021-02-27T06:42:13Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: A simple tool to manage and maintain Docker for personal projects. - url: https://github.com/shiwaforce/poco name: shiwaforce/poco status: healthy - stars: 109 + stars: 111 forks: 6 - last_push: 2026-02-24T16:23:44Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-02-28T12:31:09Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. - url: https://github.com/JonathonReinhart/scuba name: JonathonReinhart/scuba status: healthy stars: 96 forks: 17 last_push: 2026-01-26T04:03:05Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Transparently use Docker containers to encapsulate software build environments,. - url: https://github.com/containers/skopeo name: containers/skopeo status: healthy - stars: 10502 - forks: 907 - last_push: 2026-02-27T15:31:34Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 10538 + forks: 908 + last_push: 2026-03-08T00:58:49Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Work with remote images registries - retrieving information, images, signing content. - url: https://github.com/segersniels/supdock name: segersniels/supdock status: healthy stars: 86 forks: 3 last_push: 2026-02-23T13:29:54Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Allows for slightly more visual usage of Docker with an interactive prompt. By [segersniels](https://github.com/segersniels). - url: https://github.com/qazbnm456/tsaotun name: qazbnm456/tsaotun status: stale - stars: 58 + stars: 59 forks: 3 last_push: 2022-10-04T06:53:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > CLI tools + description: Python based Assistance for Docker. - url: https://github.com/vutran/dext-docker-registry-plugin name: vutran/dext-docker-registry-plugin status: stale stars: 4 forks: 1 last_push: 2017-01-10T03:04:36Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Other + description: Search the Docker Registry with the Dext smart launcher. By [vutran](https://github.com/vutran). - url: https://github.com/jeroenpeeters/docker-ssh name: jeroenpeeters/docker-ssh status: stale - stars: 660 + stars: 659 forks: 89 last_push: 2018-04-11T20:24:08Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Other + description: SSH Server for Docker containers ~ Because every container should be accessible. By [jeroenpeeters](https://github.com/jeroenpeeters). - url: https://github.com/marty90/multidocker name: marty90/multidocker status: stale stars: 56 forks: 9 last_push: 2018-11-27T15:12:56Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Other + description: Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. - url: https://github.com/adrianmo/powerline-docker name: adrianmo/powerline-docker status: stale stars: 61 forks: 6 last_push: 2017-06-30T09:11:44Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Terminal > Other + description: A Powerline segment for showing the status of Docker containers. - url: https://github.com/knrdl/casa name: knrdl/casa status: healthy stars: 84 forks: 5 - last_push: 2026-02-26T16:33:07Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-02T14:26:48Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Outsource the administration of a handful of containers to your co-workers,. - url: https://github.com/wrfly/container-web-tty name: wrfly/container-web-tty status: healthy stars: 258 forks: 46 - last_push: 2026-02-07T06:18:34Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-02T16:34:06Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Connect your containers via a web-tty [wrfly](https://github.com/wrfly). - url: https://github.com/ProductiveOps/dokemon name: ProductiveOps/dokemon status: stale - stars: 758 + stars: 759 forks: 36 last_push: 2024-02-21T10:51:14Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Docker Container Management GUI. - url: https://github.com/klausmeyer/docker-registry-browser name: klausmeyer/docker-registry-browser status: healthy stars: 675 forks: 61 last_push: 2026-02-21T09:06:10Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Web Interface for the Docker Registry HTTP API v2. - url: https://github.com/mkuchin/docker-registry-web name: mkuchin/docker-registry-web status: stale stars: 548 forks: 133 last_push: 2022-02-08T08:42:02Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Web UI, authentication service and event recorder for private docker registry v2. - url: https://github.com/dockersamples/docker-swarm-visualizer name: dockersamples/docker-swarm-visualizer status: inactive stars: 3348 - forks: 594 + forks: 596 last_push: 2024-10-26T07:12:05Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Visualizes Docker services on a Docker Swarm (for running demos). - url: https://github.com/louislam/dockge name: louislam/dockge status: healthy - stars: 22251 - forks: 705 + stars: 22365 + forks: 707 last_push: 2026-01-21T10:51:44Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager. - url: https://github.com/mbecker20/komodo name: mbecker20/komodo status: healthy - stars: 10397 - forks: 276 - last_push: 2026-02-27T22:21:17Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 10494 + forks: 277 + last_push: 2026-03-08T14:48:23Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: A tool to build and deploy software on many servers. - url: https://github.com/kubevious/kubevious name: kubevious/kubevious status: stale - stars: 1693 + stars: 1692 forks: 95 last_push: 2024-01-15T18:42:38Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: A highly visual web UI for Kubernetes which renders configuration and state in an application centric way. - url: https://github.com/hywax/mafl name: hywax/mafl status: healthy - stars: 671 + stars: 675 forks: 52 last_push: 2025-10-26T02:26:26Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Minimalistic flexible homepage. - url: https://github.com/netdata/netdata name: netdata/netdata status: healthy - stars: 77906 - forks: 6359 - last_push: 2026-02-27T21:54:35Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 77993 + forks: 6360 + last_push: 2026-03-08T10:17:43Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Real-time performance monitoring. - url: https://github.com/OctoLinker/OctoLinker name: OctoLinker/OctoLinker status: stale - stars: 5351 + stars: 5352 forks: 283 last_push: 2023-10-02T12:33:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. - url: https://github.com/portainer/portainer name: portainer/portainer status: healthy - stars: 36692 - forks: 2779 - last_push: 2026-02-27T13:23:22Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 36781 + forks: 2787 + last_push: 2026-03-07T13:14:38Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: A lightweight management UI for managing your Docker hosts or Docker Swarm clusters. - url: https://github.com/ozlerhakan/rapid name: ozlerhakan/rapid status: stale stars: 147 forks: 24 last_push: 2021-09-21T08:44:39Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: A simple query dashboard to use Docker Remote API. - url: https://github.com/tobegit3hub/seagull name: tobegit3hub/seagull status: stale stars: 1939 forks: 268 last_push: 2017-11-22T02:11:23Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Friendly Web UI to monitor docker daemon. - url: https://github.com/swarmpit/swarmpit name: swarmpit/swarmpit status: healthy - stars: 3407 + stars: 3410 forks: 312 - last_push: 2026-01-25T16:08:24Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-04T00:04:24Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. - url: https://github.com/cuigh/swirl name: cuigh/swirl status: stale - stars: 667 + stars: 668 forks: 83 last_push: 2023-05-16T02:47:48Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Swirl is a web management tool for Docker, focused on swarm cluster By [cuigh](https://github.com/cuigh/). - url: https://github.com/eclipse-theia/theia name: eclipse-theia/theia status: healthy - stars: 21381 - forks: 2799 - last_push: 2026-02-27T22:10:02Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 21393 + forks: 2801 + last_push: 2026-03-07T09:12:05Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. - url: https://github.com/fr4nsys/usulnet name: fr4nsys/usulnet status: healthy - stars: 71 - forks: 2 + stars: 77 + forks: 3 last_push: 2026-02-23T23:00:19Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Container Operations > User Interface > Web + description: A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [fr4nsys](https://github.com/fr4nsys). - url: https://github.com/genuinetools/amicontained name: genuinetools/amicontained status: stale - stars: 1072 + stars: 1073 forks: 71 last_push: 2020-12-09T04:37:59Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Container introspection tool. Find out what container runtime is being used as well as features available. - url: https://github.com/garywiz/chaperone name: garywiz/chaperone status: stale - stars: 178 + stars: 179 forks: 31 last_push: 2020-07-16T21:30:27Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. - url: https://github.com/nicomt/ckron name: nicomt/ckron status: healthy stars: 56 forks: 6 last_push: 2026-02-15T17:58:14Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: A cron-style job scheduler for docker,. - url: https://github.com/GoogleContainerTools/distroless name: GoogleContainerTools/distroless status: healthy - stars: 22291 - forks: 1361 - last_push: 2026-02-27T21:06:10Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 22329 + forks: 1360 + last_push: 2026-03-06T14:09:42Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Language focused docker images, minus the operating system,. - url: https://github.com/gliderlabs/docker-alpine name: gliderlabs/docker-alpine status: stale - stars: 5719 + stars: 5720 forks: 530 last_push: 2021-04-01T08:02:51Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: A super small Docker base image _(5MB)_ using Alpine Linux. - url: https://github.com/jwilder/docker-gen name: jwilder/docker-gen status: healthy - stars: 4616 + stars: 4620 forks: 615 - last_push: 2026-02-13T13:22:38Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-07T14:15:15Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Generate files from docker container meta-data. - url: https://github.com/powerman/dockerize name: powerman/dockerize status: healthy stars: 195 forks: 17 - last_push: 2026-02-23T15:53:51Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-05T18:12:32Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Utility to simplify running applications in docker containers by [jwilder][jwilder], [powerman][powerman]. - url: https://github.com/tianon/gosu name: tianon/gosu status: healthy - stars: 4947 + stars: 4952 forks: 356 - last_push: 2026-02-21T00:14:55Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-04T18:27:37Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Run this specific application as this specific user and get out of the pipeline (entrypoint script tool). - url: https://github.com/sindresorhus/is-docker name: sindresorhus/is-docker status: healthy - stars: 231 + stars: 233 forks: 16 last_push: 2025-09-15T21:04:10Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Check if the process is running inside a Docker container. - url: https://github.com/ivanilves/lstags name: ivanilves/lstags status: stale stars: 340 forks: 26 last_push: 2023-05-11T20:38:37Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Sync Docker images across registries. - url: https://github.com/tarampampam/microcheck name: tarampampam/microcheck status: healthy - stars: 127 + stars: 130 forks: 2 last_push: 2026-02-24T19:11:41Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. - url: https://github.com/mcuadros/ofelia name: mcuadros/ofelia status: healthy - stars: 3731 + stars: 3742 forks: 204 - last_push: 2026-02-27T07:34:07Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-08T01:55:37Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z - url: https://github.com/beyondssl/sparkview-container name: beyondssl/sparkview-container status: healthy stars: 20 forks: 2 last_push: 2025-09-22T06:59:43Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. - url: https://github.com/ncopa/su-exec name: ncopa/su-exec status: healthy - stars: 1017 + stars: 1019 forks: 103 last_push: 2025-10-07T13:49:01Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa). - url: https://github.com/theAkito/sue name: theAkito/sue status: stale stars: 13 forks: 1 last_push: 2022-04-26T21:10:24Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito]. - url: https://github.com/aptible/supercronic name: aptible/supercronic status: healthy - stars: 2383 + stars: 2391 forks: 141 - last_push: 2026-02-11T20:22:54Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-06T13:28:13Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: Crontab-compatible job runner, designed specifically to run in containers. - url: https://github.com/vorakl/TrivialRC name: vorakl/TrivialRC status: stale - stars: 31 + stars: 32 forks: 5 last_push: 2023-12-20T00:39:55Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Base Tools + description: A minimalistic Runtime Configuration system and process manager for containers [vorakl](https://github.com/vorakl). - url: https://github.com/ansible-community/ansible-bender name: ansible-community/ansible-bender status: healthy - stars: 692 + stars: 694 forks: 74 last_push: 2026-01-07T23:21:32Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: A tool utilising `ansible` and `buildah`. - url: https://github.com/containers/buildah name: containers/buildah status: healthy - stars: 8633 - forks: 879 - last_push: 2026-02-27T18:52:32Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 8662 + forks: 882 + last_push: 2026-03-08T17:53:57Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: A tool that facilitates building OCI images. - url: https://github.com/moby/buildkit name: moby/buildkit status: healthy - stars: 9795 - forks: 1373 - last_push: 2026-02-27T15:45:57Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 9817 + forks: 1379 + last_push: 2026-03-06T22:37:08Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit. - url: https://github.com/cekit/cekit name: cekit/cekit status: healthy stars: 113 forks: 44 last_push: 2026-01-30T15:06:33Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: A tool used by openshift to build base images using different build engines. - url: https://github.com/mutable/container-factory name: mutable/container-factory status: stale stars: 64 forks: 3 last_push: 2015-05-06T16:07:53Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Produces Docker images from tarballs of application source code. - url: https://github.com/mdlavin/copy-docker-image name: mdlavin/copy-docker-image status: stale stars: 38 forks: 16 last_push: 2018-08-29T08:27:20Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Copy a Docker image between registries without a full Docker installation. - url: https://github.com/alibaba/derrick name: alibaba/derrick status: stale - stars: 694 + stars: 693 forks: 109 last_push: 2023-03-06T22:40:17Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [alibaba](https://github.com/alibaba). - url: https://github.com/orisano/dlayer name: orisano/dlayer status: healthy stars: 445 forks: 12 - last_push: 2026-02-11T11:03:36Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-02T09:11:34Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Docker layer analyzer. - url: https://github.com/mudler/docker-companion name: mudler/docker-companion status: healthy stars: 47 forks: 9 last_push: 2025-05-28T08:17:46Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: A command line tool written in Golang to squash and unpack docker images. - url: https://github.com/CtripCloud/docker-make name: CtripCloud/docker-make status: stale stars: 99 forks: 20 last_push: 2019-11-22T08:32:26Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Build, tag,and push a bunch of related docker images via a single command. - url: https://github.com/orf/docker-repack name: orf/docker-repack status: healthy stars: 151 forks: 3 last_push: 2025-04-24T06:46:00Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. By [orf](https://github.com/orf). - url: https://github.com/bcicen/docker-replay name: bcicen/docker-replay status: stale stars: 203 forks: 13 last_push: 2018-10-13T13:09:28Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen). - url: https://github.com/swipely/dockly name: swipely/dockly status: stale stars: 228 forks: 10 last_push: 2023-02-15T15:26:17Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Dockly is a gem made to ease the pain of packaging an application in Docker. - url: https://github.com/utensils/essex name: utensils/essex status: healthy stars: 38 last_push: 2025-03-18T21:33:36Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: 'Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [jamesbrink](https://github.com/jamesbrink).' - url: https://github.com/NVIDIA/hpc-container-maker name: NVIDIA/hpc-container-maker status: healthy - stars: 508 + stars: 510 forks: 100 last_push: 2026-02-19T23:22:06Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. - url: https://github.com/genuinetools/img name: genuinetools/img status: inactive stars: 3990 forks: 234 last_push: 2024-05-19T22:07:07Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. - url: https://github.com/duedil-ltd/portainer name: duedil-ltd/portainer status: stale stars: 134 forks: 16 last_push: 2017-02-28T17:15:49Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Apache Mesos framework for building Docker images. - url: https://github.com/cybersecsi/RAUDI name: cybersecsi/RAUDI status: healthy stars: 560 forks: 34 - last_push: 2026-02-26T09:33:46Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-05T01:57:28Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [SecSI](https://github.com/cybersecsi). - url: https://github.com/lavie/runlike name: lavie/runlike status: healthy - stars: 2916 - forks: 162 + stars: 2919 + forks: 163 last_push: 2025-12-04T12:36:39Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Generate `docker run`command and options from running containers. - url: https://github.com/theAkito/userdef name: theAkito/userdef status: stale stars: 11 last_push: 2023-10-14T20:34:12Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito]. - url: https://github.com/P3GLEG/Whaler name: P3GLEG/Whaler status: healthy stars: 1185 forks: 101 last_push: 2025-09-17T03:56:52Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: Program to reverse Docker images into Dockerfiles. - url: https://github.com/Gueils/whales name: Gueils/whales status: stale stars: 391 forks: 20 last_push: 2019-05-27T13:20:14Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Builder + description: A tool to automatically dockerize your applications. - url: https://github.com/garywiz/chaperone-docker name: garywiz/chaperone-docker status: stale stars: 66 forks: 11 last_push: 2018-10-05T07:48:36Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Dockerfile + description: A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. - url: https://github.com/patrickhoefler/dockerfilegraph name: patrickhoefler/dockerfilegraph status: healthy stars: 255 forks: 17 - last_push: 2026-02-26T05:40:58Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-08T00:49:58Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Dockerfile + description: Visualize your multi-stage Dockerfiles. By [PatrickHoefler](https://github.com/patrickhoefler). - url: https://github.com/Dockershelf/dockershelf name: Dockershelf/dockershelf status: healthy stars: 97 forks: 13 - last_push: 2026-01-22T01:03:39Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-05T01:03:36Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Dockerfile + description: A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. - url: https://github.com/deckrun/dockadvisor name: deckrun/dockadvisor status: healthy - stars: 178 + stars: 186 forks: 6 last_push: 2026-01-12T09:26:02Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Linter + description: Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks. - url: https://github.com/wemake-services/docker-image-size-limit name: wemake-services/docker-image-size-limit status: healthy stars: 130 forks: 5 - last_push: 2026-02-27T11:53:07Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-06T23:18:34Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Linter + description: A tool to keep an eye on your docker images size. - url: https://github.com/buddy-works/dockerfile-linter name: buddy-works/dockerfile-linter status: stale stars: 46 forks: 3 last_push: 2023-03-04T05:06:08Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Linter + description: The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. - url: https://github.com/replicatedhq/dockerfilelint name: replicatedhq/dockerfilelint status: stale - stars: 1031 + stars: 1029 forks: 83 last_push: 2023-09-27T20:58:01Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Linter + description: An opinionated Dockerfile linter. - url: https://github.com/hadolint/hadolint name: hadolint/hadolint status: healthy - stars: 11966 + stars: 11985 forks: 487 - last_push: 2026-01-27T13:27:01Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-02T08:58:07Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Linter + description: A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions;. - url: https://github.com/RedCoolBeans/cargos-buildroot name: RedCoolBeans/cargos-buildroot status: stale stars: 11 forks: 2 last_push: 2017-04-02T14:59:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Registry + description: A bare essential OS for running the Docker Engine on bare metal or Cloud. By [RedCoolBeans](https://github.com/RedCoolBeans). - url: https://github.com/hcguersoy/cleanreg name: hcguersoy/cleanreg status: stale stars: 59 forks: 18 last_push: 2022-09-03T17:43:40Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Registry + description: A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC. - url: https://github.com/netvarun/docket name: netvarun/docket status: stale stars: 709 forks: 33 last_push: 2020-09-02T02:35:17Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Registry + description: Custom docker registry that allows for lightning fast deploys through bittorrent. - url: https://github.com/dragonflyoss/Dragonfly2 name: dragonflyoss/Dragonfly2 status: healthy - stars: 3049 - forks: 373 - last_push: 2026-02-25T02:37:31Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 3070 + forks: 377 + last_push: 2026-03-05T12:44:54Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Registry + description: Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. - url: https://github.com/uber/kraken name: uber/kraken status: healthy - stars: 6653 + stars: 6659 forks: 468 - last_push: 2026-02-25T13:57:24Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-05T13:24:04Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Registry + description: Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. - url: https://github.com/jhstatewide/nscr name: jhstatewide/nscr status: healthy stars: 1 last_push: 2025-10-27T14:37:18Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Registry + description: A light-weight, self-contained container registry that's easy to run and maintain. - url: https://github.com/inmagik/registryo name: inmagik/registryo status: healthy stars: 15 last_push: 2025-12-17T10:20:47Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Registry + description: UI and token based authentication server for onpremise docker registry. - url: https://github.com/noteed/rescoyl name: noteed/rescoyl status: stale stars: 18 forks: 4 last_push: 2017-04-08T19:17:24Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Docker Images > Registry + description: Private Docker registry (free and open source). - url: https://github.com/instacart/ahab name: instacart/ahab status: stale stars: 137 forks: 7 last_push: 2018-11-16T21:54:44Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: Docker event handling with Python. - url: https://github.com/lispyclouds/contajners name: lispyclouds/contajners status: healthy stars: 145 forks: 8 last_push: 2026-02-20T09:07:36Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [lispyclouds][lispyclouds]. - url: https://github.com/gesellix/docker-client name: gesellix/docker-client status: healthy stars: 119 forks: 28 - last_push: 2026-02-27T16:52:20Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-08T12:34:16Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: A Docker remote api client library for the JVM, written in Groovy. - url: https://github.com/dgongut/docker-controller-bot name: dgongut/docker-controller-bot status: healthy - stars: 240 + stars: 241 forks: 31 last_push: 2026-02-04T15:58:07Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: Telegram bot to control docker containers. By [dgongut](https://github.com/dgongut/). - url: https://github.com/whisklabs/docker-it-scala name: whisklabs/docker-it-scala status: stale stars: 433 forks: 90 last_push: 2024-02-14T12:56:54Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: Docker integration testing kit with Scala. - url: https://github.com/amihaiemil/docker-java-api name: amihaiemil/docker-java-api status: stale stars: 274 forks: 55 last_push: 2021-06-04T01:21:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: Lightweight, truly object-oriented, Java client for Docker's API. By [amihaiemil](https://github.com/amihaiemil). - url: https://github.com/fabric8io/docker-maven-plugin name: fabric8io/docker-maven-plugin status: healthy - stars: 1928 + stars: 1929 forks: 656 last_push: 2026-02-24T15:30:08Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: A Maven plugin for running and creating Docker images. - url: https://github.com/Microsoft/Docker.DotNet name: Microsoft/Docker.DotNet status: healthy - stars: 2403 - forks: 407 + stars: 2405 + forks: 409 last_push: 2025-08-28T14:08:51Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: C#/.NET HTTP client for the Docker remote API. - url: https://github.com/ChangemakerStudios/Docker.Registry.DotNet name: ChangemakerStudios/Docker.Registry.DotNet status: healthy stars: 42 forks: 21 last_push: 2025-10-06T03:43:52Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: .NET (C#) Client Library for interacting with a Docker Registry API (v2) [rquackenbush](https://github.com/rquackenbush). - url: https://github.com/apocas/dockerode name: apocas/dockerode status: healthy - stars: 4827 + stars: 4834 forks: 486 - last_push: 2026-01-09T08:49:53Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-02-28T03:51:43Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: Docker Remote API node.js module. - url: https://github.com/eon01/DoMonit name: eon01/DoMonit status: stale stars: 76 forks: 15 last_push: 2021-06-01T21:57:21Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: A simple Docker Monitoring wrapper For Docker API. - url: https://github.com/fsouza/go-dockerclient name: fsouza/go-dockerclient status: healthy stars: 2236 - forks: 555 - last_push: 2026-02-26T03:52:11Z - checked_at: 2026-02-27T23:43:36.588325Z + forks: 556 + last_push: 2026-03-06T04:10:21Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z - url: https://github.com/gesellix/gradle-docker-plugin name: gesellix/gradle-docker-plugin status: healthy stars: 81 forks: 17 - last_push: 2026-02-27T14:32:37Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-08T12:36:04Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: A Docker remote api plugin for Gradle. - url: https://github.com/greenled/portainer-stack-utils name: greenled/portainer-stack-utils status: healthy stars: 74 forks: 16 last_push: 2025-12-05T02:34:50Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [greenled](https://github.com/greenled). - url: https://github.com/marcuslonnberg/sbt-docker name: marcuslonnberg/sbt-docker status: inactive stars: 733 forks: 112 last_push: 2024-12-12T15:18:45Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > API Client + description: Create Docker images directly from sbt. - url: https://github.com/harbur/captain name: harbur/captain status: healthy stars: 776 forks: 48 last_push: 2025-05-25T00:09:20Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Convert your Git workflow to Docker containers ready for Continuous Delivery. - url: https://github.com/caicloud/cyclone name: caicloud/cyclone status: stale - stars: 1074 + stars: 1073 forks: 171 last_push: 2023-10-24T12:08:27Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources. - url: https://github.com/DefangLabs/defang name: DefangLabs/defang status: healthy stars: 146 forks: 24 - last_push: 2026-02-27T19:16:01Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-08T06:20:54Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Deploy Docker Compose to your favorite cloud in minutes. - url: https://github.com/crazy-max/diun name: crazy-max/diun status: healthy - stars: 4428 - forks: 144 - last_push: 2026-02-27T07:02:29Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 4457 + forks: 143 + last_push: 2026-03-08T17:42:13Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Receive notifications when an image or repository is updated on a Docker registry by [crazy-max]. - url: https://github.com/mag37/dockcheck name: mag37/dockcheck status: healthy - stars: 2221 - forks: 77 - last_push: 2026-02-06T17:07:58Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 2237 + forks: 80 + last_push: 2026-03-05T18:27:54Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. - url: https://github.com/jenkinsci/docker-plugin name: jenkinsci/docker-plugin status: healthy - stars: 498 + stars: 499 forks: 325 - last_push: 2026-01-16T13:00:38Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-02-28T10:00:57Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z - url: https://github.com/drone/drone name: drone/drone status: healthy - stars: 33826 - forks: 2894 - last_push: 2026-02-27T08:17:22Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 33861 + forks: 2896 + last_push: 2026-03-07T12:23:43Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Continuous integration server built on Docker and configured using YAML files. - url: https://github.com/CodesWhat/drydock name: CodesWhat/drydock status: healthy - stars: 93 - forks: 4 - last_push: 2026-02-24T04:20:32Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 111 + forks: 5 + last_push: 2026-03-08T18:03:39Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Open-source container update monitoring with web dashboard, 15 registries, 16 notification triggers, and security scanning. Drop-in WUD replacement. By [CodesWhat](https://github.com/CodesWhat). - url: https://github.com/shizunge/gantry name: shizunge/gantry status: healthy - stars: 86 + stars: 84 forks: 4 - last_push: 2026-02-24T05:29:27Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-06T03:39:21Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Automatically update selected Docker swarm services. - url: https://github.com/theSage21/jaypore_ci name: theSage21/jaypore_ci - status: stale + status: healthy stars: 38 forks: 4 - last_push: 2023-06-03T17:03:43Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-07T17:18:09Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. - url: https://github.com/Kraken-CI/kraken name: Kraken-CI/kraken status: healthy stars: 160 forks: 20 last_push: 2026-01-15T13:00:32Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed. - url: https://github.com/francescou/docker-continuous-deployment name: francescou/docker-continuous-deployment status: stale stars: 145 forks: 38 last_push: 2017-08-01T17:25:15Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Continuous deployment of a microservices application. - url: https://github.com/stelligent/mu name: stelligent/mu status: stale stars: 965 forks: 133 last_push: 2020-06-18T14:09:29Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [Stelligent](https://github.com/stelligent). - url: https://github.com/systemslab/popper name: systemslab/popper status: stale stars: 307 forks: 62 last_push: 2022-03-29T22:02:27Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Github actions workflow (HCL syntax) execution engine. - url: https://github.com/Stratoscale/skipper name: Stratoscale/skipper status: healthy stars: 50 forks: 22 last_push: 2025-05-13T13:33:39Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Easily dockerize your Git repository. - url: https://github.com/ghostsquad/swarmci name: ghostsquad/swarmci status: stale stars: 58 forks: 6 last_push: 2017-02-24T02:14:18Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > CI/CD + description: Create a distributed, isolated task pipeline in your Docker Swarm. - url: https://github.com/binci/binci name: binci/binci status: stale stars: 673 forks: 24 last_push: 2022-12-06T20:24:40Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Containerize your development workflow. (formerly DevLab by [TechnologyAdvice](https://github.com/TechnologyAdvice)). - url: https://github.com/coder/coder name: coder/coder status: healthy - stars: 12338 - forks: 1177 - last_push: 2026-02-27T23:34:35Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 12417 + forks: 1194 + last_push: 2026-03-08T17:58:52Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Remote development machines powered by Terraform or Docker. - url: https://github.com/lstephen/construi name: lstephen/construi status: stale stars: 24 forks: 5 last_push: 2022-12-08T06:36:04Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Run your builds inside a Docker defined environment. - url: https://github.com/whatwedo/dde name: whatwedo/dde status: healthy stars: 46 forks: 9 last_push: 2026-02-20T12:25:04Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Local development environment toolset based on Docker. By [whatwedo](https://github.com/whatwedo). - url: https://github.com/bibendi/dip name: bibendi/dip status: inactive - stars: 1322 + stars: 1324 forks: 50 last_push: 2024-12-25T09:38:57Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [bibendi](https://github.com/bibendi). - url: https://github.com/dnephin/dobi name: dnephin/dobi status: stale stars: 315 forks: 34 last_push: 2023-11-10T06:32:19Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: A build automation tool for Docker applications. By [dnephin](https://github.com/dnephin). - url: https://github.com/nandoquintana/docker-missing-tools name: nandoquintana/docker-missing-tools status: stale stars: 30 forks: 6 last_push: 2018-05-01T13:10:10Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [NandoQuintana](https://github.com/nandoquintana). - url: https://github.com/Ph3nol/Docker-Arch name: Ph3nol/Docker-Arch status: stale stars: 31 forks: 2 last_push: 2018-09-24T06:43:08Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [Ph3nol](https://github.com/ph3nol). - url: https://github.com/EugenMayer/docker-sync name: EugenMayer/docker-sync status: healthy - stars: 3565 + stars: 3564 forks: 285 last_push: 2025-11-30T20:06:16Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [EugenMayer](https://github.com/EugenMayer). - url: https://github.com/shyiko/docker-vm name: shyiko/docker-vm status: stale stars: 43 forks: 8 last_push: 2016-09-24T17:45:47Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Simple and transparent alternative to boot2docker (backed by Vagrant). - url: https://github.com/matifali/dockerdl name: matifali/dockerdl status: healthy stars: 86 forks: 11 last_push: 2025-12-29T19:27:19Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. - url: https://github.com/eclipse/che name: eclipse/che status: healthy - stars: 7128 - forks: 1199 - last_push: 2026-02-27T12:40:18Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 7129 + forks: 1200 + last_push: 2026-03-06T15:10:49Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE. - url: https://github.com/EnvCLI/EnvCLI name: EnvCLI/EnvCLI status: healthy stars: 116 forks: 4 last_push: 2025-06-16T20:36:16Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Replace your local installation of Node, Go, ... with project-specific docker containers. By [EnvCLI](https://github.com/EnvCLI). - url: https://github.com/hpsaturn/esp32s3-linux name: hpsaturn/esp32s3-linux status: healthy stars: 78 forks: 9 last_push: 2025-04-05T08:38:16Z - checked_at: 2026-02-27T23:43:36.588325Z + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Container solution to compile Linux and develop it for ESP32 microcontrollers - By [Hpsaturn](https://github.com/hpsaturn). - url: https://github.com/moshebe/gebug name: moshebe/gebug status: healthy stars: 634 forks: 17 - last_push: 2026-02-27T21:45:21Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-06T21:42:46Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. - url: https://github.com/senges/kitt name: senges/kitt status: stale stars: 20 forks: 1 last_push: 2023-02-23T14:01:05Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: A portable and disposable Shell environment, based on Docker and Nix. By [senges](https://github.com/senges). - url: https://github.com/lando/lando name: lando/lando status: healthy - stars: 4220 - forks: 530 + stars: 4222 + forks: 527 last_push: 2026-02-24T21:10:02Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://www.thinktandem.io/). - url: https://github.com/Peco602/rust-universal-compiler name: Peco602/rust-universal-compiler status: stale stars: 33 forks: 2 last_push: 2023-04-30T17:04:02Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Container solution to compile Rust projects for Linux, macOS and Windows. By [Peco602][peco602]. - url: https://github.com/uniget-org/cli name: uniget-org/cli status: healthy stars: 20 last_push: 2026-02-12T08:35:24Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [nicholasdille](https://github.com/nicholasdille). - url: https://github.com/tailhook/vagga name: tailhook/vagga status: stale - stars: 1895 + stars: 1896 forks: 96 last_push: 2023-03-31T06:13:55Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments. - url: https://github.com/deluan/zsh-in-docker name: deluan/zsh-in-docker status: inactive - stars: 1094 + stars: 1096 forks: 119 last_push: 2024-09-30T19:07:49Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Development Environment + description: Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com). - url: https://github.com/tjamet/caduc name: tjamet/caduc status: stale stars: 21 forks: 1 last_push: 2019-01-07T16:07:50Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Garbage Collection + description: A docker garbage collector cleaning stuff you did not use recently. - url: https://github.com/ZZROTDesign/docker-clean name: ZZROTDesign/docker-clean status: stale stars: 1304 forks: 90 last_push: 2018-01-16T16:29:41Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Garbage Collection + description: A script that cleans Docker containers, images and volumes. - url: https://github.com/Yelp/docker-custodian name: Yelp/docker-custodian status: inactive stars: 374 forks: 49 last_push: 2024-08-14T08:08:10Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Garbage Collection + description: Keep docker hosts tidy. By [Yelp](https://github.com/Yelp). - url: https://github.com/pdacity/docker_gc name: pdacity/docker_gc status: stale - stars: 127 + stars: 128 forks: 22 last_push: 2024-02-09T17:50:47Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Garbage Collection + description: Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service. - url: https://github.com/stepchowfun/docuum name: stepchowfun/docuum status: healthy - stars: 683 - forks: 42 - last_push: 2025-12-12T02:03:33Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 684 + forks: 43 + last_push: 2026-03-07T22:59:03Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Garbage Collection + description: Least recently used (LRU) eviction of Docker images. - url: https://github.com/apache/openwhisk name: apache/openwhisk status: healthy - stars: 6756 - forks: 1173 + stars: 6757 + forks: 1174 last_push: 2026-01-24T05:17:06Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Serverless + description: A serverless, open source cloud platform that executes functions in response to events at any scale. By [apache](https://github.com/apache). - url: https://github.com/bfirsh/funker-example-voting-app name: bfirsh/funker-example-voting-app status: stale stars: 26 forks: 8 last_push: 2016-11-29T11:51:39Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Serverless + description: Functions as Docker containers example voting app. By [bfirsh](https://github.com/bfirsh). - url: https://github.com/iron-io/functions name: iron-io/functions status: stale stars: 3220 forks: 224 last_push: 2023-09-15T01:37:58Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Serverless + description: The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions. - url: https://github.com/openfaas/faas name: openfaas/faas status: healthy - stars: 26102 + stars: 26105 forks: 1970 last_push: 2026-02-22T08:49:51Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Serverless + description: A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas). - url: https://github.com/grycap/scar name: grycap/scar status: stale - stars: 600 + stars: 599 forks: 47 last_push: 2023-05-22T11:01:11Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Serverless + description: Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda). - url: https://github.com/GoogleContainerTools/container-structure-test name: GoogleContainerTools/container-structure-test status: healthy - stars: 2460 + stars: 2462 forks: 207 last_push: 2026-02-20T23:41:16Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Testing + description: A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [GoogleContainerTools][googlecontainertools]. - url: https://github.com/zuazo/dockerspec name: zuazo/dockerspec status: stale stars: 181 forks: 8 last_push: 2017-08-30T20:40:57Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Testing + description: A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [zuazo](https://github.com/zuazo). - url: https://github.com/lynchborg/ezdc name: lynchborg/ezdc status: stale stars: 12 last_push: 2024-02-12T08:42:24Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Testing + description: Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [byrnedo]. - url: https://github.com/kurtosis-tech/kurtosis name: kurtosis-tech/kurtosis status: healthy - stars: 523 - forks: 88 - last_push: 2026-02-27T07:48:41Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 526 + forks: 90 + last_push: 2026-03-06T11:06:13Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Testing + description: 'A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/).' - url: https://github.com/alexei-led/pumba name: alexei-led/pumba status: healthy - stars: 2980 + stars: 3000 forks: 201 - last_push: 2026-02-27T19:58:45Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-01T21:26:21Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Testing + description: Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [alexei-led](https://github.com/alexei-led). - url: https://github.com/docker-exec/dexec name: docker-exec/dexec status: stale stars: 332 forks: 14 last_push: 2021-05-13T06:04:19Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: Command line interface written in Go for running code with Docker Exec images. - url: https://github.com/benzaita/dockerized-cli name: benzaita/dockerized-cli status: stale stars: 65 forks: 5 last_push: 2024-02-27T13:49:38Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: Seamlessly execute commands in a container. - url: https://github.com/CenturyLinkLabs/dray name: CenturyLinkLabs/dray status: stale stars: 386 forks: 37 last_push: 2020-01-24T17:34:58Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: An engine for managing the execution of container-based workflows. - url: https://github.com/artsy/hokusai name: artsy/hokusai status: healthy stars: 98 forks: 25 - last_push: 2026-02-06T19:41:17Z - checked_at: 2026-02-27T23:43:36.588325Z + last_push: 2026-03-06T10:57:58Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [artsy](https://github.com/artsy). - url: https://github.com/livecycle/preevy name: livecycle/preevy status: healthy - stars: 2189 + stars: 2191 forks: 87 last_push: 2026-02-06T07:38:46Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: Preview environments for Docker and Docker Compose projects. Test your changes and get feedback from devs and non-devs (Product/Design) by deploying pull requests to the your cloud provider as part of your CI pipeline. - url: https://github.com/ianmiell/shutit name: ianmiell/shutit status: stale - stars: 2145 + stars: 2144 forks: 110 last_push: 2022-08-14T14:43:18Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: Tool for building and maintaining complex Docker deployments. - url: https://github.com/subuser-security/subuser name: subuser-security/subuser status: inactive stars: 894 forks: 63 last_push: 2025-02-23T11:31:31Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: Makes it easy to securely and portably run graphical desktop applications in Docker. - url: https://github.com/christippett/terraform-cloudinit-container-server name: christippett/terraform-cloudinit-container-server status: stale stars: 120 forks: 30 last_push: 2022-08-19T06:41:50Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM. - url: https://github.com/ramitsurana/turbo name: ramitsurana/turbo status: stale stars: 27 forks: 12 last_push: 2021-12-22T19:03:53Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: Simple and Powerful utility for docker. By [ramitsurana][ramitsurana]. - url: https://github.com/indigo-dc/udocker name: indigo-dc/udocker status: healthy - stars: 1703 + stars: 1709 forks: 164 last_push: 2025-08-13T17:21:57Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Development with Docker > Wrappers + description: A tool to execute simple docker containers in batch or interactive systems without root privileges. - url: https://github.com/Appdynamics/docker-monitoring-extension name: Appdynamics/docker-monitoring-extension status: inactive stars: 5 forks: 6 last_push: 2024-10-02T10:48:59Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Services based on Docker (mostly :heavy_dollar_sign:) > Monitoring Services + description: Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. - url: https://github.com/sematext/sematext-agent-docker name: sematext/sematext-agent-docker status: stale stars: 208 forks: 32 last_push: 2023-12-09T18:07:20Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Projects > Services based on Docker (mostly :heavy_dollar_sign:) > Monitoring Services + description: Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [sematext](https://github.com/sematext). - url: https://github.com/cicdops/awesome-ciandcd name: cicdops/awesome-ciandcd status: inactive - stars: 1985 - forks: 224 + stars: 1987 + forks: 225 last_push: 2024-04-01T18:08:23Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Useful Resources > Awesome Lists + description: Not specific to docker but relevant. - url: https://github.com/docker/awesome-compose name: docker/awesome-compose status: healthy - stars: 44126 - forks: 8054 - last_push: 2026-02-27T05:54:59Z - checked_at: 2026-02-27T23:43:36.588325Z + stars: 44283 + forks: 8070 + last_push: 2026-03-05T09:59:09Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Useful Resources > Awesome Lists + description: Docker Compose samples. - url: https://github.com/hexops/dockerfile name: hexops/dockerfile status: stale - stars: 4092 + stars: 4091 forks: 155 last_push: 2021-08-08T04:42:37Z - checked_at: 2026-02-27T23:43:36.588325Z + has_license: true + checked_at: 2026-03-08T18:26:00.233336Z + category: Useful Resources > Good Tips + description: This repository has best-practices for writing Dockerfiles. diff --git a/go.mod b/go.mod index 57ec3028e..23912d599 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,8 @@ module github.com/veggiemonk/awesome-docker go 1.26.0 require ( + charm.land/bubbletea/v2 v2.0.1 + charm.land/lipgloss/v2 v2.0.0 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 github.com/yuin/goldmark v1.7.16 @@ -11,7 +13,22 @@ require ( ) require ( + github.com/charmbracelet/colorprofile v0.4.2 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8 // indirect + github.com/charmbracelet/x/ansi v0.11.6 // indirect + github.com/charmbracelet/x/term v0.2.2 // indirect + github.com/charmbracelet/x/termios v0.1.1 // indirect + github.com/charmbracelet/x/windows v0.2.2 // indirect + github.com/clipperhouse/displaywidth v0.11.0 // indirect + github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/lucasb-eyer/go-colorful v1.3.0 // indirect + github.com/mattn/go-runewidth v0.0.19 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf // indirect github.com/spf13/pflag v1.0.10 // indirect + github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.41.0 // indirect ) diff --git a/go.sum b/go.sum index cc4a312cc..d574c484c 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,38 @@ +charm.land/bubbletea/v2 v2.0.1 h1:B8e9zzK7x9JJ+XvHGF4xnYu9Xa0E0y0MyggY6dbaCfQ= +charm.land/bubbletea/v2 v2.0.1/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ= +charm.land/lipgloss/v2 v2.0.0 h1:sd8N/B3x892oiOjFfBQdXBQp3cAkvjGaU5TvVZC3ivo= +charm.land/lipgloss/v2 v2.0.0/go.mod h1:w6SnmsBFBmEFBodiEDurGS/sdUY/u1+v72DqUzc6J14= +github.com/aymanbagabas/go-udiff v0.4.0 h1:TKnLPh7IbnizJIBKFWa9mKayRUBQ9Kh1BPCk6w2PnYM= +github.com/aymanbagabas/go-udiff v0.4.0/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= +github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY= +github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8= +github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8 h1:eyFRbAmexyt43hVfeyBofiGSEmJ7krjLOYt/9CF5NKA= +github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8/go.mod h1:SQpCTRNBtzJkwku5ye4S3HEuthAlGy2n9VXZnWkEW98= +github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8= +github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ= +github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA= +github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f/go.mod h1:IfZAMTHB6XkZSeXUqriemErjAWCCzT0LwjKFYCZyw0I= +github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= +github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= +github.com/charmbracelet/x/termios v0.1.1 h1:o3Q2bT8eqzGnGPOYheoYS8eEleT5ZVNYNy8JawjaNZY= +github.com/charmbracelet/x/termios v0.1.1/go.mod h1:rB7fnv1TgOPOyyKRJ9o+AsTU/vK5WHJ2ivHeut/Pcwo= +github.com/charmbracelet/x/windows v0.2.2 h1:IofanmuvaxnKHuV04sC0eBy/smG6kIKrWG2/jYn2GuM= +github.com/charmbracelet/x/windows v0.2.2/go.mod h1:/8XtdKZzedat74NQFn0NGlGL4soHB0YQZrETF96h75k= +github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8= +github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0= +github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= +github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag= +github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= +github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed h1:KT7hI8vYXgU0s2qaMkrfq9tCA1w/iEPgfredVP+4Tzw= github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed/go.mod h1:zqMwyHmnN/eDOZOdiTohqIUKUrTFX62PNlu7IJdu0q8= @@ -11,11 +43,19 @@ github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiT github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE= github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= +golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/internal/cache/cache.go b/internal/cache/cache.go index 0c481ba3c..cd068d0bc 100644 --- a/internal/cache/cache.go +++ b/internal/cache/cache.go @@ -44,9 +44,11 @@ type HealthEntry struct { Stars int `yaml:"stars,omitempty"` Forks int `yaml:"forks,omitempty"` LastPush time.Time `yaml:"last_push,omitempty"` - HasLicense bool `yaml:"has_license,omitempty"` - HasReadme bool `yaml:"has_readme,omitempty"` - CheckedAt time.Time `yaml:"checked_at"` + HasLicense bool `yaml:"has_license,omitempty"` + HasReadme bool `yaml:"has_readme,omitempty"` + CheckedAt time.Time `yaml:"checked_at"` + Category string `yaml:"category,omitempty"` + Description string `yaml:"description,omitempty"` } // HealthCache is the full YAML cache file. diff --git a/internal/scorer/scorer.go b/internal/scorer/scorer.go index 1920e0cf6..3aefa8971 100644 --- a/internal/scorer/scorer.go +++ b/internal/scorer/scorer.go @@ -23,13 +23,15 @@ const ( // ScoredEntry is a repo with its computed health status. type ScoredEntry struct { - URL string - Name string - Status Status - Stars int - Forks int - HasLicense bool - LastPush time.Time + URL string + Name string + Status Status + Stars int + Forks int + HasLicense bool + LastPush time.Time + Category string + Description string } // ReportSummary contains grouped status counts. @@ -94,14 +96,16 @@ func ToCacheEntries(scored []ScoredEntry) []cache.HealthEntry { now := time.Now().UTC() for i, s := range scored { entries[i] = cache.HealthEntry{ - URL: s.URL, - Name: s.Name, - Status: string(s.Status), - Stars: s.Stars, - Forks: s.Forks, - HasLicense: s.HasLicense, - LastPush: s.LastPush, - CheckedAt: now, + URL: s.URL, + Name: s.Name, + Status: string(s.Status), + Stars: s.Stars, + Forks: s.Forks, + HasLicense: s.HasLicense, + LastPush: s.LastPush, + CheckedAt: now, + Category: s.Category, + Description: s.Description, } } return entries diff --git a/internal/tui/model.go b/internal/tui/model.go new file mode 100644 index 000000000..6836a869d --- /dev/null +++ b/internal/tui/model.go @@ -0,0 +1,603 @@ +package tui + +import ( + "fmt" + "os/exec" + "runtime" + "strings" + "unicode/utf8" + + tea "charm.land/bubbletea/v2" + "charm.land/lipgloss/v2" + "github.com/veggiemonk/awesome-docker/internal/cache" +) + +type panel int + +const ( + panelTree panel = iota + panelList +) + +const entryHeight = 5 // lines rendered per entry in the list panel +const scrollOff = 4 // minimum lines/entries kept visible above and below cursor + +// Model is the top-level Bubbletea model. +type Model struct { + roots []*TreeNode + flatTree []FlatNode + + activePanel panel + treeCursor int + treeOffset int + listCursor int + listOffset int + currentEntries []cache.HealthEntry + + filtering bool + filterText string + + width, height int +} + +// New creates a new Model from health cache entries. +func New(entries []cache.HealthEntry) Model { + roots := BuildTree(entries) + // Expand first root by default + if len(roots) > 0 { + roots[0].Expanded = true + } + flat := FlattenVisible(roots) + + m := Model{ + roots: roots, + flatTree: flat, + } + m.updateCurrentEntries() + return m +} + +// Init returns an initial command. +func (m Model) Init() tea.Cmd { + return nil +} + +// Update handles messages. +func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { + switch msg := msg.(type) { + case tea.WindowSizeMsg: + m.width = msg.Width + m.height = msg.Height + return m, nil + + case openURLMsg: + return m, nil + + case tea.KeyPressMsg: + // Filter mode input + if m.filtering { + return m.handleFilterKey(msg) + } + + switch msg.String() { + case "q", "ctrl+c": + return m, tea.Quit + case "tab": + if m.activePanel == panelTree { + m.activePanel = panelList + } else { + m.activePanel = panelTree + } + case "/": + m.filtering = true + m.filterText = "" + default: + if m.activePanel == panelTree { + return m.handleTreeKey(msg) + } + return m.handleListKey(msg) + } + } + return m, nil +} + +func (m Model) handleFilterKey(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { + switch msg.String() { + case "esc": + m.filtering = false + m.filterText = "" + m.flatTree = FlattenVisible(m.roots) + m.updateCurrentEntries() + case "enter": + m.filtering = false + case "backspace": + if len(m.filterText) > 0 { + m.filterText = m.filterText[:len(m.filterText)-1] + m.applyFilter() + } + default: + r := msg.String() + if utf8.RuneCountInString(r) == 1 { + m.filterText += r + m.applyFilter() + } + } + return m, nil +} + +func (m *Model) applyFilter() { + if m.filterText == "" { + m.flatTree = FlattenVisible(m.roots) + m.updateCurrentEntries() + return + } + + query := strings.ToLower(m.filterText) + var filtered []cache.HealthEntry + for _, root := range m.roots { + for _, e := range root.AllEntries() { + if strings.Contains(strings.ToLower(e.Name), query) || + strings.Contains(strings.ToLower(e.Description), query) || + strings.Contains(strings.ToLower(e.Category), query) { + filtered = append(filtered, e) + } + } + } + m.currentEntries = filtered + m.listCursor = 0 + m.listOffset = 0 +} + +func (m Model) handleTreeKey(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { + switch msg.String() { + case "up", "k": + if m.treeCursor > 0 { + m.treeCursor-- + m.adjustTreeScroll() + m.updateCurrentEntries() + } + case "down", "j": + if m.treeCursor < len(m.flatTree)-1 { + m.treeCursor++ + m.adjustTreeScroll() + m.updateCurrentEntries() + } + case "enter", " ": + if m.treeCursor < len(m.flatTree) { + node := m.flatTree[m.treeCursor].Node + if node.HasChildren() { + node.Expanded = !node.Expanded + m.flatTree = FlattenVisible(m.roots) + if m.treeCursor >= len(m.flatTree) { + m.treeCursor = len(m.flatTree) - 1 + } + } + m.adjustTreeScroll() + m.updateCurrentEntries() + } + case "ctrl+d", "pgdown": + half := m.treePanelHeight() / 2 + if half < 1 { + half = 1 + } + m.treeCursor += half + if m.treeCursor >= len(m.flatTree) { + m.treeCursor = len(m.flatTree) - 1 + } + m.adjustTreeScroll() + m.updateCurrentEntries() + case "ctrl+u", "pgup": + half := m.treePanelHeight() / 2 + if half < 1 { + half = 1 + } + m.treeCursor -= half + if m.treeCursor < 0 { + m.treeCursor = 0 + } + m.adjustTreeScroll() + m.updateCurrentEntries() + case "g", "home": + m.treeCursor = 0 + m.adjustTreeScroll() + m.updateCurrentEntries() + case "G", "end": + m.treeCursor = len(m.flatTree) - 1 + m.adjustTreeScroll() + m.updateCurrentEntries() + case "right", "l": + if m.treeCursor < len(m.flatTree) { + node := m.flatTree[m.treeCursor].Node + if node.HasChildren() && !node.Expanded { + node.Expanded = true + m.flatTree = FlattenVisible(m.roots) + m.adjustTreeScroll() + m.updateCurrentEntries() + } else { + m.activePanel = panelList + } + } + case "left", "h": + if m.treeCursor < len(m.flatTree) { + node := m.flatTree[m.treeCursor].Node + if node.HasChildren() && node.Expanded { + node.Expanded = false + m.flatTree = FlattenVisible(m.roots) + m.adjustTreeScroll() + m.updateCurrentEntries() + } + } + } + return m, nil +} + +func (m *Model) adjustTreeScroll() { + visible := m.treePanelHeight() + off := scrollOff + if off > visible/2 { + off = visible / 2 + } + if m.treeCursor < m.treeOffset+off { + m.treeOffset = m.treeCursor - off + } + if m.treeCursor >= m.treeOffset+visible-off { + m.treeOffset = m.treeCursor - visible + off + 1 + } + if m.treeOffset < 0 { + m.treeOffset = 0 + } +} + +func (m Model) treePanelHeight() int { + h := m.height - 6 // header, footer, borders, title + if h < 1 { + h = 1 + } + return h +} + +func (m Model) handleListKey(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { + switch msg.String() { + case "up", "k": + if m.listCursor > 0 { + m.listCursor-- + m.adjustListScroll() + } + case "down", "j": + if m.listCursor < len(m.currentEntries)-1 { + m.listCursor++ + m.adjustListScroll() + } + case "ctrl+d", "pgdown": + half := m.visibleListEntries() / 2 + if half < 1 { + half = 1 + } + m.listCursor += half + if m.listCursor >= len(m.currentEntries) { + m.listCursor = len(m.currentEntries) - 1 + } + m.adjustListScroll() + case "ctrl+u", "pgup": + half := m.visibleListEntries() / 2 + if half < 1 { + half = 1 + } + m.listCursor -= half + if m.listCursor < 0 { + m.listCursor = 0 + } + m.adjustListScroll() + case "g", "home": + m.listCursor = 0 + m.adjustListScroll() + case "G", "end": + m.listCursor = len(m.currentEntries) - 1 + m.adjustListScroll() + case "enter": + if m.listCursor < len(m.currentEntries) { + return m, openURL(m.currentEntries[m.listCursor].URL) + } + case "left", "h": + m.activePanel = panelTree + } + return m, nil +} + +func (m *Model) updateCurrentEntries() { + if len(m.flatTree) == 0 { + m.currentEntries = nil + return + } + if m.treeCursor >= len(m.flatTree) { + m.treeCursor = len(m.flatTree) - 1 + } + node := m.flatTree[m.treeCursor].Node + m.currentEntries = node.AllEntries() + m.listCursor = 0 + m.listOffset = 0 +} + +func (m Model) visibleListEntries() int { + v := m.listPanelHeight() / entryHeight + if v < 1 { + return 1 + } + return v +} + +func (m *Model) adjustListScroll() { + visible := m.visibleListEntries() + off := scrollOff + if off > visible/2 { + off = visible / 2 + } + if m.listCursor < m.listOffset+off { + m.listOffset = m.listCursor - off + } + if m.listCursor >= m.listOffset+visible-off { + m.listOffset = m.listCursor - visible + off + 1 + } + if m.listOffset < 0 { + m.listOffset = 0 + } +} + +func (m Model) listPanelHeight() int { + // height minus header, footer, borders + h := m.height - 4 + if h < 1 { + h = 1 + } + return h +} + +// View renders the UI. +func (m Model) View() tea.View { + if m.width == 0 || m.height == 0 { + return tea.NewView("Loading...") + } + + treeWidth := m.width*3/10 - 2 // 30% minus borders + listWidth := m.width - treeWidth - 6 // remaining minus borders/gaps + contentHeight := m.height - 3 // minus footer + + if treeWidth < 10 { + treeWidth = 10 + } + if listWidth < 20 { + listWidth = 20 + } + if contentHeight < 3 { + contentHeight = 3 + } + + tree := m.renderTree(treeWidth, contentHeight) + list := m.renderList(listWidth, contentHeight) + + // Apply border styles + treeBorder := inactiveBorderStyle + listBorder := inactiveBorderStyle + if m.activePanel == panelTree { + treeBorder = activeBorderStyle + } else { + listBorder = activeBorderStyle + } + + treePanel := treeBorder.Width(treeWidth).Height(contentHeight).Render(tree) + listPanel := listBorder.Width(listWidth).Height(contentHeight).Render(list) + + body := lipgloss.JoinHorizontal(lipgloss.Top, treePanel, listPanel) + + footer := m.renderFooter() + + content := lipgloss.JoinVertical(lipgloss.Left, body, footer) + + v := tea.NewView(content) + v.AltScreen = true + return v +} + +func (m Model) renderTree(width, height int) string { + var b strings.Builder + + title := headerStyle.Render("Categories") + b.WriteString(title) + b.WriteString("\n\n") + + linesUsed := 2 + end := m.treeOffset + height - 2 + if end > len(m.flatTree) { + end = len(m.flatTree) + } + for i := m.treeOffset; i < end; i++ { + fn := m.flatTree[i] + if linesUsed >= height { + break + } + + indent := strings.Repeat(" ", fn.Depth) + icon := " " + if fn.Node.HasChildren() { + if fn.Node.Expanded { + icon = "▼ " + } else { + icon = "▶ " + } + } + + count := fn.Node.TotalEntries() + label := fmt.Sprintf("%s%s%s (%d)", indent, icon, fn.Node.Name, count) + + // Truncate to width + if len(label) > width { + label = label[:width-1] + "…" + } + + if i == m.treeCursor { + label = treeSelectedStyle.Render(label) + } else { + label = treeNormalStyle.Render(label) + } + + b.WriteString(label) + b.WriteString("\n") + linesUsed++ + } + + return b.String() +} + +func (m Model) renderList(width, height int) string { + var b strings.Builder + + // Title + title := "Resources" + if m.filtering && m.filterText != "" { + title = fmt.Sprintf("Resources (filter: %s)", m.filterText) + } + b.WriteString(headerStyle.Render(title)) + b.WriteString("\n\n") + + if len(m.currentEntries) == 0 { + b.WriteString(entryDescStyle.Render(" No entries")) + return b.String() + } + + linesUsed := 2 + + visible := (height - 2) / entryHeight + if visible < 1 { + visible = 1 + } + + start := m.listOffset + end := start + visible + if end > len(m.currentEntries) { + end = len(m.currentEntries) + } + + for idx := start; idx < end; idx++ { + if linesUsed+entryHeight > height { + break + } + + e := m.currentEntries[idx] + selected := idx == m.listCursor + + // Use a safe width that accounts for Unicode characters (★, ⑂) + // that some terminals render as 2 columns but lipgloss counts as 1. + safeWidth := width - 2 + + // Line 1: name + stars + forks + stats := fmt.Sprintf("★ %d", e.Stars) + if e.Forks > 0 { + stats += fmt.Sprintf(" ⑂ %d", e.Forks) + } + name := e.Name + statsW := lipgloss.Width(stats) + maxName := safeWidth - statsW - 2 // 2 for minimum gap + if maxName < 4 { + maxName = 4 + } + if lipgloss.Width(name) > maxName { + name = truncateToWidth(name, maxName-1) + "…" + } + nameStr := entryNameStyle.Render(name) + statsStr := entryDescStyle.Render(stats) + padding := safeWidth - lipgloss.Width(nameStr) - lipgloss.Width(statsStr) + if padding < 1 { + padding = 1 + } + line1 := nameStr + strings.Repeat(" ", padding) + statsStr + + // Line 2: URL + url := e.URL + if lipgloss.Width(url) > safeWidth { + url = truncateToWidth(url, safeWidth-1) + "…" + } + line2 := entryURLStyle.Render(url) + + // Line 3: description + desc := e.Description + if lipgloss.Width(desc) > safeWidth { + desc = truncateToWidth(desc, safeWidth-3) + "..." + } + line3 := entryDescStyle.Render(desc) + + // Line 4: status + last push + statusStr := statusStyle(e.Status).Render(e.Status) + lastPush := "" + if !e.LastPush.IsZero() { + lastPush = fmt.Sprintf(" Last push: %s", e.LastPush.Format("2006-01-02")) + } + line4 := statusStr + entryDescStyle.Render(lastPush) + + // Line 5: separator + sepWidth := safeWidth + if sepWidth < 1 { + sepWidth = 1 + } + line5 := entryDescStyle.Render(strings.Repeat("─", sepWidth)) + + entry := fmt.Sprintf("%s\n%s\n%s\n%s\n%s", line1, line2, line3, line4, line5) + + if selected && m.activePanel == panelList { + entry = entrySelectedStyle.Render(entry) + } + + b.WriteString(entry) + b.WriteString("\n") + linesUsed += entryHeight + } + + // Scroll indicator + if len(m.currentEntries) > visible { + indicator := fmt.Sprintf(" %d-%d of %d", start+1, end, len(m.currentEntries)) + b.WriteString(footerStyle.Render(indicator)) + } + + return b.String() +} + +func (m Model) renderFooter() string { + if m.filtering { + return filterPromptStyle.Render("/") + entryDescStyle.Render(m.filterText+"█") + } + help := " Tab:switch j/k:nav PgDn/PgUp:page g/G:top/bottom Enter:expand/open /:filter q:quit" + return footerStyle.Render(help) +} + +// openURLMsg is sent after attempting to open a URL. +type openURLMsg struct{ err error } + +func openURL(url string) tea.Cmd { + return func() tea.Msg { + var cmd *exec.Cmd + switch runtime.GOOS { + case "darwin": + cmd = exec.Command("open", url) + case "windows": + cmd = exec.Command("cmd", "/c", "start", url) + default: + cmd = exec.Command("xdg-open", url) + } + return openURLMsg{err: cmd.Run()} + } +} + +// truncateToWidth truncates s to at most maxWidth visible columns. +func truncateToWidth(s string, maxWidth int) string { + if maxWidth <= 0 { + return "" + } + w := 0 + for i, r := range s { + rw := lipgloss.Width(string(r)) + if w+rw > maxWidth { + return s[:i] + } + w += rw + } + return s +} diff --git a/internal/tui/styles.go b/internal/tui/styles.go new file mode 100644 index 000000000..667055720 --- /dev/null +++ b/internal/tui/styles.go @@ -0,0 +1,59 @@ +package tui + +import "charm.land/lipgloss/v2" + +var ( + // Panel borders + activeBorderStyle = lipgloss.NewStyle(). + Border(lipgloss.RoundedBorder()). + BorderForeground(lipgloss.Color("#7D56F4")) + + inactiveBorderStyle = lipgloss.NewStyle(). + Border(lipgloss.RoundedBorder()). + BorderForeground(lipgloss.Color("#555555")) + + // Tree styles + treeSelectedStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#FF79C6")).Background(lipgloss.Color("#3B2D50")) + treeNormalStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#CCCCCC")) + + // Entry styles + entryNameStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#50FA7B")) + entryURLStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#888888")).Italic(true) + entryDescStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#CCCCCC")) + + // Status badge styles + statusHealthyStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#50FA7B")).Bold(true) + statusInactiveStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#FFB86C")) + statusStaleStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#F1FA8C")) + statusArchivedStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#FF5555")).Bold(true) + statusDeadStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#666666")).Strikethrough(true) + + // Selected entry + entrySelectedStyle = lipgloss.NewStyle().Background(lipgloss.Color("#44475A")) + + // Header + headerStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#BD93F9")).Padding(0, 1) + + // Footer + footerStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#666666")) + + // Filter + filterPromptStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#FF79C6")).Bold(true) +) + +func statusStyle(status string) lipgloss.Style { + switch status { + case "healthy": + return statusHealthyStyle + case "inactive": + return statusInactiveStyle + case "stale": + return statusStaleStyle + case "archived": + return statusArchivedStyle + case "dead": + return statusDeadStyle + default: + return lipgloss.NewStyle() + } +} diff --git a/internal/tui/tree.go b/internal/tui/tree.go new file mode 100644 index 000000000..6394e669b --- /dev/null +++ b/internal/tui/tree.go @@ -0,0 +1,118 @@ +package tui + +import ( + "sort" + "strings" + + "github.com/veggiemonk/awesome-docker/internal/cache" +) + +// TreeNode represents a node in the category tree. +type TreeNode struct { + Name string // display name (leaf segment, e.g. "Networking") + Path string // full path (e.g. "Container Operations > Networking") + Children []*TreeNode + Expanded bool + Entries []cache.HealthEntry +} + +// FlatNode is a visible tree node with its indentation depth. +type FlatNode struct { + Node *TreeNode + Depth int +} + +// HasChildren returns true if this node has child categories. +func (n *TreeNode) HasChildren() bool { + return len(n.Children) > 0 +} + +// TotalEntries returns the count of entries in this node and all descendants. +func (n *TreeNode) TotalEntries() int { + count := len(n.Entries) + for _, c := range n.Children { + count += c.TotalEntries() + } + return count +} + +// AllEntries returns entries from this node and all descendants. +func (n *TreeNode) AllEntries() []cache.HealthEntry { + result := make([]cache.HealthEntry, 0, n.TotalEntries()) + result = append(result, n.Entries...) + for _, c := range n.Children { + result = append(result, c.AllEntries()...) + } + return result +} + +// BuildTree constructs a tree from flat HealthEntry slice, grouping by Category. +func BuildTree(entries []cache.HealthEntry) []*TreeNode { + root := &TreeNode{Name: "root"} + nodeMap := map[string]*TreeNode{} + + for _, e := range entries { + cat := e.Category + if cat == "" { + cat = "Uncategorized" + } + + node := ensureNode(root, nodeMap, cat) + node.Entries = append(node.Entries, e) + } + + // Sort children at every level + sortTree(root) + return root.Children +} + +func ensureNode(root *TreeNode, nodeMap map[string]*TreeNode, path string) *TreeNode { + if n, ok := nodeMap[path]; ok { + return n + } + + parts := strings.Split(path, " > ") + current := root + for i, part := range parts { + subpath := strings.Join(parts[:i+1], " > ") + if n, ok := nodeMap[subpath]; ok { + current = n + continue + } + child := &TreeNode{ + Name: part, + Path: subpath, + } + current.Children = append(current.Children, child) + nodeMap[subpath] = child + current = child + } + return current +} + +func sortTree(node *TreeNode) { + sort.Slice(node.Children, func(i, j int) bool { + return node.Children[i].Name < node.Children[j].Name + }) + for _, c := range node.Children { + sortTree(c) + } +} + +// FlattenVisible returns visible nodes in depth-first order for rendering. +func FlattenVisible(roots []*TreeNode) []FlatNode { + var result []FlatNode + for _, r := range roots { + flattenNode(r, 0, &result) + } + return result +} + +func flattenNode(node *TreeNode, depth int, result *[]FlatNode) { + *result = append(*result, FlatNode{Node: node, Depth: depth}) + if node.Expanded { + for _, c := range node.Children { + flattenNode(c, depth+1, result) + } + } +} diff --git a/internal/tui/tree_test.go b/internal/tui/tree_test.go new file mode 100644 index 000000000..801223f9c --- /dev/null +++ b/internal/tui/tree_test.go @@ -0,0 +1,109 @@ +package tui + +import ( + "testing" + + "github.com/veggiemonk/awesome-docker/internal/cache" +) + +func TestBuildTree(t *testing.T) { + entries := []cache.HealthEntry{ + {URL: "https://github.com/a/b", Name: "a/b", Category: "Projects > Networking", Description: "desc1"}, + {URL: "https://github.com/c/d", Name: "c/d", Category: "Projects > Networking", Description: "desc2"}, + {URL: "https://github.com/e/f", Name: "e/f", Category: "Projects > Security", Description: "desc3"}, + {URL: "https://github.com/g/h", Name: "g/h", Category: "Docker Images > Base Tools", Description: "desc4"}, + {URL: "https://github.com/i/j", Name: "i/j", Category: "", Description: "no category"}, + } + + roots := BuildTree(entries) + + // Should have 3 roots: Docker Images, Projects, Uncategorized (sorted) + if len(roots) != 3 { + t.Fatalf("expected 3 roots, got %d", len(roots)) + } + + if roots[0].Name != "Docker Images" { + t.Errorf("expected first root 'Docker Images', got %q", roots[0].Name) + } + if roots[1].Name != "Projects" { + t.Errorf("expected second root 'Projects', got %q", roots[1].Name) + } + if roots[2].Name != "Uncategorized" { + t.Errorf("expected third root 'Uncategorized', got %q", roots[2].Name) + } + + // Projects > Networking should have 2 entries + projects := roots[1] + if len(projects.Children) != 2 { + t.Fatalf("expected 2 children under Projects, got %d", len(projects.Children)) + } + networking := projects.Children[0] // Networking < Security alphabetically + if networking.Name != "Networking" { + t.Errorf("expected 'Networking', got %q", networking.Name) + } + if len(networking.Entries) != 2 { + t.Errorf("expected 2 entries in Networking, got %d", len(networking.Entries)) + } +} + +func TestBuildTreeEmpty(t *testing.T) { + roots := BuildTree(nil) + if len(roots) != 0 { + t.Errorf("expected 0 roots for nil input, got %d", len(roots)) + } +} + +func TestTotalEntries(t *testing.T) { + entries := []cache.HealthEntry{ + {URL: "https://a", Category: "A > B"}, + {URL: "https://b", Category: "A > B"}, + {URL: "https://c", Category: "A > C"}, + {URL: "https://d", Category: "A"}, + } + roots := BuildTree(entries) + if len(roots) != 1 { + t.Fatalf("expected 1 root, got %d", len(roots)) + } + if roots[0].TotalEntries() != 4 { + t.Errorf("expected 4 total entries, got %d", roots[0].TotalEntries()) + } +} + +func TestFlattenVisible(t *testing.T) { + entries := []cache.HealthEntry{ + {URL: "https://a", Category: "A > B"}, + {URL: "https://b", Category: "A > C"}, + } + roots := BuildTree(entries) + + // Initially not expanded, should see just root + flat := FlattenVisible(roots) + if len(flat) != 1 { + t.Fatalf("expected 1 visible node (collapsed), got %d", len(flat)) + } + if flat[0].Depth != 0 { + t.Errorf("expected depth 0, got %d", flat[0].Depth) + } + + // Expand root + roots[0].Expanded = true + flat = FlattenVisible(roots) + if len(flat) != 3 { + t.Fatalf("expected 3 visible nodes (expanded), got %d", len(flat)) + } + if flat[1].Depth != 1 { + t.Errorf("expected depth 1 for child, got %d", flat[1].Depth) + } +} + +func TestAllEntries(t *testing.T) { + entries := []cache.HealthEntry{ + {URL: "https://a", Category: "A > B"}, + {URL: "https://b", Category: "A"}, + } + roots := BuildTree(entries) + all := roots[0].AllEntries() + if len(all) != 2 { + t.Errorf("expected 2 entries from AllEntries, got %d", len(all)) + } +} diff --git a/internal/tui/tui.go b/internal/tui/tui.go new file mode 100644 index 000000000..2a8ece315 --- /dev/null +++ b/internal/tui/tui.go @@ -0,0 +1,14 @@ +package tui + +import ( + tea "charm.land/bubbletea/v2" + "github.com/veggiemonk/awesome-docker/internal/cache" +) + +// Run launches the TUI browser. It blocks until the user quits. +func Run(entries []cache.HealthEntry) error { + m := New(entries) + p := tea.NewProgram(m) + _, err := p.Run() + return err +} From 5e90acd5b3ea9fe928223fecc4b04f6338f11ed5 Mon Sep 17 00:00:00 2001 From: s-b-e-n-s-o-n <80784472+s-b-e-n-s-o-n@users.noreply.github.com> Date: Tue, 10 Mar 2026 11:32:18 -0400 Subject: [PATCH 262/327] Move Drydock from CI/CD to Monitoring and update description (#1263) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move Drydock from CI/CD to Monitoring and update description Drydock is a container update monitoring tool, not a CI/CD tool. Moved to the Monitoring section (alphabetically between Doku and Dozzle) and updated the description to reflect current capabilities (23 registries, 20 triggers, distributed agent architecture). * 🐛 fix(readme): sort Dozzle before Drydock in Monitoring section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index efd959961..918b6e353 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. - [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [amerkurev](https://github.com/amerkurev). - [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [amir20](https://github.com/amir20). +- [Drydock](https://github.com/CodesWhat/drydock) - Container update monitoring with web dashboard, 23 registry providers, 20 notification triggers, and distributed agent architecture. By [CodesWhat](https://github.com/CodesWhat). - [Dynatrace](https://docs.dynatrace.com/docs/observe/infrastructure-observability/container-platform-monitoring) - :heavy_dollar_sign: Monitor containerized applications without installing agents or modifying your Run commands. - [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python. - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [vegasbrianc][vegasbrianc]. @@ -549,7 +550,6 @@ Services to securely store your Docker images. - [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. -- [Drydock](https://github.com/CodesWhat/drydock) - Open-source container update monitoring with web dashboard, 15 registries, 16 notification triggers, and security scanning. Drop-in WUD replacement. By [CodesWhat](https://github.com/CodesWhat). - [Gantry](https://github.com/shizunge/gantry) - Automatically update selected Docker swarm services. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. - [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. From 270bcc2d581eff4063e542d41a9be783b18f35f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Fern=C3=A1ndez?= <9169332+GeiserX@users.noreply.github.com> Date: Tue, 10 Mar 2026 16:33:44 +0100 Subject: [PATCH 263/327] Add duplicacy-cli-cron to Volume Management / Data (#1262) * Add duplicacy-cli-cron to Volume Management / Data Co-Authored-By: Claude Opus 4.6 * fix: align indentation with existing entries Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 918b6e353..add13d7e4 100644 --- a/README.md +++ b/README.md @@ -311,6 +311,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [blockbridge](https://github.com/blockbridge) - - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. - [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [offen](https://github.com/offen) +- [duplicacy-cli-cron](https://github.com/GeiserX/duplicacy-cli-cron) - Docker-based encrypted dual-storage backup automation using Duplicacy CLI with cross-site redundancy and Telegram notifications. By [GeiserX](https://github.com/GeiserX) - [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers. - [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [ContainX][containx] - [portworx](https://portworx.com) - :heavy_dollar_sign: Decentralized storage solution for persistent, shared and replicated volumes. From b30025b29105c96226b7626d7c69bd8d80e28669 Mon Sep 17 00:00:00 2001 From: Torben Evald Hansen Date: Tue, 10 Mar 2026 16:33:48 +0100 Subject: [PATCH 264/327] Add idle-less to Reverse Proxy section (#1254) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index add13d7e4..db642ae3f 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. - [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [docker-flow][docker-flow]. - [fabio](https://github.com/fabiolb/fabio) - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [magiconair](https://github.com/magiconair) (Frank Schroeder). +- [idle-less](https://github.com/tvup/idle-less) - Reverse proxy with automatic Wake-on-LAN — wakes sleeping backend servers when traffic arrives, shows a waiting screen, and redirects when ready. By [tvup](https://github.com/tvup). - [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [JrCs](https://github.com/JrCs). - [mesh-router](https://github.com/Yundera/mesh-router) - Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [Yundera](https://github.com/Yundera). - [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [jc21](https://github.com/jc21). From b1f074cc5d9a4bc8eb84d0fba640b6212b982a14 Mon Sep 17 00:00:00 2001 From: Jay Date: Tue, 10 Mar 2026 15:33:51 +0000 Subject: [PATCH 265/327] Add ADRG to Monitoring (#1253) * Add ADRG to Monitoring * Fix: Concise description --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index db642ae3f..60a61aa71 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Monitoring +- [ADRG](https://github.com/jaldertech/adrg) - Dynamic Docker resource governor using cgroups v2 to manage system load. - [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. - [Checkmate](https://github.com/bluewave-labs/checkmate) - Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. From 264f6bd0f66bdbe1634b4c16d7e5e35502c2d7f9 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Tue, 10 Mar 2026 17:34:18 +0100 Subject: [PATCH 266/327] Mark stale projects with :ice_cube:, remove archived entries, add Arcane (#1267) - Add :ice_cube: marker for 113 stale projects (2+ years inactive) - Remove 4 archived repos (Centurion, notary, Minio, docker-ls) - Remove 1 broken link (docker-lock / safe-waters) - Add Arcane to the Web section - Replace :heavy_dollar_sign: with :yen: across README and tooling - Add :ice_cube: (MarkerStale) support to Go parser/linter - Update CONTRIBUTING.md, PR template, issue template, and AGENTS.md Closes #1260, relates to #1188, #1255 Co-authored-by: Claude Opus 4.6 --- .github/CONTRIBUTING.md | 3 +- .github/ISSUE_TEMPLATE/add-a-project.md | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 2 +- AGENTS.md | 3 +- README.md | 354 ++++++++++++------------ internal/linter/fixer.go | 4 +- internal/parser/parser.go | 3 +- internal/parser/parser_test.go | 4 +- internal/parser/types.go | 3 +- 9 files changed, 185 insertions(+), 193 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index f0ea65bac..59db52b76 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -19,7 +19,8 @@ Please read and follow the [Code of Conduct](./CODE_OF_CONDUCT.md). - Prefer GitHub project/repository URLs over marketing pages. - Keep entries alphabetically sorted within their section. - Keep descriptions concise and concrete. -- Use `:heavy_dollar_sign:` for paid/commercial services. +- Use `:yen:` for paid/commercial services. +- Use `:ice_cube:` for stale projects (2+ years inactive). - Do not use `:skull:`; archived/deprecated projects should be removed. - Avoid duplicate links and redirect variants. diff --git a/.github/ISSUE_TEMPLATE/add-a-project.md b/.github/ISSUE_TEMPLATE/add-a-project.md index 1aece630a..1cd073f7f 100644 --- a/.github/ISSUE_TEMPLATE/add-a-project.md +++ b/.github/ISSUE_TEMPLATE/add-a-project.md @@ -12,7 +12,7 @@ Repository link: Description (one sentence): Author: Why this should be in the list: -Notes (`:heavy_dollar_sign:` if relevant): +Notes (`:yen:` if relevant): Or directly write it: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index db556e1f1..bd5a7c0eb 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -25,4 +25,4 @@ Describe what changed and why. - [ ] Links point to project repositories (no duplicates or redirects) - [ ] Descriptions are concise and specific - [ ] Archived/deprecated projects were removed instead of tagged -- [ ] Used `:heavy_dollar_sign:` only when applicable +- [ ] Used `:yen:` only when applicable diff --git a/AGENTS.md b/AGENTS.md index a7b11e7ce..f91ce68fa 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -73,6 +73,7 @@ - Prefer project/repository URLs over marketing pages - Keep entries alphabetically ordered within each section - Keep descriptions concise and concrete -- Use `:heavy_dollar_sign:` only for paid/commercial services +- Use `:yen:` only for paid/commercial services +- Use `:ice_cube:` for stale projects (2+ years inactive) - Remove archived/deprecated projects instead of tagging them - Avoid duplicate links and redirect variants diff --git a/README.md b/README.md index 60a61aa71..e37c39c4d 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ The creators and maintainers of this list do not receive any form of payment to - [Serverless](#serverless) - [Testing](#testing) - [Wrappers](#wrappers) - - [Services based on Docker (mostly :heavy\_dollar\_sign:)](#services-based-on-docker-mostly-heavy_dollar_sign) + - [Services based on Docker (mostly :yen:)](#services-based-on-docker-mostly-yen) - [CI Services](#ci-services) - [CaaS](#caas) - [Monitoring Services](#monitoring-services) @@ -79,7 +79,8 @@ The creators and maintainers of this list do not receive any form of payment to # Legend -- Monetized :heavy_dollar_sign: +- Monetized :yen: +- Stale (2+ years inactive) :ice_cube: # What is Docker @@ -98,7 +99,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. - [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. -- [Docker Training](https://training.mirantis.com) :heavy_dollar_sign: +- [Docker Training](https://training.mirantis.com) :yen: - [Dockerlings](https://github.com/furkan/dockerlings): Learn docker from inside your terminal, with a modern TUI and bite sized exercises (by [furkan](https://github.com/furkan)) - [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... @@ -145,13 +146,13 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Container Composition -- [Capitan](https://github.com/byrnedo/capitan) - Composable docker orchestration with added scripting support by [byrnedo]. +- [Capitan](https://github.com/byrnedo/capitan) :ice_cube: - Composable docker orchestration with added scripting support by [byrnedo]. - [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files. -- [crowdr](https://github.com/polonskiy/crowdr) - Tool for managing multiple Docker containers (`docker-compose` alternative). +- [crowdr](https://github.com/polonskiy/crowdr) :ice_cube: - Tool for managing multiple Docker containers (`docker-compose` alternative). - [ctk](https://github.com/ctk-hq/ctk) - Visual composer for container based workloads. By [corpulent](https://github.com/corpulent). -- [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) - Utility to update docker configs and secrets for deploying in a compose file. -- [elsy](https://github.com/cisco/elsy) - An opinionated, multi-language, build tool based on Docker and Docker Compose. -- [habitus](https://github.com/cloud66-oss/habitus) - A Build Flow Tool for Docker. +- [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) :ice_cube: - Utility to update docker configs and secrets for deploying in a compose file. +- [elsy](https://github.com/cisco/elsy) :ice_cube: - An opinionated, multi-language, build tool based on Docker and Docker Compose. +- [habitus](https://github.com/cloud66-oss/habitus) :ice_cube: - A Build Flow Tool for Docker. - [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes. - [LLM Harbor](https://github.com/av/harbor) - A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [av](https://github.com/av). - [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. @@ -164,12 +165,11 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [awesome-stacks](https://github.com/ethibox/awesome-stacks) - Deploy 150+ open-source web apps with one Docker command. - [blackfish](https://gitlab.com/blackfish/blackfish) - A CoreOS VM to build swarm clusters for Dev & Production. - [BosnD](https://gitlab.com/n0r1sk/bosnd) - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments. -- [Centurion](https://github.com/newrelic/centurion) - Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [newrelic](https://github.com/newrelic). -- [Clocker](https://github.com/brooklyncentral/clocker) - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [brooklyncentral](https://github.com/brooklyncentral). -- [Conduit](https://github.com/ehazlett/conduit) - Experimental deployment system for Docker. -- [depcon](https://github.com/ContainX/depcon) - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [ContainX][containx]. +- [Clocker](https://github.com/brooklyncentral/clocker) :ice_cube: - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [brooklyncentral](https://github.com/brooklyncentral). +- [Conduit](https://github.com/ehazlett/conduit) :ice_cube: - Experimental deployment system for Docker. +- [depcon](https://github.com/ContainX/depcon) :ice_cube: - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [ContainX][containx]. - [docker-to-iac](https://github.com/deploystackio/docker-to-iac) - Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean. -- [gitkube](https://github.com/hasura/gitkube) - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [Hasura](https://github.com/hasura/). +- [gitkube](https://github.com/hasura/gitkube) :ice_cube: - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [Hasura](https://github.com/hasura/). - [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas). - [swarm-ansible](https://github.com/LombardiDaniel/swarm-ansible?tab=readme-ov-file) - Swarm-Ansible bootstraps a production-ready swarm cluster using ansible. Comes with tools to automate CI, help monitoring and traefik pre-configured for SSL certificates and simple-auth. Comes with a private registry and more!. - [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. @@ -182,66 +182,66 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. - [Checkmate](https://github.com/bluewave-labs/checkmate) - Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. - [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [zorak1103](https://github.com/zorak1103). -- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) - Monitor and send alerts based on docker container resource usage/statistics. -- [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) - Reconfigures Prometheus when a new service is updated or deployed automatically. +- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) :ice_cube: - Monitor and send alerts based on docker container resource usage/statistics. +- [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) :ice_cube: - Reconfigures Prometheus when a new service is updated or deployed automatically. - [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. - [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. - [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [amerkurev](https://github.com/amerkurev). - [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [amir20](https://github.com/amir20). - [Drydock](https://github.com/CodesWhat/drydock) - Container update monitoring with web dashboard, 23 registry providers, 20 notification triggers, and distributed agent architecture. By [CodesWhat](https://github.com/CodesWhat). -- [Dynatrace](https://docs.dynatrace.com/docs/observe/infrastructure-observability/container-platform-monitoring) - :heavy_dollar_sign: Monitor containerized applications without installing agents or modifying your Run commands. +- [Dynatrace](https://docs.dynatrace.com/docs/observe/infrastructure-observability/container-platform-monitoring) - :yen: Monitor containerized applications without installing agents or modifying your Run commands. - [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python. - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [vegasbrianc][vegasbrianc]. - [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. -- [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) - InfluxDB Time series DB in combination with Grafana and cAdvisor. -- [Logspout](https://github.com/gliderlabs/logspout) - Log routing for Docker container logs. -- [monit-docker](https://github.com/decryptus/monit-docker) - Monitor docker containers resources usage or status and execute docker commands or inside containers. [decryptus][decryptus]. -- [NexClipper](https://github.com/NexClipper/NexClipper) - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. -- [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. -- [Sidekick](https://github.com/runsidekick/sidekick) - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. -- [SwarmAlert](https://github.com/gpulido/SwarmAlert) - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. -- [Zabbix Docker](https://github.com/gomex/docker-zabbix) - Monitor containers automatically using zabbix LLD feature. -- [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. +- [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) :ice_cube: - InfluxDB Time series DB in combination with Grafana and cAdvisor. +- [Logspout](https://github.com/gliderlabs/logspout) :ice_cube: - Log routing for Docker container logs. +- [monit-docker](https://github.com/decryptus/monit-docker) :ice_cube: - Monitor docker containers resources usage or status and execute docker commands or inside containers. [decryptus][decryptus]. +- [NexClipper](https://github.com/NexClipper/NexClipper) :ice_cube: - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. +- [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) :ice_cube: - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. +- [Sidekick](https://github.com/runsidekick/sidekick) :ice_cube: - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. +- [SwarmAlert](https://github.com/gpulido/SwarmAlert) :ice_cube: - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. +- [Zabbix Docker](https://github.com/gomex/docker-zabbix) :ice_cube: - Monitor containers automatically using zabbix LLD feature. +- [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) :ice_cube: - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. ### Networking - [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. - [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [coreos][coreos]. -- [Freeflow](https://github.com/Microsoft/Freeflow) - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [Microsoft](https://github.com/Microsoft). +- [Freeflow](https://github.com/Microsoft/Freeflow) :ice_cube: - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [Microsoft](https://github.com/Microsoft). - [MyIP](https://github.com/jason5ng32/MyIP) - All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [jason5ng32](https://github.com/jason5ng32). - [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. - [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [jpetazzo][jpetazzo]. ### Orchestration -- [Ansible Linux Docker](https://github.com/Peco602/ansible-linux-docker) - Run Ansible from a Linux container. By [Peco602][peco602]. -- [athena](https://github.com/athena-oss/athena) - An automation platform with a plugin architecture that allows you to easily create and share services. +- [Ansible Linux Docker](https://github.com/Peco602/ansible-linux-docker) :ice_cube: - Run Ansible from a Linux container. By [Peco602][peco602]. +- [athena](https://github.com/athena-oss/athena) :ice_cube: - An automation platform with a plugin architecture that allows you to easily create and share services. - [CloudSlang](https://github.com/CloudSlang/cloud-slang) - CloudSlang is a workflow engine to create Docker process automation. -- [clusterdock](https://github.com/clusterdock/clusterdock) - Docker container orchestration to enable the testing of long-running cluster deployments. -- [Crane](https://github.com/Dataman-Cloud/crane) - Control plane based on docker built-in swarm [Dataman-Cloud](https://github.com/Dataman-Cloud). -- [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [docker-flow][docker-flow]. +- [clusterdock](https://github.com/clusterdock/clusterdock) :ice_cube: - Docker container orchestration to enable the testing of long-running cluster deployments. +- [Crane](https://github.com/Dataman-Cloud/crane) :ice_cube: - Control plane based on docker built-in swarm [Dataman-Cloud](https://github.com/Dataman-Cloud). +- [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) :ice_cube: - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [docker-flow][docker-flow]. - [docker rollout](https://github.com/Wowu/docker-rollout) - Zero downtime deployment for Docker Compose services. -- [Haven](https://github.com/codeabovelab/haven-platform) - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [codeabovelab](https://github.com/codeabovelab). +- [Haven](https://github.com/codeabovelab/haven-platform) :ice_cube: - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [codeabovelab](https://github.com/codeabovelab). - [Kubernetes](https://github.com/kubernetes/kubernetes) - Open source orchestration system for Docker containers by Google. - [ManageIQ](https://github.com/ManageIQ/manageiq) - Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ). - [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [apache](https://mesos.apache.org/). - [Nebula](https://github.com/nebula-orchestrator) - A Docker orchestration tool designed to manage massive scale distributed clusters. - [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler. - [Rancher](https://github.com/rancher/rancher) - An open source project that provides a complete platform for operating Docker in production. -- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [RedHerdProject](https://github.com/redherd-project). +- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) :ice_cube: - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [RedHerdProject](https://github.com/redherd-project). - [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [crazy-max]. ### PaaS - [caprover](https://github.com/caprover/caprover) - [Previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids. - [Convox Rack](https://github.com/convox/rack) - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. -- [Dcw](https://github.com/pbertera/dcw) - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels. +- [Dcw](https://github.com/pbertera/dcw) :ice_cube: - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels. - [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [progrium][progrium]). -- [Empire](https://github.com/remind101/empire) - A PaaS built on top of Amazon EC2 Container Service (ECS). +- [Empire](https://github.com/remind101/empire) :ice_cube: - A PaaS built on top of Amazon EC2 Container Service (ECS). - [Exoframe](https://github.com/exoframejs/exoframe) - A self-hosted tool that allows simple one-command deployments using Docker. -- [Hephy Workflow](https://github.com/teamhephy/workflow) - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow). -- [Krane](https://github.com/krane/krane) - Toolset for managing container workloads on remote servers. -- [Nanobox](https://github.com/nanobox-io/nanobox) - :heavy_dollar_sign: An application development platform that creates local environments that can then be deployed and scaled in the cloud. +- [Hephy Workflow](https://github.com/teamhephy/workflow) :ice_cube: - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow). +- [Krane](https://github.com/krane/krane) :ice_cube: - Toolset for managing container workloads on remote servers. +- [Nanobox](https://github.com/nanobox-io/nanobox) :ice_cube: - :yen: An application development platform that creates local environments that can then be deployed and scaled in the cloud. - [OpenShift][openshift] - An open source PaaS built on [Kubernetes][kubernetes] and optimized for Dockerized app development and deployment by [Red Hat](https://www.redhat.com/en) - [Tsuru](https://github.com/tsuru/tsuru) - Tsuru is an extensible and open source Platform as a Service software. @@ -267,37 +267,35 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o). - [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers. - [podman](https://github.com/containers/libpod) - Libpod is a library used to create container pods. Home of Podman. -- [rlxc](https://github.com/brauner/rlxc) - LXC binary written in Rust. +- [rlxc](https://github.com/brauner/rlxc) :ice_cube: - LXC binary written in Rust. - [runtime-tools](https://github.com/opencontainers/runtime-tools) - Oci-runtime-tool is a collection of tools for working with the OCI runtime specification. ### Security - [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles [SongStitch](https://github.com/songStitch/). -- [Anchor Enterprise](https://anchore.com/) - :heavy_dollar_sign: Analyze images for CVE vulnerabilities and against custom security policies. -- [Aqua Security](https://www.aquasec.com) - :heavy_dollar_sign: Securing container-based applications from Dev to Production on any platform. -- [bane](https://github.com/genuinetools/bane) - AppArmor profile generator for Docker containers. +- [Anchor Enterprise](https://anchore.com/) - :yen: Analyze images for CVE vulnerabilities and against custom security policies. +- [Aqua Security](https://www.aquasec.com) - :yen: Securing container-based applications from Dev to Production on any platform. +- [bane](https://github.com/genuinetools/bane) :ice_cube: - AppArmor profile generator for Docker containers. - [buildcage](https://github.com/dash14/buildcage) - Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. - [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. - [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [bridgecrew](https://github.com/bridgecrewio). -- [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [dev-sec](https://github.com/dev-sec). +- [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) :ice_cube: - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [dev-sec](https://github.com/dev-sec). - [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [coreos][coreos]. - [crowdsec-blocklist-import](https://github.com/wolffcatskyy/crowdsec-blocklist-import) - Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [wolffcatskyy](https://github.com/wolffcatskyy). -- [Dagda](https://github.com/eliasgranderubio/dagda) - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [eliasgranderubio](https://github.com/eliasgranderubio). -- [Deepfence Enterprise](https://deepfence.io) - :heavy_dollar_sign: Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. +- [Dagda](https://github.com/eliasgranderubio/dagda) :ice_cube: - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [eliasgranderubio](https://github.com/eliasgranderubio). +- [Deepfence Enterprise](https://deepfence.io) - :yen: Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. - [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. - [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. By [docker][docker]. - [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions. -- [docker-lock](https://github.com/safe-waters/docker-lock) - A cli-plugin for docker to automatically manage image digests by tracking them in a separate Lockfile. By [safe-waters][safe-waters]. -- [dvwassl](https://github.com/Peco602/dvwassl) - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [Peco602][peco602]. +- [dvwassl](https://github.com/Peco602/dvwassl) :ice_cube: - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [Peco602][peco602]. - [KICS](https://github.com/checkmarx/kics) - An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx). -- [notary](https://github.com/theupdateframework/notary) - A server and a client for running and interacting with trusted collections. By [TUF](https://github.com/theupdateframework). - [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP). -- [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) - :heavy_dollar_sign: (Previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. +- [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) - :yen: (Previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. - [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [dormstern](https://github.com/dormstern). - [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. - [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. -- [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) - :heavy_dollar_sign: Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. -- [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) - :heavy_dollar_sign: Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. +- [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) - :yen: Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. +- [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) - :yen: Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. - [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). ### Service Discovery @@ -310,17 +308,16 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Volume Management / Data -- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :heavy_dollar_sign:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [blockbridge](https://github.com/blockbridge) +- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :yen:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [blockbridge](https://github.com/blockbridge) - - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. - [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [offen](https://github.com/offen) -- [duplicacy-cli-cron](https://github.com/GeiserX/duplicacy-cli-cron) - Docker-based encrypted dual-storage backup automation using Duplicacy CLI with cross-site redundancy and Telegram notifications. By [GeiserX](https://github.com/GeiserX) -- [Minio](https://github.com/minio/minio) - S3 compatible object storage server in Docker containers. +- [duplicacy-cli-cron](https://github.com/GeiserX/duplicacy-cli-cron) - Docker-based encrypted dual-storage backup automation using Duplicacy CLI with cross-site redundancy and Telegram notifications. By [GeiserX](https://github.com/GeiserX). - [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [ContainX][containx] -- [portworx](https://portworx.com) - :heavy_dollar_sign: Decentralized storage solution for persistent, shared and replicated volumes. -- [quobyte](https://www.quobyte.com/) - :heavy_dollar_sign: Fully fault-tolerant distributed file system with a docker volume driver. +- [portworx](https://portworx.com) - :yen: Decentralized storage solution for persistent, shared and replicated volumes. +- [quobyte](https://www.quobyte.com/) - :yen: Fully fault-tolerant distributed file system with a docker volume driver. - [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By[thecodeteam](https://github.com/thecodeteam) (DELL Technologies) -- [Storidge](https://github.com/Storidge/quick-start) - :heavy_dollar_sign: Software-defined Persistent Storage for Kubernetes and Docker Swarm. +- [Storidge](https://github.com/Storidge/quick-start) :ice_cube: - :yen: Software-defined Persistent Storage for Kubernetes and Docker Swarm. ### User Interface #### IDE integrations @@ -356,50 +353,50 @@ Native desktop applications for managing and monitoring docker hosts and cluster ##### CLI tools -- [captain](https://github.com/jenssegers/captain) - Easily start and stop docker compose projects from any directory. By [jenssegers](https://github.com/jenssegers). +- [captain](https://github.com/jenssegers/captain) :ice_cube: - Easily start and stop docker compose projects from any directory. By [jenssegers](https://github.com/jenssegers). - [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [Falldog](https://github.com/Falldog). -- [dcp](https://github.com/exdx/dcp) - A simple tool for copying files from container filesystems. By [exdx](https://github.com/exdx). +- [dcp](https://github.com/exdx/dcp) :ice_cube: - A simple tool for copying files from container filesystems. By [exdx](https://github.com/exdx). - [dctl](https://github.com/FabienD/docker-stack) - Dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD). - [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. By [s0rg](https://github.com/s0rg). - [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [christian-korneck](https://github.com/christian-korneck). - [docker-captain](https://github.com/lucabello/docker-captain) - A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. -- [docker-ls](https://github.com/mayflower/docker-ls) - CLI tools for browsing and manipulating docker registries. -- [DVM](https://github.com/howtowhale/dvm) - Docker version manager. -- [goinside](https://github.com/iamsoorena/goinside) - Get inside a running docker container easily. -- [Pdocker](https://github.com/g31s/Pdocker) - A simple tool to manage and maintain Docker for personal projects. +- [DVM](https://github.com/howtowhale/dvm) :ice_cube: - Docker version manager. +- [goinside](https://github.com/iamsoorena/goinside) :ice_cube: - Get inside a running docker container easily. +- [Pdocker](https://github.com/g31s/Pdocker) :ice_cube: - A simple tool to manage and maintain Docker for personal projects. - [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. - [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments,. - [skopeo](https://github.com/containers/skopeo) - Work with remote images registries - retrieving information, images, signing content. - [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [segersniels](https://github.com/segersniels). -- [tsaotun](https://github.com/qazbnm456/tsaotun) - Python based Assistance for Docker. +- [tsaotun](https://github.com/qazbnm456/tsaotun) :ice_cube: - Python based Assistance for Docker. ##### Other -- [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) - Search the Docker Registry with the Dext smart launcher. By [vutran](https://github.com/vutran). -- [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) - SSH Server for Docker containers ~ Because every container should be accessible. By [jeroenpeeters](https://github.com/jeroenpeeters). +- [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) :ice_cube: - Search the Docker Registry with the Dext smart launcher. By [vutran](https://github.com/vutran). +- [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) :ice_cube: - SSH Server for Docker containers ~ Because every container should be accessible. By [jeroenpeeters](https://github.com/jeroenpeeters). - [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [spotify][spotify] -- [MultiDocker](https://github.com/marty90/multidocker) - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. -- [Powerline-Docker](https://github.com/adrianmo/powerline-docker) - A Powerline segment for showing the status of Docker containers. +- [MultiDocker](https://github.com/marty90/multidocker) :ice_cube: - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. +- [Powerline-Docker](https://github.com/adrianmo/powerline-docker) :ice_cube: - A Powerline segment for showing the status of Docker containers. #### Web +- [Arcane](https://github.com/getarcaneapp/arcane) - An easy and modern Docker management platform, built with everybody in mind. By [getarcaneapp](https://github.com/getarcaneapp). - [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers,. - [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [wrfly](https://github.com/wrfly). -- [dockemon](https://github.com/ProductiveOps/dokemon) - Docker Container Management GUI. +- [dockemon](https://github.com/ProductiveOps/dokemon) :ice_cube: - Docker Container Management GUI. - [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2. -- [docker-registry-web](https://github.com/mkuchin/docker-registry-web) - Web UI, authentication service and event recorder for private docker registry v2. +- [docker-registry-web](https://github.com/mkuchin/docker-registry-web) :ice_cube: - Web UI, authentication service and event recorder for private docker registry v2. - [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). - [dockge](https://github.com/louislam/dockge) - Easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager. - [Komodo](https://github.com/mbecker20/komodo) - A tool to build and deploy software on many servers. -- [Kubevious](https://github.com/kubevious/kubevious) - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way. +- [Kubevious](https://github.com/kubevious/kubevious) :ice_cube: - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way. - [Mafl](https://github.com/hywax/mafl) - Minimalistic flexible homepage. - [netdata](https://github.com/netdata/netdata) - Real-time performance monitoring. -- [OctoLinker](https://github.com/OctoLinker/OctoLinker) - A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. +- [OctoLinker](https://github.com/OctoLinker/OctoLinker) :ice_cube: - A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. - [Portainer](https://github.com/portainer/portainer) - A lightweight management UI for managing your Docker hosts or Docker Swarm clusters. -- [Rapid Dashboard](https://github.com/ozlerhakan/rapid) - A simple query dashboard to use Docker Remote API. -- [Seagull](https://github.com/tobegit3hub/seagull) - Friendly Web UI to monitor docker daemon. +- [Rapid Dashboard](https://github.com/ozlerhakan/rapid) :ice_cube: - A simple query dashboard to use Docker Remote API. +- [Seagull](https://github.com/tobegit3hub/seagull) :ice_cube: - Friendly Web UI to monitor docker daemon. - [Swarmpit](https://github.com/swarmpit/swarmpit) - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. -- [Swirl](https://github.com/cuigh/swirl) - Swirl is a web management tool for Docker, focused on swarm cluster By [cuigh](https://github.com/cuigh/). +- [Swirl](https://github.com/cuigh/swirl) :ice_cube: - Swirl is a web management tool for Docker, focused on swarm cluster By [cuigh](https://github.com/cuigh/). - [Theia](https://github.com/eclipse-theia/theia) - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. - [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [fr4nsys](https://github.com/fr4nsys). @@ -409,25 +406,25 @@ Native desktop applications for managing and monitoring docker hosts and cluster Tools and applications that are either installed inside containers or designed to be run as a [sidecar](https://learn.microsoft.com/en-us/azure/architecture/patterns/sidecar) -- [amicontained](https://github.com/genuinetools/amicontained) - Container introspection tool. Find out what container runtime is being used as well as features available. -- [Chaperone](https://github.com/garywiz/chaperone) - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. +- [amicontained](https://github.com/genuinetools/amicontained) :ice_cube: - Container introspection tool. Find out what container runtime is being used as well as features available. +- [Chaperone](https://github.com/garywiz/chaperone) :ice_cube: - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. - [ckron](https://github.com/nicomt/ckron) - A cron-style job scheduler for docker,. - [CoreOS][coreos] - Linux for Massive Server Deployments - [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system,. -- [docker-alpine](https://github.com/gliderlabs/docker-alpine) - A super small Docker base image _(5MB)_ using Alpine Linux. +- [docker-alpine](https://github.com/gliderlabs/docker-alpine) :ice_cube: - A super small Docker base image _(5MB)_ using Alpine Linux. - [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data. - [dockerize](https://github.com/powerman/dockerize) - Utility to simplify running applications in docker containers by [jwilder][jwilder], [powerman][powerman]. - [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool). - [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container. -- [lstags](https://github.com/ivanilves/lstags) - Sync Docker images across registries. +- [lstags](https://github.com/ivanilves/lstags) :ice_cube: - Sync Docker images across registries. - [microcheck](https://github.com/tarampampam/microcheck) - Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. - [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. - [SparkView](https://github.com/beyondssl/sparkview-container) - Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. - [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa). -- [sue](https://github.com/theAkito/sue) - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito]. +- [sue](https://github.com/theAkito/sue) :ice_cube: - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito]. - [supercronic](https://github.com/aptible/supercronic) - Crontab-compatible job runner, designed specifically to run in containers. -- [TrivialRC](https://github.com/vorakl/TrivialRC) - A minimalistic Runtime Configuration system and process manager for containers [vorakl](https://github.com/vorakl). +- [TrivialRC](https://github.com/vorakl/TrivialRC) :ice_cube: - A minimalistic Runtime Configuration system and process manager for containers [vorakl](https://github.com/vorakl). ### Builder Applications designed to help or simplify building **new** images @@ -436,31 +433,31 @@ Applications designed to help or simplify building **new** images - [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images. - [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit. - [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines. -- [container-factory](https://github.com/mutable/container-factory) - Produces Docker images from tarballs of application source code. -- [copy-docker-image](https://github.com/mdlavin/copy-docker-image) - Copy a Docker image between registries without a full Docker installation. -- [Derrick](https://github.com/alibaba/derrick) - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [alibaba](https://github.com/alibaba). +- [container-factory](https://github.com/mutable/container-factory) :ice_cube: - Produces Docker images from tarballs of application source code. +- [copy-docker-image](https://github.com/mdlavin/copy-docker-image) :ice_cube: - Copy a Docker image between registries without a full Docker installation. +- [Derrick](https://github.com/alibaba/derrick) :ice_cube: - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [alibaba](https://github.com/alibaba). - [dlayer](https://github.com/orisano/dlayer) - Docker layer analyzer. - [docker-companion](https://github.com/mudler/docker-companion) - A command line tool written in Golang to squash and unpack docker images. -- [docker-make](https://github.com/CtripCloud/docker-make) - Build, tag,and push a bunch of related docker images via a single command. +- [docker-make](https://github.com/CtripCloud/docker-make) :ice_cube: - Build, tag,and push a bunch of related docker images via a single command. - [docker-repack](https://github.com/orf/docker-repack) - Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. By [orf](https://github.com/orf). -- [docker-replay](https://github.com/bcicen/docker-replay) - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen). +- [docker-replay](https://github.com/bcicen/docker-replay) :ice_cube: - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen). - [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. -- [Dockly](https://github.com/swipely/dockly) - Dockly is a gem made to ease the pain of packaging an application in Docker. +- [Dockly](https://github.com/swipely/dockly) :ice_cube: - Dockly is a gem made to ease the pain of packaging an application in Docker. - [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [jamesbrink](https://github.com/jamesbrink). - [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. - [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. - [packer](https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible. -- [portainer](https://github.com/duedil-ltd/portainer) - Apache Mesos framework for building Docker images. -- [Production-Ready Python Containers :heavy_dollar_sign:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. +- [portainer](https://github.com/duedil-ltd/portainer) :ice_cube: - Apache Mesos framework for building Docker images. +- [Production-Ready Python Containers :yen:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. - [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [SecSI](https://github.com/cybersecsi). - [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers. -- [userdef](https://github.com/theAkito/userdef) - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito]. +- [userdef](https://github.com/theAkito/userdef) :ice_cube: - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito]. - [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles. -- [Whales](https://github.com/Gueils/whales) - A tool to automatically dockerize your applications. +- [Whales](https://github.com/Gueils/whales) :ice_cube: - A tool to automatically dockerize your applications. ### Dockerfile -- [chaperone-docker](https://github.com/garywiz/chaperone-docker) - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. +- [chaperone-docker](https://github.com/garywiz/chaperone-docker) :ice_cube: - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. - [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. - [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. - [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [PatrickHoefler](https://github.com/patrickhoefler). @@ -483,8 +480,8 @@ Examples by: - [Dockadvisor](https://github.com/deckrun/dockadvisor) - Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks. - [docker-image-size-limit](https://github.com/wemake-services/docker-image-size-limit) - A tool to keep an eye on your docker images size. -- [Dockerfile Linter action](https://github.com/buddy-works/dockerfile-linter) - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. -- [FROM:latest](https://github.com/replicatedhq/dockerfilelint) - An opinionated Dockerfile linter. +- [Dockerfile Linter action](https://github.com/buddy-works/dockerfile-linter) :ice_cube: - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. +- [FROM:latest](https://github.com/replicatedhq/dockerfilelint) :ice_cube: - An opinionated Dockerfile linter. - [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions;. ### Metadata @@ -495,48 +492,48 @@ Examples by: Services to securely store your Docker images. -- [Amazon Elastic Container Registry :heavy_dollar_sign:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. -- [Azure Container Registry :heavy_dollar_sign:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource. -- [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [RedCoolBeans](https://github.com/RedCoolBeans). -- [cleanreg](https://github.com/hcguersoy/cleanreg) - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC. -- [Cloudsmith :heavy_dollar_sign:](https://cloudsmith.com/product/formats/docker-registry) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. -- [Container Registry Service :heavy_dollar_sign:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. -- [Cycle.io :heavy_dollar_sign:](https://cycle.io/) - Bare-metal container hosting. -- [DigitalOcean :heavy_dollar_sign:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. +- [Amazon Elastic Container Registry :yen:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. +- [Azure Container Registry :yen:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource. +- [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) :ice_cube: - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [RedCoolBeans](https://github.com/RedCoolBeans). +- [cleanreg](https://github.com/hcguersoy/cleanreg) :ice_cube: - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC. +- [Cloudsmith :yen:](https://cloudsmith.com/product/formats/docker-registry) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. +- [Container Registry Service :yen:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. +- [Cycle.io :yen:](https://cycle.io/) - Bare-metal container hosting. +- [DigitalOcean :yen:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. - [Docker Hub](https://hub.docker.com/) provided by Docker Inc. - [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content -- [Docket](https://github.com/netvarun/docket) - Custom docker registry that allows for lightning fast deploys through bittorrent. +- [Docket](https://github.com/netvarun/docket) :ice_cube: - Custom docker registry that allows for lightning fast deploys through bittorrent. - [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. -- [GCP Artifact Registry :heavy_dollar_sign:](https://cloud.google.com/artifact-registry/docs) Fast, private Docker image storage on Google Cloud Platform. +- [GCP Artifact Registry :yen:](https://cloud.google.com/artifact-registry/docs) Fast, private Docker image storage on Google Cloud Platform. - [Gitea Container Registry](https://docs.gitea.com/usage/packages/container) - Integrated Docker registry in Gitea, ideal for private, small-scale image hosting. - [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - GitHub's solution for storing and managing Docker images, with tight integration into GitHub Actions. - [GitLab Container Registry](https://docs.gitlab.com/user/packages/container_registry/) - Registry focused on using its images in GitLab CI. - [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] -- [JFrog Artifactory :heavy_dollar_sign:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well. +- [JFrog Artifactory :yen:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well. - [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. - [nscr](https://github.com/jhstatewide/nscr) - A light-weight, self-contained container registry that's easy to run and maintain. -- [Quay.io :heavy_dollar_sign:](https://quay.io/) - Secure hosting for private Docker repositories. +- [Quay.io :yen:](https://quay.io/) - Secure hosting for private Docker repositories. - [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry. - [RepoFlow](https://www.repoflow.io) - A simple and easy-to-use package management platform with Docker support alongside other formats like PyPI, Maven, npm, and Helm. Includes smart search, built-in Docker image scanning, and a great free option for both self-hosted and cloud use. -- [Rescoyl](https://github.com/noteed/rescoyl) - Private Docker registry (free and open source). +- [Rescoyl](https://github.com/noteed/rescoyl) :ice_cube: - Private Docker registry (free and open source). - [Sonatype Nexus Repository](https://www.sonatype.com/products/sonatype-nexus-repository) - Manage binaries and build artifacts across your software supply chain. ## Development with Docker ### API Client -- [ahab](https://github.com/instacart/ahab) - Docker event handling with Python. +- [ahab](https://github.com/instacart/ahab) :ice_cube: - Docker event handling with Python. - [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [lispyclouds][lispyclouds]. - [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy. - [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [masaeedu](https://github.com/masaeedu). - [docker-controller-bot](https://github.com/dgongut/docker-controller-bot) - Telegram bot to control docker containers. By [dgongut](https://github.com/dgongut/). -- [docker-it-scala](https://github.com/whisklabs/docker-it-scala) - Docker integration testing kit with Scala. -- [docker-java-api](https://github.com/amihaiemil/docker-java-api) - Lightweight, truly object-oriented, Java client for Docker's API. By [amihaiemil](https://github.com/amihaiemil). +- [docker-it-scala](https://github.com/whisklabs/docker-it-scala) :ice_cube: - Docker integration testing kit with Scala. +- [docker-java-api](https://github.com/amihaiemil/docker-java-api) :ice_cube: - Lightweight, truly object-oriented, Java client for Docker's API. By [amihaiemil](https://github.com/amihaiemil). - [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images. - [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API. - [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [rquackenbush](https://github.com/rquackenbush). - [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module. -- [DoMonit](https://github.com/eon01/DoMonit) - A simple Docker Monitoring wrapper For Docker API. +- [DoMonit](https://github.com/eon01/DoMonit) :ice_cube: - A simple Docker Monitoring wrapper For Docker API. - [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API. - [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle. - [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) - Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [greenled](https://github.com/greenled). @@ -544,11 +541,11 @@ Services to securely store your Docker images. ### CI/CD -- [Buddy :heavy_dollar_sign:](https://buddy.works) - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. +- [Buddy :yen:](https://buddy.works) - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. - [Captain](https://github.com/harbur/captain) - Convert your Git workflow to Docker containers ready for Continuous Delivery. -- [Cyclone](https://github.com/caicloud/cyclone) - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources. +- [Cyclone](https://github.com/caicloud/cyclone) :ice_cube: - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources. - [Defang](https://github.com/DefangLabs/defang) - Deploy Docker Compose to your favorite cloud in minutes. -- [Depot :heavy_dollar_sign:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). +- [Depot :yen:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). - [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [crazy-max]. - [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. @@ -557,61 +554,61 @@ Services to securely store your Docker images. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. - [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. - [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed. -- [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) - Continuous deployment of a microservices application. -- [mu](https://github.com/stelligent/mu) - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [Stelligent](https://github.com/stelligent). -- [Popper](https://github.com/systemslab/popper) - Github actions workflow (HCL syntax) execution engine. -- [Screwdriver :heavy_dollar_sign:](https://screwdriver.cd/) - Yahoo's OpenSource buildplatform designed for Continous Delivery. +- [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) :ice_cube: - Continuous deployment of a microservices application. +- [mu](https://github.com/stelligent/mu) :ice_cube: - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [Stelligent](https://github.com/stelligent). +- [Popper](https://github.com/systemslab/popper) :ice_cube: - Github actions workflow (HCL syntax) execution engine. +- [Screwdriver :yen:](https://screwdriver.cd/) - Yahoo's OpenSource buildplatform designed for Continous Delivery. - [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository. -- [SwarmCI](https://github.com/ghostsquad/swarmci) - Create a distributed, isolated task pipeline in your Docker Swarm. +- [SwarmCI](https://github.com/ghostsquad/swarmci) :ice_cube: - Create a distributed, isolated task pipeline in your Docker Swarm. - [Tekton CD](https://tekton.dev/) - A cloud-native pipeline resource. ### Development Environment -- [Binci](https://github.com/binci/binci) - Containerize your development workflow. (formerly DevLab by [TechnologyAdvice](https://github.com/TechnologyAdvice)). +- [Binci](https://github.com/binci/binci) :ice_cube: - Containerize your development workflow. (formerly DevLab by [TechnologyAdvice](https://github.com/TechnologyAdvice)). - [coder](https://github.com/coder/coder) - Remote development machines powered by Terraform or Docker. -- [construi](https://github.com/lstephen/construi) - Run your builds inside a Docker defined environment. +- [construi](https://github.com/lstephen/construi) :ice_cube: - Run your builds inside a Docker defined environment. - [dde](https://github.com/whatwedo/dde) - Local development environment toolset based on Docker. By [whatwedo](https://github.com/whatwedo). - [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [bibendi](https://github.com/bibendi). -- [dobi](https://github.com/dnephin/dobi) - A build automation tool for Docker applications. By [dnephin](https://github.com/dnephin). -- [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [NandoQuintana](https://github.com/nandoquintana). -- [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [Ph3nol](https://github.com/ph3nol). +- [dobi](https://github.com/dnephin/dobi) :ice_cube: - A build automation tool for Docker applications. By [dnephin](https://github.com/dnephin). +- [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) :ice_cube: - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [NandoQuintana](https://github.com/nandoquintana). +- [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) :ice_cube: - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [Ph3nol](https://github.com/ph3nol). - [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [EugenMayer](https://github.com/EugenMayer). -- [docker-vm](https://github.com/shyiko/docker-vm) - Simple and transparent alternative to boot2docker (backed by Vagrant). +- [docker-vm](https://github.com/shyiko/docker-vm) :ice_cube: - Simple and transparent alternative to boot2docker (backed by Vagrant). - [DockerDL](https://github.com/matifali/dockerdl) - Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. - [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE. - [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [EnvCLI](https://github.com/EnvCLI). - [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [Hpsaturn](https://github.com/hpsaturn). - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. -- [Kitt](https://github.com/senges/kitt) - A portable and disposable Shell environment, based on Docker and Nix. By [senges](https://github.com/senges). +- [Kitt](https://github.com/senges/kitt) :ice_cube: - A portable and disposable Shell environment, based on Docker and Nix. By [senges](https://github.com/senges). - [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://www.thinktandem.io/). -- [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) - Container solution to compile Rust projects for Linux, macOS and Windows. By [Peco602][peco602]. +- [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) :ice_cube: - Container solution to compile Rust projects for Linux, macOS and Windows. By [Peco602][peco602]. - [uniget](https://github.com/uniget-org/cli) - Uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [nicholasdille](https://github.com/nicholasdille). -- [Vagga](https://github.com/tailhook/vagga) - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments. +- [Vagga](https://github.com/tailhook/vagga) :ice_cube: - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments. - [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com). ### Garbage Collection -- [caduc](https://github.com/tjamet/caduc) - A docker garbage collector cleaning stuff you did not use recently. -- [Docker Clean](https://github.com/ZZROTDesign/docker-clean) - A script that cleans Docker containers, images and volumes. +- [caduc](https://github.com/tjamet/caduc) :ice_cube: - A docker garbage collector cleaning stuff you did not use recently. +- [Docker Clean](https://github.com/ZZROTDesign/docker-clean) :ice_cube: - A script that cleans Docker containers, images and volumes. - [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [Yelp](https://github.com/Yelp). -- [docker_gc](https://github.com/pdacity/docker_gc) - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service. +- [docker_gc](https://github.com/pdacity/docker_gc) :ice_cube: - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service. - [Docuum](https://github.com/stepchowfun/docuum) - Least recently used (LRU) eviction of Docker images. ### Serverless - [Apache OpenWhisk](https://github.com/apache/openwhisk) - A serverless, open source cloud platform that executes functions in response to events at any scale. By [apache](https://github.com/apache). -- [Funker](https://github.com/bfirsh/funker-example-voting-app) - Functions as Docker containers example voting app. By [bfirsh](https://github.com/bfirsh). -- [IronFunctions](https://github.com/iron-io/functions) - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions. -- [Koyeb](https://www.koyeb.com/) - :heavy_dollar_sign: Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. +- [Funker](https://github.com/bfirsh/funker-example-voting-app) :ice_cube: - Functions as Docker containers example voting app. By [bfirsh](https://github.com/bfirsh). +- [IronFunctions](https://github.com/iron-io/functions) :ice_cube: - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions. +- [Koyeb](https://www.koyeb.com/) - :yen: Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. - [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas). -- [SCAR](https://github.com/grycap/scar) - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda). +- [SCAR](https://github.com/grycap/scar) :ice_cube: - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda). ### Testing - [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [GoogleContainerTools][googlecontainertools]. - [dgoss](https://github.com/goss-org/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. -- [DockerSpec](https://github.com/zuazo/dockerspec) - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [zuazo](https://github.com/zuazo). -- [EZDC](https://github.com/lynchborg/ezdc) - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [byrnedo]. +- [DockerSpec](https://github.com/zuazo/dockerspec) :ice_cube: - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [zuazo](https://github.com/zuazo). +- [EZDC](https://github.com/lynchborg/ezdc) :ice_cube: - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [byrnedo]. - [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [chef](https://github.com/chef) - [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/). - [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. @@ -620,59 +617,59 @@ Services to securely store your Docker images. ### Wrappers - [Ansible](https://docs.ansible.com/projects/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat. -- [dexec](https://github.com/docker-exec/dexec) - Command line interface written in Go for running code with Docker Exec images. -- [dockerized](https://github.com/benzaita/dockerized-cli) - Seamlessly execute commands in a container. -- [Dray](https://github.com/CenturyLinkLabs/dray) - An engine for managing the execution of container-based workflows. +- [dexec](https://github.com/docker-exec/dexec) :ice_cube: - Command line interface written in Go for running code with Docker Exec images. +- [dockerized](https://github.com/benzaita/dockerized-cli) :ice_cube: - Seamlessly execute commands in a container. +- [Dray](https://github.com/CenturyLinkLabs/dray) :ice_cube: - An engine for managing the execution of container-based workflows. - [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [artsy](https://github.com/artsy). - [Preevy](https://github.com/livecycle/preevy) - Preview environments for Docker and Docker Compose projects. Test your changes and get feedback from devs and non-devs (Product/Design) by deploying pull requests to the your cloud provider as part of your CI pipeline. -- [Shutit](https://github.com/ianmiell/shutit) - Tool for building and maintaining complex Docker deployments. +- [Shutit](https://github.com/ianmiell/shutit) :ice_cube: - Tool for building and maintaining complex Docker deployments. - [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker. -- [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM. -- [Turbo](https://github.com/ramitsurana/turbo) - Simple and Powerful utility for docker. By [ramitsurana][ramitsurana]. +- [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) :ice_cube: - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM. +- [Turbo](https://github.com/ramitsurana/turbo) :ice_cube: - Simple and Powerful utility for docker. By [ramitsurana][ramitsurana]. - [udocker](https://github.com/indigo-dc/udocker) - A tool to execute simple docker containers in batch or interactive systems without root privileges. - [Vagrant - Docker provider](https://developer.hashicorp.com/vagrant/docs/providers/docker/basics) - Good starting point is [vagrant-docker-example](https://github.com/bubenkoff/vagrant-docker-example). -## Services based on Docker (mostly :heavy_dollar_sign:) +## Services based on Docker (mostly :yen:) ### CI Services -- [CircleCI](https://circleci.com/) - :heavy_dollar_sign: Push or pull Docker images from your build environment, or build and run containers right on CircleCI. -- [CodeFresh](https://codefresh.io) - :heavy_dollar_sign: Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. -- [CodeShip](https://www.cloudbees.com/blog/how-to-run-codeship-parallel-test-pipelines-efficiently-for-optimal-ci-parallelization) - :heavy_dollar_sign: Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. -- [ConcourseCI](https://concourse-ci.org) - :heavy_dollar_sign: A CI SaaS platform for developers and DevOps teams pipeline oriented. -- [Semaphore CI](https://semaphore.io/) :heavy_dollar_sign: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. -- [TravisCI](https://www.travis-ci.com/) - :heavy_dollar_sign: A Free github projects continuous integration Saas platform for developers and Devops. +- [CircleCI](https://circleci.com/) - :yen: Push or pull Docker images from your build environment, or build and run containers right on CircleCI. +- [CodeFresh](https://codefresh.io) - :yen: Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. +- [CodeShip](https://www.cloudbees.com/blog/how-to-run-codeship-parallel-test-pipelines-efficiently-for-optimal-ci-parallelization) - :yen: Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. +- [ConcourseCI](https://concourse-ci.org) - :yen: A CI SaaS platform for developers and DevOps teams pipeline oriented. +- [Semaphore CI](https://semaphore.io/) :yen: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. +- [TravisCI](https://www.travis-ci.com/) - :yen: A Free github projects continuous integration Saas platform for developers and Devops. ### CaaS -- [Amazon ECS](https://aws.amazon.com/ecs/) - :heavy_dollar_sign: A management service on EC2 that supports Docker containers. -- [Appfleet](https://appfleet.com/) - :heavy_dollar_sign: Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency. -- [Azure AKS](https://azure.microsoft.com/en-us/products/kubernetes-service/) - :heavy_dollar_sign: Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. -- [Cloud 66](https://www.cloud66.com) - :heavy_dollar_sign: Full-stack hosted container management as a service. -- [Giant Swarm](https://www.giantswarm.io/) - :heavy_dollar_sign: Simple microservice infrastructure. Deploy your containers in seconds. -- [Google Container Engine](https://docs.cloud.google.com/kubernetes-engine/docs) - :heavy_dollar_sign: Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. -- [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) - :heavy_dollar_sign: Integrated platform for data and containers built on Apache Mesos. -- [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) - :heavy_dollar_sign: Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud. -- [Triton](https://www.joyent.com/) - :heavy_dollar_sign: Elastic container-native infrastructure by Joyent. +- [Amazon ECS](https://aws.amazon.com/ecs/) - :yen: A management service on EC2 that supports Docker containers. +- [Appfleet](https://appfleet.com/) - :yen: Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency. +- [Azure AKS](https://azure.microsoft.com/en-us/products/kubernetes-service/) - :yen: Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. +- [Cloud 66](https://www.cloud66.com) - :yen: Full-stack hosted container management as a service. +- [Giant Swarm](https://www.giantswarm.io/) - :yen: Simple microservice infrastructure. Deploy your containers in seconds. +- [Google Container Engine](https://docs.cloud.google.com/kubernetes-engine/docs) - :yen: Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. +- [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) - :yen: Integrated platform for data and containers built on Apache Mesos. +- [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) - :yen: Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud. +- [Triton](https://www.joyent.com/) - :yen: Elastic container-native infrastructure by Joyent. ### Monitoring Services - [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. -- [Better Stack](https://betterstack.com/community/guides/scaling-docker/) - :heavy_dollar_sign: A Docker-compatible observability stack that delivers robust log aggregation and uptime monitoring capabilities for various software application. -- [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) - :heavy_dollar_sign: Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies). +- [Better Stack](https://betterstack.com/community/guides/scaling-docker/) - :yen: A Docker-compatible observability stack that delivers robust log aggregation and uptime monitoring capabilities for various software application. +- [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) - :yen: Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies). - [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) -- [Datadog](https://www.datadoghq.com/) - :heavy_dollar_sign: Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. -- [Prometheus](https://prometheus.io/) - :heavy_dollar_sign: Open-source service monitoring system and time series database. -- [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :heavy_dollar_sign: Docker Monitoring for DevOps and IT is a SaaS Pay per Host model. -- [SPM for Docker](https://github.com/sematext/sematext-agent-docker) - :heavy_dollar_sign: Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [sematext](https://github.com/sematext). -- [Sysdig Monitor](https://www.sysdig.com/products/monitor) - :heavy_dollar_sign: Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. +- [Datadog](https://www.datadoghq.com/) - :yen: Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. +- [Prometheus](https://prometheus.io/) - :yen: Open-source service monitoring system and time series database. +- [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :yen: Docker Monitoring for DevOps and IT is a SaaS Pay per Host model. +- [SPM for Docker](https://github.com/sematext/sematext-agent-docker) :ice_cube: - :yen: Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [sematext](https://github.com/sematext). +- [Sysdig Monitor](https://www.sysdig.com/products/monitor) - :yen: Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. # Useful Resources - **[Valuable Docker Links](http://nane.kratzke.pages.mylab.th-luebeck.de/about/blog/2014/08/24/valuable-docker-links/)** High quality articles about docker! **MUST SEE** - [Cloud Native Landscape](https://github.com/cncf/landscape) - [Docker Blog](https://www.docker.com/blog/) - Regular updates about Docker, the community and tools. -- [Docker Certification](https://intellipaat.com/docker-training-course/?US) :heavy_dollar_sign: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. +- [Docker Certification](https://intellipaat.com/docker-training-course/?US) :yen: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. - [Docker dev bookmarks](https://www.codever.dev/search?q=docker) - Use the tag [docker](https://www.codever.dev/bookmarks/t/docker). - [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) @@ -684,7 +681,7 @@ Services to securely store your Docker images. ## Awesome Lists -- [Awesome CI/CD](https://github.com/cicdops/awesome-ciandcd) - Not specific to docker but relevant. +- [Awesome CI/CD](https://github.com/cicdops/awesome-ciandcd) :ice_cube: - Not specific to docker but relevant. - [Awesome Compose](https://github.com/docker/awesome-compose) - Docker Compose samples. - [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) by [ramitsurana][ramitsurana] - [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo, by [Friz-zy](https://github.com/Friz-zy). @@ -703,7 +700,7 @@ Services to securely store your Docker images. - [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** - [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015. - [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/) -- [Dockerfile best practices](https://github.com/hexops/dockerfile) - This repository has best-practices for writing Dockerfiles. +- [Dockerfile best practices](https://github.com/hexops/dockerfile) :ice_cube: - This repository has best-practices for writing Dockerfiles. - [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [King Chung Huang](https://github.com/kinghuang) - [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [fgrehm][fgrehm] @@ -775,14 +772,11 @@ Services to securely store your Docker images. ## Stargazers over time -[![Stargazers over time](https://starchart.cc/veggiemonk/awesome-docker.svg)](https://starchart.cc/veggiemonk/awesome-docker) +[![Stargazers over time](https://starchart.cc/veggiemonk/awesome-docker.svg?variant=adaptive)](https://starchart.cc/veggiemonk/awesome-docker) [contributing]: https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md -[akito]: https://github.com/theAkito [calico]: https://github.com/projectcalico/calico -[centurylinklabs]: https://github.com/CenturyLinkLabs [containx]: https://github.com/ContainX -[containers]: https://github.com/containers [coreos]: https://github.com/coreos [deepfence]: https://github.com/deepfence [distribution]: https://github.com/docker/distribution @@ -792,10 +786,7 @@ Services to securely store your Docker images. [dozzle]: https://github.com/amir20/dozzle [editreadme]: https://github.com/veggiemonk/awesome-docker/edit/master/README.md [fgrehm]: https://github.com/fgrehm -[gesellix]: https://github.com/gesellix -[genuinetools]: https://github.com/genuinetools [gliderlabs]: https://github.com/gliderlabs -[google]: https://github.com/google [googlecontainertools]: https://github.com/GoogleContainerTools [inspec]: https://github.com/inspec/inspec [jessfraz]: https://github.com/jessfraz @@ -803,23 +794,18 @@ Services to securely store your Docker images. [jwilder]: https://github.com/jwilder [kubernetes]: https://kubernetes.io [lispyclouds]: https://github.com/lispyclouds -[nvidia]: https://github.com/nvidia [nginxproxy]: https://github.com/nginx-proxy/nginx-proxy [openshift]: https://okd.io/ -[oracle]: https://github.com/oracle -[peco602]: https://github.com/Peco602 [powerman]: https://github.com/powerman [progrium]: https://github.com/progrium [ramitsurana]: https://github.com/ramitsurana -[rancher]: https://github.com/rancher -[safe-waters]: https://github.com/safe-waters [sindresorhus]: https://github.com/sindresorhus/awesome [spotify]: https://github.com/spotify -[tomastomecek]: https://github.com/TomasTomecek [vegasbrianc]: https://github.com/vegasbrianc -[weave]: https://github.com/weaveworks/weave [vmware]: https://github.com/vmware [byrnedo]: https://github.com/byrnedo [crazy-max]: https://github.com/crazy-max -[grammarly]: https://github.com/grammarly [skanehira]: https://github.com/skanehira +[akito]: https://github.com/theAkito +[peco602]: https://github.com/Peco602 +[weave]: https://github.com/weaveworks/weave diff --git a/internal/linter/fixer.go b/internal/linter/fixer.go index 4d8eac74b..02f29441f 100644 --- a/internal/linter/fixer.go +++ b/internal/linter/fixer.go @@ -39,9 +39,11 @@ func FormatEntry(e parser.Entry) string { case parser.MarkerAbandoned: markers = append(markers, ":skull:") case parser.MarkerPaid: - markers = append(markers, ":heavy_dollar_sign:") + markers = append(markers, ":yen:") case parser.MarkerWIP: markers = append(markers, ":construction:") + case parser.MarkerStale: + markers = append(markers, ":ice_cube:") } } if len(markers) > 0 { diff --git a/internal/parser/parser.go b/internal/parser/parser.go index 5eb0d9307..7c6f00af8 100644 --- a/internal/parser/parser.go +++ b/internal/parser/parser.go @@ -23,8 +23,9 @@ var markerDefs = []struct { marker Marker }{ {text: ":skull:", marker: MarkerAbandoned}, - {text: ":heavy_dollar_sign:", marker: MarkerPaid}, + {text: ":yen:", marker: MarkerPaid}, {text: ":construction:", marker: MarkerWIP}, + {text: ":ice_cube:", marker: MarkerStale}, } // ParseEntry parses a single markdown list line into an Entry. diff --git a/internal/parser/parser_test.go b/internal/parser/parser_test.go index 9f86b6f5e..eda0bb938 100644 --- a/internal/parser/parser_test.go +++ b/internal/parser/parser_test.go @@ -44,7 +44,7 @@ func TestParseEntryWithMarkers(t *testing.T) { } func TestParseEntryMultipleMarkers(t *testing.T) { - line := `- [SomeProject](https://example.com) - A project. :heavy_dollar_sign: :construction:` + line := `- [SomeProject](https://example.com) - A project. :yen: :construction:` entry, err := ParseEntry(line, 1) if err != nil { t.Fatalf("unexpected error: %v", err) @@ -90,7 +90,7 @@ func TestParseDocument(t *testing.T) { ## Services -- [ServiceC](https://example.com/c) - Does C. :heavy_dollar_sign: +- [ServiceC](https://example.com/c) - Does C. :yen: ` doc, err := Parse(strings.NewReader(input)) if err != nil { diff --git a/internal/parser/types.go b/internal/parser/types.go index 2c58bd56d..54e5a486b 100644 --- a/internal/parser/types.go +++ b/internal/parser/types.go @@ -5,8 +5,9 @@ type Marker int const ( MarkerAbandoned Marker = iota // :skull: - MarkerPaid // :heavy_dollar_sign: + MarkerPaid // :yen: MarkerWIP // :construction: + MarkerStale // :ice_cube: ) // Entry is a single link entry in the README. From a4224eaa56112c35159c0ee10da3a4b9498556e9 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Thu, 12 Mar 2026 16:36:24 +0100 Subject: [PATCH 267/327] update go deps --- .claude/settings.local.json | 14 ++++++++++++++ go.mod | 16 ++++++++-------- go.sum | 17 +++++++++++++++++ 3 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 000000000..4c3ffc59d --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,14 @@ +{ + "permissions": { + "allow": [ + "mcp__plugin_context-mode_context-mode__ctx_batch_execute", + "mcp__plugin_context7_context7__resolve-library-id", + "mcp__plugin_context7_context7__query-docs", + "Bash(go:*)", + "Bash(./awesome-docker:*)", + "Bash(tmux send-keys:*)", + "Bash(tmux capture-pane:*)", + "Bash(tmux:*)" + ] + } +} diff --git a/go.mod b/go.mod index 23912d599..cc3bb4266 100644 --- a/go.mod +++ b/go.mod @@ -3,18 +3,18 @@ module github.com/veggiemonk/awesome-docker go 1.26.0 require ( - charm.land/bubbletea/v2 v2.0.1 - charm.land/lipgloss/v2 v2.0.0 + charm.land/bubbletea/v2 v2.0.2 + charm.land/lipgloss/v2 v2.0.2 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 github.com/yuin/goldmark v1.7.16 - golang.org/x/oauth2 v0.35.0 + golang.org/x/oauth2 v0.36.0 gopkg.in/yaml.v3 v3.0.1 ) require ( - github.com/charmbracelet/colorprofile v0.4.2 // indirect - github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8 // indirect + github.com/charmbracelet/colorprofile v0.4.3 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20260309091805-903bfd0cf188 // indirect github.com/charmbracelet/x/ansi v0.11.6 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect github.com/charmbracelet/x/termios v0.1.1 // indirect @@ -23,12 +23,12 @@ require ( github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.3.0 // indirect - github.com/mattn/go-runewidth v0.0.19 // indirect + github.com/mattn/go-runewidth v0.0.21 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - golang.org/x/sync v0.19.0 // indirect - golang.org/x/sys v0.41.0 // indirect + golang.org/x/sync v0.20.0 // indirect + golang.org/x/sys v0.42.0 // indirect ) diff --git a/go.sum b/go.sum index d574c484c..66436e890 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,22 @@ charm.land/bubbletea/v2 v2.0.1 h1:B8e9zzK7x9JJ+XvHGF4xnYu9Xa0E0y0MyggY6dbaCfQ= charm.land/bubbletea/v2 v2.0.1/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ= +charm.land/bubbletea/v2 v2.0.2 h1:4CRtRnuZOdFDTWSff9r8QFt/9+z6Emubz3aDMnf/dx0= +charm.land/bubbletea/v2 v2.0.2/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ= charm.land/lipgloss/v2 v2.0.0 h1:sd8N/B3x892oiOjFfBQdXBQp3cAkvjGaU5TvVZC3ivo= charm.land/lipgloss/v2 v2.0.0/go.mod h1:w6SnmsBFBmEFBodiEDurGS/sdUY/u1+v72DqUzc6J14= +charm.land/lipgloss/v2 v2.0.2 h1:xFolbF8JdpNkM2cEPTfXEcW1p6NRzOWTSamRfYEw8cs= +charm.land/lipgloss/v2 v2.0.2/go.mod h1:KjPle2Qd3YmvP1KL5OMHiHysGcNwq6u83MUjYkFvEkM= github.com/aymanbagabas/go-udiff v0.4.0 h1:TKnLPh7IbnizJIBKFWa9mKayRUBQ9Kh1BPCk6w2PnYM= github.com/aymanbagabas/go-udiff v0.4.0/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= +github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY= github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8= +github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= +github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q= github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8 h1:eyFRbAmexyt43hVfeyBofiGSEmJ7krjLOYt/9CF5NKA= github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8/go.mod h1:SQpCTRNBtzJkwku5ye4S3HEuthAlGy2n9VXZnWkEW98= +github.com/charmbracelet/ultraviolet v0.0.0-20260309091805-903bfd0cf188 h1:J8v4kWJYCaxv1SLhLunN74S+jMteZ1f7Dae99ioq4Bo= +github.com/charmbracelet/ultraviolet v0.0.0-20260309091805-903bfd0cf188/go.mod h1:FzWNAbe1jEmI+GZljSnlaSA8wJjnNIZhWBLkTsAl6eg= github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8= github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ= github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA= @@ -29,6 +38,8 @@ github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQ github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/mattn/go-runewidth v0.0.21 h1:jJKAZiQH+2mIinzCJIaIG9Be1+0NR+5sz/lYEEjdM8w= +github.com/mattn/go-runewidth v0.0.21/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= @@ -52,10 +63,16 @@ golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= +golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= +golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= From af1c5695c66f8f237929325b90005fb2ad197eca Mon Sep 17 00:00:00 2001 From: deep-on <148938385+deep-on@users.noreply.github.com> Date: Wed, 18 Mar 2026 07:40:15 +0900 Subject: [PATCH 268/327] Add DockProbe - lightweight Docker monitoring with anomaly detection (#1273) Co-authored-by: dohelper --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e37c39c4d..c2bd93eb9 100644 --- a/README.md +++ b/README.md @@ -184,6 +184,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [zorak1103](https://github.com/zorak1103). - [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) :ice_cube: - Monitor and send alerts based on docker container resource usage/statistics. - [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) :ice_cube: - Reconfigures Prometheus when a new service is updated or deployed automatically. +- [DockProbe](https://github.com/deep-on/dockprobe) - Lightweight Docker monitoring dashboard in a single container. Real-time metrics, 6 anomaly detection rules, Telegram alerts, and 16 automated security scans. Zero config, ~50MB RAM. By [DeepOn](https://github.com/deep-on). - [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. - [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. - [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [amerkurev](https://github.com/amerkurev). From bba85d05492b34bd255d9c5b9947b063389f8b64 Mon Sep 17 00:00:00 2001 From: Benjamin Touchard Date: Tue, 17 Mar 2026 23:43:32 +0100 Subject: [PATCH 269/327] docs: add Maintenant to Monitoring section (#1276) Maintenant is a self-discovering infrastructure monitoring tool for Docker and Kubernetes with endpoint monitoring, heartbeats, TLS certificates, resource metrics, and update intelligence. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c2bd93eb9..23abc9b97 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) :ice_cube: - InfluxDB Time series DB in combination with Grafana and cAdvisor. - [Logspout](https://github.com/gliderlabs/logspout) :ice_cube: - Log routing for Docker container logs. +- [Maintenant](https://github.com/kolapsis/maintenant) - Self-discovering infrastructure monitoring for Docker and Kubernetes. Auto-detects containers via labels, with endpoint monitoring, heartbeats, TLS certificates, resource metrics, update intelligence, and a built-in status page. Single binary with embedded SPA. By [kolapsis](https://github.com/kolapsis). - [monit-docker](https://github.com/decryptus/monit-docker) :ice_cube: - Monitor docker containers resources usage or status and execute docker commands or inside containers. [decryptus][decryptus]. - [NexClipper](https://github.com/NexClipper/NexClipper) :ice_cube: - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. - [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) :ice_cube: - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. From de4965f01eb8d6f48d3d2a88820f255a2e72ca01 Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Tue, 31 Mar 2026 18:43:54 +0200 Subject: [PATCH 270/327] add tdocker (#1376) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 23abc9b97..5959537e4 100644 --- a/README.md +++ b/README.md @@ -352,6 +352,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [jesseduffield](https://github.com/jesseduffield). - [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring. - [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard),. +- [tdocker](https://github.com/pivovarit/tdocker) - A `docker ps` replacement for everyday container operations by [@pivovarit](https://github.com/pivovarit). ##### CLI tools From e7e2830b677976ac07b2e8c2c1d1c1dd4bc0ecbf Mon Sep 17 00:00:00 2001 From: Bradley Woods Date: Tue, 31 Mar 2026 17:44:30 +0100 Subject: [PATCH 271/327] Add Grype to Security section (#1370) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5959537e4..f0c249a12 100644 --- a/README.md +++ b/README.md @@ -290,11 +290,12 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. By [docker][docker]. - [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions. - [dvwassl](https://github.com/Peco602/dvwassl) :ice_cube: - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [Peco602][peco602]. +- [Grype](https://github.com/anchore/grype) - A vulnerability scanner for container images, filesystems and SBOMs. By [Anchore](https://github.com/anchore). - [KICS](https://github.com/checkmarx/kics) - An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx). - [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP). - [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) - :yen: (Previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. - [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [dormstern](https://github.com/dormstern). -- [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. +- [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. By [Anchore](https://github.com/anchore). - [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. - [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) - :yen: Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. - [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) - :yen: Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. From ec8c8410be67c4aff16449648f484f8c8a3b89d6 Mon Sep 17 00:00:00 2001 From: Recep S <22618852+us@users.noreply.github.com> Date: Tue, 31 Mar 2026 19:46:19 +0300 Subject: [PATCH 272/327] docs: add Den to Security section (#1356) Co-authored-by: Julien Bisconti --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0c249a12..c4d3625da 100644 --- a/README.md +++ b/README.md @@ -285,6 +285,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [coreos][coreos]. - [crowdsec-blocklist-import](https://github.com/wolffcatskyy/crowdsec-blocklist-import) - Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [wolffcatskyy](https://github.com/wolffcatskyy). - [Dagda](https://github.com/eliasgranderubio/dagda) :ice_cube: - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [eliasgranderubio](https://github.com/eliasgranderubio). +- [Den](https://github.com/us/den) - Self-hosted sandbox runtime for AI agents with Docker containers, security hardening, REST API and WebSocket support. By [us](https://github.com/us). - [Deepfence Enterprise](https://deepfence.io) - :yen: Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. - [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. - [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. By [docker][docker]. From 4d83a8ee05e03dd6ec720c092f6b72505e6b1f37 Mon Sep 17 00:00:00 2001 From: Recep S <22618852+us@users.noreply.github.com> Date: Tue, 31 Mar 2026 19:47:42 +0300 Subject: [PATCH 273/327] Add Mocker - Docker-compatible container CLI for macOS (#1355) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c4d3625da..7a851c054 100644 --- a/README.md +++ b/README.md @@ -268,6 +268,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o). - [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers. +- [Mocker](https://github.com/us/mocker) - Docker-compatible container CLI for macOS, built on Apple's Containerization framework. By [us](https://github.com/us). - [podman](https://github.com/containers/libpod) - Libpod is a library used to create container pods. Home of Podman. - [rlxc](https://github.com/brauner/rlxc) :ice_cube: - LXC binary written in Rust. - [runtime-tools](https://github.com/opencontainers/runtime-tools) - Oci-runtime-tool is a collection of tools for working with the OCI runtime specification. From 9d7a9f0f7a007b081816a98d0659d6bd9e16b144 Mon Sep 17 00:00:00 2001 From: Code of Mario <87139616+codeofmario@users.noreply.github.com> Date: Tue, 31 Mar 2026 18:53:31 +0200 Subject: [PATCH 274/327] Add Wiremap to Monitoring (#1371) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7a851c054..f185ea0e9 100644 --- a/README.md +++ b/README.md @@ -203,6 +203,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) :ice_cube: - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. - [Sidekick](https://github.com/runsidekick/sidekick) :ice_cube: - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. - [SwarmAlert](https://github.com/gpulido/SwarmAlert) :ice_cube: - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. +- [Wiremap](https://github.com/codeofmario/wiremap) - A self-hosted visual Docker network topology explorer with real-time log streaming, live stats, embedded terminal, and container inspection. By [codeofmario](https://github.com/codeofmario). - [Zabbix Docker](https://github.com/gomex/docker-zabbix) :ice_cube: - Monitor containers automatically using zabbix LLD feature. - [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) :ice_cube: - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. ### Networking From 8dd41ca6b5278b11cc9b212ae6adb4be6547f444 Mon Sep 17 00:00:00 2001 From: potterwhite Date: Wed, 1 Apr 2026 01:00:25 +0800 Subject: [PATCH 275/327] Add HarborPilot to Development Environment section (#1372) Co-authored-by: Julien Bisconti --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f185ea0e9..223c0b09e 100644 --- a/README.md +++ b/README.md @@ -586,6 +586,7 @@ Services to securely store your Docker images. - [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [EnvCLI](https://github.com/EnvCLI). - [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [Hpsaturn](https://github.com/hpsaturn). - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. +- [HarborPilot](https://github.com/potterwhite/HarborPilot) - Automated multi-platform Docker image builder for embedded Linux development (RK3588, RV1126, RK3568). Features three-layer config inheritance, PORT_SLOT-based port allocation, and cross-version Ubuntu support (20.04/22.04/24.04). By [potterwhite](https://github.com/potterwhite). - [Kitt](https://github.com/senges/kitt) :ice_cube: - A portable and disposable Shell environment, based on Docker and Nix. By [senges](https://github.com/senges). - [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://www.thinktandem.io/). - [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) :ice_cube: - Container solution to compile Rust projects for Linux, macOS and Windows. By [Peco602][peco602]. From 3a7d816845765c145b9ec7c3f8edc95ebb179b82 Mon Sep 17 00:00:00 2001 From: Zoltan Date: Tue, 31 Mar 2026 19:12:44 +0200 Subject: [PATCH 276/327] Added swarmcli to the documentation (#1377) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 223c0b09e..8a75c8d31 100644 --- a/README.md +++ b/README.md @@ -356,6 +356,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [jesseduffield](https://github.com/jesseduffield). - [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring. - [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard),. +- [swarmcli](https://github.com/Eldara-Tech/swarmcli) - Swarm Management at the speed of thought — with real-time log streaming, instant shell access to containers, seamless port forwarding, and on-demand secret reveal capabilities, giving you full control over your Docker Swarm without breaking your flow. - [tdocker](https://github.com/pivovarit/tdocker) - A `docker ps` replacement for everyday container operations by [@pivovarit](https://github.com/pivovarit). ##### CLI tools From 03ec882e62bbbc2576e696fbcbfc6133bc9b4b80 Mon Sep 17 00:00:00 2001 From: Will Luck <101681125+Will-Luck@users.noreply.github.com> Date: Tue, 31 Mar 2026 18:16:28 +0100 Subject: [PATCH 277/327] Add Docker-Sentinel to Monitoring section (#1275) Co-authored-by: Will Luck Co-authored-by: Julien Bisconti --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a75c8d31..fa0f6f77e 100644 --- a/README.md +++ b/README.md @@ -184,6 +184,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [zorak1103](https://github.com/zorak1103). - [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) :ice_cube: - Monitor and send alerts based on docker container resource usage/statistics. - [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) :ice_cube: - Reconfigures Prometheus when a new service is updated or deployed automatically. +- [Docker-Sentinel](https://github.com/Will-Luck/Docker-Sentinel) - Automated container updates with per-container policies, rollback safety, and a real-time web dashboard. By [Will-Luck](https://github.com/Will-Luck). - [DockProbe](https://github.com/deep-on/dockprobe) - Lightweight Docker monitoring dashboard in a single container. Real-time metrics, 6 anomaly detection rules, Telegram alerts, and 16 automated security scans. Zero config, ~50MB RAM. By [DeepOn](https://github.com/deep-on). - [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. - [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. From f81eea24960ed59345b2d74c038ff563ff57bc99 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Tue, 31 Mar 2026 19:36:47 +0200 Subject: [PATCH 278/327] feat(linter): add SortFile for sort-only README fixing Co-Authored-By: Claude Opus 4.6 (1M context) --- internal/linter/fixer.go | 81 ++++++++++++++++++++++++++++++++ internal/linter/fixer_test.go | 88 +++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) diff --git a/internal/linter/fixer.go b/internal/linter/fixer.go index 02f29441f..f135c2c72 100644 --- a/internal/linter/fixer.go +++ b/internal/linter/fixer.go @@ -145,3 +145,84 @@ func FixFile(path string) (int, error) { w.WriteString("\n") return fixCount, w.Flush() } + +// SortFile reads the README, sorts entries alphabetically within each section, +// and writes the result back. Unlike FixFile, it does not modify descriptions +// (no capitalization, period, or attribution changes). +func SortFile(path string) (int, error) { + f, err := os.Open(path) + if err != nil { + return 0, err + } + defer f.Close() + + var lines []string + scanner := bufio.NewScanner(f) + for scanner.Scan() { + lines = append(lines, scanner.Text()) + } + if err := scanner.Err(); err != nil { + return 0, err + } + + fixCount := 0 + + var headingLines []int + for i, line := range lines { + if sectionHeadingRe.MatchString(line) { + headingLines = append(headingLines, i) + } + } + + for i, headingIdx := range headingLines { + start := headingIdx + 1 + end := len(lines) + if i+1 < len(headingLines) { + end = headingLines[i+1] + } + + var entryPositions []int + var entries []parser.Entry + for lineIdx := start; lineIdx < end; lineIdx++ { + entry, err := parser.ParseEntry(lines[lineIdx], lineIdx+1) + if err != nil { + continue + } + entryPositions = append(entryPositions, lineIdx) + entries = append(entries, entry) + } + if len(entries) == 0 { + continue + } + + sorted := SortEntries(entries) + for j, e := range sorted { + lineIdx := entryPositions[j] + // Use the original Raw line from the sorted entry to preserve formatting + if lines[lineIdx] != e.Raw { + fixCount++ + lines[lineIdx] = e.Raw + } + } + } + + if fixCount == 0 { + return 0, nil + } + + out, err := os.Create(path) + if err != nil { + return 0, err + } + defer out.Close() + + w := bufio.NewWriter(out) + for i, line := range lines { + w.WriteString(line) + if i < len(lines)-1 { + w.WriteString("\n") + } + } + w.WriteString("\n") + return fixCount, w.Flush() +} diff --git a/internal/linter/fixer_test.go b/internal/linter/fixer_test.go index 6872ce77a..756485aa8 100644 --- a/internal/linter/fixer_test.go +++ b/internal/linter/fixer_test.go @@ -139,6 +139,94 @@ Some text here. } } +func TestSortFile(t *testing.T) { + content := `# Awesome Docker + +## Tools + +- [Zebra](https://example.com/zebra) - a tool by [@author](https://github.com/author) +- [Alpha](https://example.com/alpha) - another tool + +## Other + +Some text here. +` + tmp, err := os.CreateTemp("", "readme-sort-*.md") + if err != nil { + t.Fatal(err) + } + defer os.Remove(tmp.Name()) + + if _, err := tmp.WriteString(content); err != nil { + t.Fatal(err) + } + tmp.Close() + + count, err := SortFile(tmp.Name()) + if err != nil { + t.Fatal(err) + } + if count == 0 { + t.Fatal("expected fixes, got 0") + } + + data, err := os.ReadFile(tmp.Name()) + if err != nil { + t.Fatal(err) + } + result := string(data) + + // Check sorting: Alpha should come before Zebra + alphaIdx := strings.Index(result, "[Alpha]") + zebraIdx := strings.Index(result, "[Zebra]") + if alphaIdx > zebraIdx { + t.Error("expected Alpha before Zebra after sort") + } + + // SortFile must NOT capitalize descriptions + if strings.Contains(result, "- A tool") { + t.Errorf("SortFile should not capitalize descriptions, got:\n%s", result) + } + + // SortFile must NOT remove attribution + if !strings.Contains(result, "@author") { + t.Errorf("SortFile should preserve attribution, got:\n%s", result) + } + + // SortFile must NOT add periods + if strings.Contains(result, "another tool.") { + t.Errorf("SortFile should not add periods, got:\n%s", result) + } +} + +func TestSortFileIdempotent(t *testing.T) { + content := `# Awesome Docker + +## Tools + +- [Alpha](https://example.com/alpha) - A tool. +- [Bravo](https://example.com/bravo) - B tool. +` + tmp, err := os.CreateTemp("", "readme-sort-idem-*.md") + if err != nil { + t.Fatal(err) + } + defer os.Remove(tmp.Name()) + + if _, err := tmp.WriteString(content); err != nil { + t.Fatal(err) + } + tmp.Close() + + count, err := SortFile(tmp.Name()) + if err != nil { + t.Fatal(err) + } + if count != 0 { + t.Fatalf("expected no changes on already-sorted file, got %d", count) + } +} + func TestFixFileSortsAcrossBlankLinesAndIsIdempotent(t *testing.T) { content := `# Awesome Docker From 903a700510aac8e8be1b983ef21b8b76b956564b Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Tue, 31 Mar 2026 19:37:48 +0200 Subject: [PATCH 279/327] feat(cli): add fix-order command for sorting README entries Co-Authored-By: Claude Opus 4.6 (1M context) --- cmd/awesome-docker/main.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index 28b0bca70..22030511f 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -44,6 +44,7 @@ func main() { root.AddCommand( versionCmd(), lintCmd(), + fixOrderCmd(), checkCmd(), healthCmd(), buildCmd(), @@ -314,6 +315,25 @@ func buildHealthReportIssueBody(report string, healthErr error) string { return b.String() } +func fixOrderCmd() *cobra.Command { + return &cobra.Command{ + Use: "fix-order", + Short: "Sort README entries alphabetically within each section", + RunE: func(cmd *cobra.Command, args []string) error { + count, err := linter.SortFile(readmePath) + if err != nil { + return fmt.Errorf("fix-order: %w", err) + } + if count == 0 { + fmt.Println("Already sorted, no changes needed") + } else { + fmt.Printf("Sorted %d lines in %s\n", count, readmePath) + } + return nil + }, + } +} + func lintCmd() *cobra.Command { var fix bool cmd := &cobra.Command{ From 3c2e534977edc82c22e5f1bc8f2a50127b8e6a3e Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Tue, 31 Mar 2026 19:38:20 +0200 Subject: [PATCH 280/327] feat(make): add fix-order target --- Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a74cc7e3b..813636dca 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ HEALTH_INPUTS := README.md config/exclude.yaml .PHONY: help \ build rebuild clean \ fmt test test-race \ - lint lint-fix check check-pr validate website \ + lint lint-fix fix-order check check-pr validate website \ guard-github-token health health-cache \ report report-json report-file report-json-file health-report \ workflow-dev workflow-pr workflow-maint workflow-ci @@ -78,6 +78,9 @@ lint: build ## Validate README formatting/content rules lint-fix: build ## Auto-fix lint issues when possible ./$(BINARY) lint --fix +fix-order: build ## Sort README entries alphabetically + ./$(BINARY) fix-order + check: build ## Check links (GitHub checks enabled when GITHUB_TOKEN is set) ./$(BINARY) check From f1b5af84dcf94757479dcb6ecbc15aa2fda5c533 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Tue, 31 Mar 2026 19:41:10 +0200 Subject: [PATCH 281/327] Fix order --- README.md | 2 +- go.mod | 6 +++--- go.sum | 6 ++++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fa0f6f77e..b913af88b 100644 --- a/README.md +++ b/README.md @@ -288,9 +288,9 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [coreos][coreos]. - [crowdsec-blocklist-import](https://github.com/wolffcatskyy/crowdsec-blocklist-import) - Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [wolffcatskyy](https://github.com/wolffcatskyy). - [Dagda](https://github.com/eliasgranderubio/dagda) :ice_cube: - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [eliasgranderubio](https://github.com/eliasgranderubio). -- [Den](https://github.com/us/den) - Self-hosted sandbox runtime for AI agents with Docker containers, security hardening, REST API and WebSocket support. By [us](https://github.com/us). - [Deepfence Enterprise](https://deepfence.io) - :yen: Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. - [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. +- [Den](https://github.com/us/den) - Self-hosted sandbox runtime for AI agents with Docker containers, security hardening, REST API and WebSocket support. By [us](https://github.com/us). - [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. By [docker][docker]. - [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions. - [dvwassl](https://github.com/Peco602/dvwassl) :ice_cube: - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [Peco602][peco602]. diff --git a/go.mod b/go.mod index cc3bb4266..151520ba5 100644 --- a/go.mod +++ b/go.mod @@ -7,14 +7,14 @@ require ( charm.land/lipgloss/v2 v2.0.2 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 - github.com/yuin/goldmark v1.7.16 + github.com/yuin/goldmark v1.8.2 golang.org/x/oauth2 v0.36.0 gopkg.in/yaml.v3 v3.0.1 ) require ( github.com/charmbracelet/colorprofile v0.4.3 // indirect - github.com/charmbracelet/ultraviolet v0.0.0-20260309091805-903bfd0cf188 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20260330092749-0f94982c930b // indirect github.com/charmbracelet/x/ansi v0.11.6 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect github.com/charmbracelet/x/termios v0.1.1 // indirect @@ -22,7 +22,7 @@ require ( github.com/clipperhouse/displaywidth v0.11.0 // indirect github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/lucasb-eyer/go-colorful v1.3.0 // indirect + github.com/lucasb-eyer/go-colorful v1.4.0 // indirect github.com/mattn/go-runewidth v0.0.21 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/rivo/uniseg v0.4.7 // indirect diff --git a/go.sum b/go.sum index 66436e890..d549fab11 100644 --- a/go.sum +++ b/go.sum @@ -17,6 +17,8 @@ github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8 h1:eyFRb github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8/go.mod h1:SQpCTRNBtzJkwku5ye4S3HEuthAlGy2n9VXZnWkEW98= github.com/charmbracelet/ultraviolet v0.0.0-20260309091805-903bfd0cf188 h1:J8v4kWJYCaxv1SLhLunN74S+jMteZ1f7Dae99ioq4Bo= github.com/charmbracelet/ultraviolet v0.0.0-20260309091805-903bfd0cf188/go.mod h1:FzWNAbe1jEmI+GZljSnlaSA8wJjnNIZhWBLkTsAl6eg= +github.com/charmbracelet/ultraviolet v0.0.0-20260330092749-0f94982c930b h1:ASDO9RT6SNKTQN87jO2bRfxHFJq8cgeYdFzivY2gCeM= +github.com/charmbracelet/ultraviolet v0.0.0-20260330092749-0f94982c930b/go.mod h1:Vo8TffMf0q7Uho/n8e6XpBZvOWtd3g39yX+9P5rRutA= github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8= github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ= github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA= @@ -36,6 +38,8 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag= github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.4.0 h1:UtrWVfLdarDgc44HcS7pYloGHJUjHV/4FwW4TvVgFr4= +github.com/lucasb-eyer/go-colorful v1.4.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mattn/go-runewidth v0.0.21 h1:jJKAZiQH+2mIinzCJIaIG9Be1+0NR+5sz/lYEEjdM8w= @@ -58,6 +62,8 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE= github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= +github.com/yuin/goldmark v1.8.2 h1:kEGpgqJXdgbkhcOgBxkC0X0PmoPG1ZyoZ117rDVp4zE= +github.com/yuin/goldmark v1.8.2/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= From 88b3958014344bbb4d19e997459ff9a1e8c0cfb2 Mon Sep 17 00:00:00 2001 From: DevITWay | Pavel Volkov Date: Tue, 31 Mar 2026 21:07:50 +0300 Subject: [PATCH 282/327] Add NORA - multi-protocol artifact registry (#1272) * Add NORA - multi-protocol artifact registry * Fix alphabetical order of NORA entry Co-Authored-By: Claude Opus 4.6 (1M context) --------- Co-authored-by: AI User Co-authored-by: Julien Bisconti Co-authored-by: Claude Opus 4.6 (1M context) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b913af88b..e1fe13556 100644 --- a/README.md +++ b/README.md @@ -520,6 +520,7 @@ Services to securely store your Docker images. - [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] - [JFrog Artifactory :yen:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well. - [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. +- [NORA](https://github.com/getnora-io/nora) - Lightweight multi-protocol artifact registry supporting Docker, Maven, npm, Cargo and PyPI in a single 32MB binary. Pull-through cache, Web UI, Prometheus metrics, RBAC auth. - [nscr](https://github.com/jhstatewide/nscr) - A light-weight, self-contained container registry that's easy to run and maintain. - [Quay.io :yen:](https://quay.io/) - Secure hosting for private Docker repositories. - [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry. From 2cb1cada8c82b36035aba6b25380dc20dd80d567 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Tue, 31 Mar 2026 20:13:48 +0200 Subject: [PATCH 283/327] fix gitattributes --- .gitattributes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index c67b749b6..52928e995 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,2 @@ *.css linguist-vendored -*.* linguist-language=Markdown +* linguist-language=Markdown From 2e165e65bd5def3257494eb876d8708b4bd7909e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 08:28:31 +0200 Subject: [PATCH 284/327] chore(deps): bump actions/setup-go from 6.3.0 to 6.4.0 (#1384) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.3.0 to 6.4.0. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/4b73464bb391d4059bd26b0524d20df3927bd417...4a3601121dd01d1626a1e23e37211e3254c1c06c) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: 6.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index d300688f2..9de191680 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 - - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # ratchet:actions/setup-go@v6 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 6a126029d..d1e27bc7e 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -22,7 +22,7 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 - - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # ratchet:actions/setup-go@v6 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 094518261..632dee9c0 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 - - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # ratchet:actions/setup-go@v6 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index a9e838484..8e9bfb80f 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 - - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # ratchet:actions/setup-go@v6 + - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: go-version-file: go.mod From 15d866e8c50c1a1b90221b1170432a7af53e6a42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 08:29:44 +0200 Subject: [PATCH 285/327] chore(deps): bump actions/deploy-pages from 4.0.5 to 5.0.0 (#1383) Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4.0.5 to 5.0.0. - [Release notes](https://github.com/actions/deploy-pages/releases) - [Commits](https://github.com/actions/deploy-pages/compare/d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e...cd2ce8fcbc39b97be8ca5fce6e763baed58fa128) --- updated-dependencies: - dependency-name: actions/deploy-pages dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- .github/workflows/deploy-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index d1e27bc7e..f5752685e 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -46,4 +46,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # ratchet:actions/deploy-pages@v4 + uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # ratchet:actions/deploy-pages@v5.0.0 From cc01a24f56191e5c6b7bfccc6762b10ed005046b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 18:18:34 +0200 Subject: [PATCH 286/327] chore(deps): bump actions/upload-pages-artifact from 4.0.0 to 5.0.0 (#1407) Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4.0.0 to 5.0.0. - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](https://github.com/actions/upload-pages-artifact/compare/7b1f4a764d45c48632c6b24a0339c27f5614fb0b...fc324d3547104276b827a68afc52ff2a11cc49c9) --- updated-dependencies: - dependency-name: actions/upload-pages-artifact dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index f5752685e..c447b2a4c 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -33,7 +33,7 @@ jobs: run: make website - name: Upload artifact - uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # ratchet:actions/upload-pages-artifact@v4 + uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # ratchet:actions/upload-pages-artifact@v5.0.0 with: path: ./website From acb22d742db16d5171bd6cd83f5d33e81d42960e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 18:25:43 +0200 Subject: [PATCH 287/327] chore(deps): bump actions/github-script from 8.0.0 to 9.0.0 (#1408) Bumps [actions/github-script](https://github.com/actions/github-script) from 8.0.0 to 9.0.0. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/ed597411d8f924073f98dfc5c65a23a2325f34cd...3a2844b7e9c422d3c10d287c895573f7108da1b3) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: 9.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 4 ++-- .github/workflows/health_report.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index 9de191680..bbd17a003 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -35,7 +35,7 @@ jobs: - name: Create/Update Issue for Broken Links if: steps.link_check.outputs.has_errors == 'true' - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # ratchet:actions/github-script@v9.0.0 with: script: | const fs = require('fs'); @@ -68,7 +68,7 @@ jobs: - name: Close Issue if No Errors if: steps.link_check.outputs.has_errors == 'false' - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # ratchet:actions/github-script@v9.0.0 with: script: | const issues = await github.rest.issues.listForRepo({ diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 632dee9c0..fdc40be5d 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -35,7 +35,7 @@ jobs: - name: Create/Update Issue with Health Report if: steps.report.outputs.has_report == 'true' - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # ratchet:actions/github-script@v9.0.0 with: script: | const fs = require('fs'); From 8b6190833eab7a2a3c6fa4a00b617cb6b91480f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 18:27:12 +0200 Subject: [PATCH 288/327] chore(deps): bump charm.land/bubbletea/v2 from 2.0.2 to 2.0.5 (#1409) Bumps [charm.land/bubbletea/v2](https://github.com/charmbracelet/bubbletea) from 2.0.2 to 2.0.5. - [Release notes](https://github.com/charmbracelet/bubbletea/releases) - [Commits](https://github.com/charmbracelet/bubbletea/compare/v2.0.2...v2.0.5) --- updated-dependencies: - dependency-name: charm.land/bubbletea/v2 dependency-version: 2.0.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 45 +++++++++++---------------------------------- 2 files changed, 16 insertions(+), 39 deletions(-) diff --git a/go.mod b/go.mod index 151520ba5..faa8a8c80 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/veggiemonk/awesome-docker go 1.26.0 require ( - charm.land/bubbletea/v2 v2.0.2 + charm.land/bubbletea/v2 v2.0.5 charm.land/lipgloss/v2 v2.0.2 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 @@ -14,8 +14,8 @@ require ( require ( github.com/charmbracelet/colorprofile v0.4.3 // indirect - github.com/charmbracelet/ultraviolet v0.0.0-20260330092749-0f94982c930b // indirect - github.com/charmbracelet/x/ansi v0.11.6 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20260413211237-bd52878bcec2 // indirect + github.com/charmbracelet/x/ansi v0.11.7 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect github.com/charmbracelet/x/termios v0.1.1 // indirect github.com/charmbracelet/x/windows v0.2.2 // indirect @@ -23,12 +23,12 @@ require ( github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.4.0 // indirect - github.com/mattn/go-runewidth v0.0.21 // indirect + github.com/mattn/go-runewidth v0.0.23 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect golang.org/x/sync v0.20.0 // indirect - golang.org/x/sys v0.42.0 // indirect + golang.org/x/sys v0.43.0 // indirect ) diff --git a/go.sum b/go.sum index d549fab11..ea378b178 100644 --- a/go.sum +++ b/go.sum @@ -1,26 +1,15 @@ -charm.land/bubbletea/v2 v2.0.1 h1:B8e9zzK7x9JJ+XvHGF4xnYu9Xa0E0y0MyggY6dbaCfQ= -charm.land/bubbletea/v2 v2.0.1/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ= -charm.land/bubbletea/v2 v2.0.2 h1:4CRtRnuZOdFDTWSff9r8QFt/9+z6Emubz3aDMnf/dx0= -charm.land/bubbletea/v2 v2.0.2/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ= -charm.land/lipgloss/v2 v2.0.0 h1:sd8N/B3x892oiOjFfBQdXBQp3cAkvjGaU5TvVZC3ivo= -charm.land/lipgloss/v2 v2.0.0/go.mod h1:w6SnmsBFBmEFBodiEDurGS/sdUY/u1+v72DqUzc6J14= +charm.land/bubbletea/v2 v2.0.5 h1:TQlLFqxo39AAHSVuOhJ5D3nH7O9Nk8JGinsfWQ4y1U4= +charm.land/bubbletea/v2 v2.0.5/go.mod h1:dvbsYZD+MHkdIZl+Z67D212hEvB+GII2tfH8f9SnoDw= charm.land/lipgloss/v2 v2.0.2 h1:xFolbF8JdpNkM2cEPTfXEcW1p6NRzOWTSamRfYEw8cs= charm.land/lipgloss/v2 v2.0.2/go.mod h1:KjPle2Qd3YmvP1KL5OMHiHysGcNwq6u83MUjYkFvEkM= -github.com/aymanbagabas/go-udiff v0.4.0 h1:TKnLPh7IbnizJIBKFWa9mKayRUBQ9Kh1BPCk6w2PnYM= -github.com/aymanbagabas/go-udiff v0.4.0/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= -github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY= -github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8= +github.com/aymanbagabas/go-udiff v0.4.1/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q= -github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8 h1:eyFRbAmexyt43hVfeyBofiGSEmJ7krjLOYt/9CF5NKA= -github.com/charmbracelet/ultraviolet v0.0.0-20260205113103-524a6607adb8/go.mod h1:SQpCTRNBtzJkwku5ye4S3HEuthAlGy2n9VXZnWkEW98= -github.com/charmbracelet/ultraviolet v0.0.0-20260309091805-903bfd0cf188 h1:J8v4kWJYCaxv1SLhLunN74S+jMteZ1f7Dae99ioq4Bo= -github.com/charmbracelet/ultraviolet v0.0.0-20260309091805-903bfd0cf188/go.mod h1:FzWNAbe1jEmI+GZljSnlaSA8wJjnNIZhWBLkTsAl6eg= -github.com/charmbracelet/ultraviolet v0.0.0-20260330092749-0f94982c930b h1:ASDO9RT6SNKTQN87jO2bRfxHFJq8cgeYdFzivY2gCeM= -github.com/charmbracelet/ultraviolet v0.0.0-20260330092749-0f94982c930b/go.mod h1:Vo8TffMf0q7Uho/n8e6XpBZvOWtd3g39yX+9P5rRutA= -github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8= -github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ= +github.com/charmbracelet/ultraviolet v0.0.0-20260413211237-bd52878bcec2 h1:mRAlb/WARLaCnCwAEBa8Zfk965GrYc414MhJamV4anw= +github.com/charmbracelet/ultraviolet v0.0.0-20260413211237-bd52878bcec2/go.mod h1:bAAz7dh/FTYfC+oiHavL4mX1tOIBZ0ZwYjSi3qE6ivM= +github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI= +github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ= github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA= github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f/go.mod h1:IfZAMTHB6XkZSeXUqriemErjAWCCzT0LwjKFYCZyw0I= github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= @@ -36,14 +25,10 @@ github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJ github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag= -github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lucasb-eyer/go-colorful v1.4.0 h1:UtrWVfLdarDgc44HcS7pYloGHJUjHV/4FwW4TvVgFr4= github.com/lucasb-eyer/go-colorful v1.4.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= -github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= -github.com/mattn/go-runewidth v0.0.21 h1:jJKAZiQH+2mIinzCJIaIG9Be1+0NR+5sz/lYEEjdM8w= -github.com/mattn/go-runewidth v0.0.21/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/mattn/go-runewidth v0.0.23 h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3RybWcw= +github.com/mattn/go-runewidth v0.0.23/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= @@ -60,25 +45,17 @@ github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= -github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE= -github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= github.com/yuin/goldmark v1.8.2 h1:kEGpgqJXdgbkhcOgBxkC0X0PmoPG1ZyoZ117rDVp4zE= github.com/yuin/goldmark v1.8.2/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= -golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= -golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= -golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= -golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= -golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= +golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= From 702f9ebdb1ba98d735892f009f8a6b356245e930 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2026 18:29:43 +0200 Subject: [PATCH 289/327] chore(deps): bump charm.land/lipgloss/v2 from 2.0.2 to 2.0.3 (#1410) Bumps [charm.land/lipgloss/v2](https://github.com/charmbracelet/lipgloss) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/charmbracelet/lipgloss/releases) - [Commits](https://github.com/charmbracelet/lipgloss/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: charm.land/lipgloss/v2 dependency-version: 2.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index faa8a8c80..5853c57ad 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.26.0 require ( charm.land/bubbletea/v2 v2.0.5 - charm.land/lipgloss/v2 v2.0.2 + charm.land/lipgloss/v2 v2.0.3 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 github.com/yuin/goldmark v1.8.2 diff --git a/go.sum b/go.sum index ea378b178..d2be5b8de 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ charm.land/bubbletea/v2 v2.0.5 h1:TQlLFqxo39AAHSVuOhJ5D3nH7O9Nk8JGinsfWQ4y1U4= charm.land/bubbletea/v2 v2.0.5/go.mod h1:dvbsYZD+MHkdIZl+Z67D212hEvB+GII2tfH8f9SnoDw= -charm.land/lipgloss/v2 v2.0.2 h1:xFolbF8JdpNkM2cEPTfXEcW1p6NRzOWTSamRfYEw8cs= -charm.land/lipgloss/v2 v2.0.2/go.mod h1:KjPle2Qd3YmvP1KL5OMHiHysGcNwq6u83MUjYkFvEkM= +charm.land/lipgloss/v2 v2.0.3 h1:yM2zJ4Cf5Y51b7RHIwioil4ApI/aypFXXVHSwlM6RzU= +charm.land/lipgloss/v2 v2.0.3/go.mod h1:7myLU9iG/3xluAWzpY/fSxYYHCgoKTie7laxk6ATwXA= github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= github.com/aymanbagabas/go-udiff v0.4.1/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= From d36a2e60b8cd146b361247740889a96596944af5 Mon Sep 17 00:00:00 2001 From: Adela Date: Mon, 20 Apr 2026 00:29:02 +0200 Subject: [PATCH 290/327] Add Bytebase to Development Environment section (#1404) Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1fe13556..de6017082 100644 --- a/README.md +++ b/README.md @@ -575,6 +575,7 @@ Services to securely store your Docker images. ### Development Environment - [Binci](https://github.com/binci/binci) :ice_cube: - Containerize your development workflow. (formerly DevLab by [TechnologyAdvice](https://github.com/TechnologyAdvice)). +- [Bytebase](https://github.com/bytebase/bytebase) - Database DevOps and CI/CD for MySQL, PostgreSQL, and more, with SQL review, schema migration, and access control. By [Bytebase](https://github.com/bytebase). - [coder](https://github.com/coder/coder) - Remote development machines powered by Terraform or Docker. - [construi](https://github.com/lstephen/construi) :ice_cube: - Run your builds inside a Docker defined environment. - [dde](https://github.com/whatwedo/dde) - Local development environment toolset based on Docker. By [whatwedo](https://github.com/whatwedo). From d117e2a52c0ca2f1147ce602504155e3489c6141 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 07:43:17 +0200 Subject: [PATCH 291/327] chore(deps): bump charm.land/bubbletea/v2 from 2.0.5 to 2.0.6 (#1415) Bumps [charm.land/bubbletea/v2](https://github.com/charmbracelet/bubbletea) from 2.0.5 to 2.0.6. - [Release notes](https://github.com/charmbracelet/bubbletea/releases) - [Commits](https://github.com/charmbracelet/bubbletea/compare/v2.0.5...v2.0.6) --- updated-dependencies: - dependency-name: charm.land/bubbletea/v2 dependency-version: 2.0.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 5853c57ad..6e0b62df6 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/veggiemonk/awesome-docker go 1.26.0 require ( - charm.land/bubbletea/v2 v2.0.5 + charm.land/bubbletea/v2 v2.0.6 charm.land/lipgloss/v2 v2.0.3 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 @@ -14,7 +14,7 @@ require ( require ( github.com/charmbracelet/colorprofile v0.4.3 // indirect - github.com/charmbracelet/ultraviolet v0.0.0-20260413211237-bd52878bcec2 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20260416155717-489999b90468 // indirect github.com/charmbracelet/x/ansi v0.11.7 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect github.com/charmbracelet/x/termios v0.1.1 // indirect diff --git a/go.sum b/go.sum index d2be5b8de..ca28d99ff 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,13 @@ -charm.land/bubbletea/v2 v2.0.5 h1:TQlLFqxo39AAHSVuOhJ5D3nH7O9Nk8JGinsfWQ4y1U4= -charm.land/bubbletea/v2 v2.0.5/go.mod h1:dvbsYZD+MHkdIZl+Z67D212hEvB+GII2tfH8f9SnoDw= +charm.land/bubbletea/v2 v2.0.6 h1:UHN/91OyuhaOFGSrBXQ/hMZD8IO1Uc4BvHlgHXL2WJo= +charm.land/bubbletea/v2 v2.0.6/go.mod h1:MH/D8ZLlN3op37vQvijKuU29g3rqTp+aQapURFonF9g= charm.land/lipgloss/v2 v2.0.3 h1:yM2zJ4Cf5Y51b7RHIwioil4ApI/aypFXXVHSwlM6RzU= charm.land/lipgloss/v2 v2.0.3/go.mod h1:7myLU9iG/3xluAWzpY/fSxYYHCgoKTie7laxk6ATwXA= github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= github.com/aymanbagabas/go-udiff v0.4.1/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q= -github.com/charmbracelet/ultraviolet v0.0.0-20260413211237-bd52878bcec2 h1:mRAlb/WARLaCnCwAEBa8Zfk965GrYc414MhJamV4anw= -github.com/charmbracelet/ultraviolet v0.0.0-20260413211237-bd52878bcec2/go.mod h1:bAAz7dh/FTYfC+oiHavL4mX1tOIBZ0ZwYjSi3qE6ivM= +github.com/charmbracelet/ultraviolet v0.0.0-20260416155717-489999b90468 h1:Q9fO0y1Zo5KB/5Vu8JZoLGm1N3RzF9bNj3Ao3xoR+Ac= +github.com/charmbracelet/ultraviolet v0.0.0-20260416155717-489999b90468/go.mod h1:bAAz7dh/FTYfC+oiHavL4mX1tOIBZ0ZwYjSi3qE6ivM= github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI= github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ= github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA= From cfc6df735c0a1f12072c04c3e314d79200f447b9 Mon Sep 17 00:00:00 2001 From: Joao Zanutto Date: Thu, 23 Apr 2026 19:05:44 -0300 Subject: [PATCH 292/327] Add EasyDocker to Terminal UI tools (#1411) Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index de6017082..3b53113e0 100644 --- a/README.md +++ b/README.md @@ -353,6 +353,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters). - [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [durableprogramming](https://github.com/durableprogramming). - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers. +- [easydocker](https://github.com/joao-zanutto/easydocker) - A Terminal UI highly inpired by k9s levaraging beatiful BubbleTea graphics. By [joao-zanutto](https://github.com/joao-zanutto). - [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box. - [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [jesseduffield](https://github.com/jesseduffield). - [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring. From 06944f13acef451402358f8cda75e1d9fc4ccf52 Mon Sep 17 00:00:00 2001 From: deadnews Date: Fri, 24 Apr 2026 05:08:20 +0700 Subject: [PATCH 293/327] feat: add pindock (#1395) Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b53113e0..99c7f65d0 100644 --- a/README.md +++ b/README.md @@ -297,6 +297,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Grype](https://github.com/anchore/grype) - A vulnerability scanner for container images, filesystems and SBOMs. By [Anchore](https://github.com/anchore). - [KICS](https://github.com/checkmarx/kics) - An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx). - [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP). +- [pindock](https://github.com/deadnews/pindock) - Pin and update Docker image digests in Dockerfiles and compose files. By [deadnews](https://github.com/deadnews). - [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) - :yen: (Previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. - [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [dormstern](https://github.com/dormstern). - [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. By [Anchore](https://github.com/anchore). From 11f5645edf75e6703eb819e3200feaf1a2a7edf1 Mon Sep 17 00:00:00 2001 From: idesyatov <19306589+idesyatov@users.noreply.github.com> Date: Tue, 28 Apr 2026 23:42:31 +0300 Subject: [PATCH 294/327] Add wharf to Terminal section (#1397) Wharf is a terminal UI for managing Docker Compose stacks, inspired by k9s. - Written in Go with Bubbletea/Lipgloss - Vim-style navigation (hjkl, gg/G, /, :command) - Real-time CPU/MEM/Network monitoring with braille charts - Container file browser, exec with shell detection - SSH remote Docker host support - Command mode with Tab-autocomplete - Health checks, bulk operations, custom commands - Themes (dark/light/custom), mouse support - Single binary, zero dependencies - Available via Homebrew and GitHub Releases (5 platforms) https://github.com/idesyatov/wharf --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 99c7f65d0..1ca22ef4d 100644 --- a/README.md +++ b/README.md @@ -361,6 +361,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard),. - [swarmcli](https://github.com/Eldara-Tech/swarmcli) - Swarm Management at the speed of thought — with real-time log streaming, instant shell access to containers, seamless port forwarding, and on-demand secret reveal capabilities, giving you full control over your Docker Swarm without breaking your flow. - [tdocker](https://github.com/pivovarit/tdocker) - A `docker ps` replacement for everyday container operations by [@pivovarit](https://github.com/pivovarit). +- [wharf](https://github.com/idesyatov/wharf) - A k9s-inspired TUI for Docker Compose with vim-style navigation, real-time CPU/MEM monitoring with braille charts, container file browser, SSH remote host support, and command mode. By [@idesyatov](https://github.com/idesyatov) ##### CLI tools From a4617e6a2ee785ae9c1143001f1a00a8ef89366e Mon Sep 17 00:00:00 2001 From: Manuel <81876616+ManuR93@users.noreply.github.com> Date: Fri, 15 May 2026 01:37:57 +0200 Subject: [PATCH 295/327] Remove outdated Docker links from README #HSFDPMUW (#1430) Removed a link to a blog about Docker from the Useful Resources section. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 1ca22ef4d..f3ba23212 100644 --- a/README.md +++ b/README.md @@ -681,7 +681,6 @@ Services to securely store your Docker images. # Useful Resources -- **[Valuable Docker Links](http://nane.kratzke.pages.mylab.th-luebeck.de/about/blog/2014/08/24/valuable-docker-links/)** High quality articles about docker! **MUST SEE** - [Cloud Native Landscape](https://github.com/cncf/landscape) - [Docker Blog](https://www.docker.com/blog/) - Regular updates about Docker, the community and tools. - [Docker Certification](https://intellipaat.com/docker-training-course/?US) :yen: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. From d2a717548c581e70fb284be7aa4abe5a79c9bc10 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sun, 17 May 2026 20:55:36 +0200 Subject: [PATCH 296/327] fix(lint): add trailing period to wharf description (#1436) Resolves the only outstanding `description-period` lint error. Co-authored-by: Claude Opus 4.7 (1M context) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3ba23212..af6b1ec80 100644 --- a/README.md +++ b/README.md @@ -361,7 +361,7 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard),. - [swarmcli](https://github.com/Eldara-Tech/swarmcli) - Swarm Management at the speed of thought — with real-time log streaming, instant shell access to containers, seamless port forwarding, and on-demand secret reveal capabilities, giving you full control over your Docker Swarm without breaking your flow. - [tdocker](https://github.com/pivovarit/tdocker) - A `docker ps` replacement for everyday container operations by [@pivovarit](https://github.com/pivovarit). -- [wharf](https://github.com/idesyatov/wharf) - A k9s-inspired TUI for Docker Compose with vim-style navigation, real-time CPU/MEM monitoring with braille charts, container file browser, SSH remote host support, and command mode. By [@idesyatov](https://github.com/idesyatov) +- [wharf](https://github.com/idesyatov/wharf) - A k9s-inspired TUI for Docker Compose with vim-style navigation, real-time CPU/MEM monitoring with braille charts, container file browser, SSH remote host support, and command mode. By [@idesyatov](https://github.com/idesyatov). ##### CLI tools From 236874b6dc52e841687f7cc4b0b37e5e0b9ae815 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sun, 17 May 2026 20:56:03 +0200 Subject: [PATCH 297/327] Prune entries that aren't Docker-focused (#1435) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove 11 listings whose Docker connection is incidental — generic tools (system monitors, an IDE framework, a homepage app, a DB DevOps platform, etc.) that happen to ship as containers rather than projects built for Docker. Removed: Monitoring: Checkmate, Glances, HertzBeat, Sidekick Networking: MyIP Base Tools: SparkView Dev Env: Bytebase Web UI: Kubevious, Mafl, netdata, Theia Co-authored-by: Claude Opus 4.7 (1M context) --- README.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/README.md b/README.md index af6b1ec80..0d8693f8c 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [ADRG](https://github.com/jaldertech/adrg) - Dynamic Docker resource governor using cgroups v2 to manage system load. - [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. -- [Checkmate](https://github.com/bluewave-labs/checkmate) - Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. - [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [zorak1103](https://github.com/zorak1103). - [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) :ice_cube: - Monitor and send alerts based on docker container resource usage/statistics. - [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) :ice_cube: - Reconfigures Prometheus when a new service is updated or deployed automatically. @@ -192,9 +191,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [amir20](https://github.com/amir20). - [Drydock](https://github.com/CodesWhat/drydock) - Container update monitoring with web dashboard, 23 registry providers, 20 notification triggers, and distributed agent architecture. By [CodesWhat](https://github.com/CodesWhat). - [Dynatrace](https://docs.dynatrace.com/docs/observe/infrastructure-observability/container-platform-monitoring) - :yen: Monitor containerized applications without installing agents or modifying your Run commands. -- [Glances](https://github.com/nicolargo/glances) - A cross-platform curses-based system monitoring tool written in Python. - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [vegasbrianc][vegasbrianc]. -- [HertzBeat](https://github.com/dromara/hertzbeat) - An open-source real-time monitoring system with custom-monitor and agentless. - [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) :ice_cube: - InfluxDB Time series DB in combination with Grafana and cAdvisor. - [Logspout](https://github.com/gliderlabs/logspout) :ice_cube: - Log routing for Docker container logs. @@ -202,7 +199,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [monit-docker](https://github.com/decryptus/monit-docker) :ice_cube: - Monitor docker containers resources usage or status and execute docker commands or inside containers. [decryptus][decryptus]. - [NexClipper](https://github.com/NexClipper/NexClipper) :ice_cube: - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. - [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) :ice_cube: - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. -- [Sidekick](https://github.com/runsidekick/sidekick) :ice_cube: - Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. - [SwarmAlert](https://github.com/gpulido/SwarmAlert) :ice_cube: - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. - [Wiremap](https://github.com/codeofmario/wiremap) - A self-hosted visual Docker network topology explorer with real-time log streaming, live stats, embedded terminal, and container inspection. By [codeofmario](https://github.com/codeofmario). - [Zabbix Docker](https://github.com/gomex/docker-zabbix) :ice_cube: - Monitor containers automatically using zabbix LLD feature. @@ -212,7 +208,6 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. - [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [coreos][coreos]. - [Freeflow](https://github.com/Microsoft/Freeflow) :ice_cube: - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [Microsoft](https://github.com/Microsoft). -- [MyIP](https://github.com/jason5ng32/MyIP) - All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [jason5ng32](https://github.com/jason5ng32). - [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. - [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [jpetazzo][jpetazzo]. @@ -400,16 +395,12 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). - [dockge](https://github.com/louislam/dockge) - Easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager. - [Komodo](https://github.com/mbecker20/komodo) - A tool to build and deploy software on many servers. -- [Kubevious](https://github.com/kubevious/kubevious) :ice_cube: - A highly visual web UI for Kubernetes which renders configuration and state in an application centric way. -- [Mafl](https://github.com/hywax/mafl) - Minimalistic flexible homepage. -- [netdata](https://github.com/netdata/netdata) - Real-time performance monitoring. - [OctoLinker](https://github.com/OctoLinker/OctoLinker) :ice_cube: - A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. - [Portainer](https://github.com/portainer/portainer) - A lightweight management UI for managing your Docker hosts or Docker Swarm clusters. - [Rapid Dashboard](https://github.com/ozlerhakan/rapid) :ice_cube: - A simple query dashboard to use Docker Remote API. - [Seagull](https://github.com/tobegit3hub/seagull) :ice_cube: - Friendly Web UI to monitor docker daemon. - [Swarmpit](https://github.com/swarmpit/swarmpit) - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. - [Swirl](https://github.com/cuigh/swirl) :ice_cube: - Swirl is a web management tool for Docker, focused on swarm cluster By [cuigh](https://github.com/cuigh/). -- [Theia](https://github.com/eclipse-theia/theia) - Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. - [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [fr4nsys](https://github.com/fr4nsys). ## Docker Images @@ -431,7 +422,6 @@ Tools and applications that are either installed inside containers or designed t - [lstags](https://github.com/ivanilves/lstags) :ice_cube: - Sync Docker images across registries. - [microcheck](https://github.com/tarampampam/microcheck) - Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. - [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. -- [SparkView](https://github.com/beyondssl/sparkview-container) - Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. - [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa). - [sue](https://github.com/theAkito/sue) :ice_cube: - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito]. - [supercronic](https://github.com/aptible/supercronic) - Crontab-compatible job runner, designed specifically to run in containers. @@ -578,7 +568,6 @@ Services to securely store your Docker images. ### Development Environment - [Binci](https://github.com/binci/binci) :ice_cube: - Containerize your development workflow. (formerly DevLab by [TechnologyAdvice](https://github.com/TechnologyAdvice)). -- [Bytebase](https://github.com/bytebase/bytebase) - Database DevOps and CI/CD for MySQL, PostgreSQL, and more, with SQL review, schema migration, and access control. By [Bytebase](https://github.com/bytebase). - [coder](https://github.com/coder/coder) - Remote development machines powered by Terraform or Docker. - [construi](https://github.com/lstephen/construi) :ice_cube: - Run your builds inside a Docker defined environment. - [dde](https://github.com/whatwedo/dde) - Local development environment toolset based on Docker. By [whatwedo](https://github.com/whatwedo). From 48dacee4bd0938f5900633b44ec6e6c1380a256a Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sun, 17 May 2026 21:03:23 +0200 Subject: [PATCH 298/327] Clarify project goal --- .claude/settings.local.json | 14 -- .gitignore | 1 + .markdownlint.jsonc | 9 + CLAUDE.md | 1 + README.md | 387 ++++++++++++++++++------------------ 5 files changed, 209 insertions(+), 203 deletions(-) delete mode 100644 .claude/settings.local.json create mode 100644 .markdownlint.jsonc create mode 120000 CLAUDE.md diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index 4c3ffc59d..000000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "permissions": { - "allow": [ - "mcp__plugin_context-mode_context-mode__ctx_batch_execute", - "mcp__plugin_context7_context7__resolve-library-id", - "mcp__plugin_context7_context7__query-docs", - "Bash(go:*)", - "Bash(./awesome-docker:*)", - "Bash(tmux send-keys:*)", - "Bash(tmux capture-pane:*)", - "Bash(tmux:*)" - ] - } -} diff --git a/.gitignore b/.gitignore index b3f098dbc..85afb4dce 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ website/table.html # Go /awesome-docker +/.claude diff --git a/.markdownlint.jsonc b/.markdownlint.jsonc new file mode 100644 index 000000000..56cb7a3d3 --- /dev/null +++ b/.markdownlint.jsonc @@ -0,0 +1,9 @@ +{ + "MD007": { + "indent": 4 + }, + "MD012": { + "maximum": 2 + }, + "MD013": false, +} diff --git a/CLAUDE.md b/CLAUDE.md new file mode 120000 index 000000000..47dc3e3d8 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/README.md b/README.md index 0d8693f8c..fb0078365 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,21 @@ # Awesome Docker [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)][sindresorhus] [![Track Awesome List](https://www.trackawesomelist.com/badge.svg)](https://www.trackawesomelist.com/veggiemonk/awesome-docker/)[![Last Commit](https://img.shields.io/github/last-commit/veggiemonk/awesome-docker)](https://github.com/veggiemonk/awesome-docker/commits/main) -> A curated list of Docker resources and projects +> A curated list of projects for Docker. If you would like to contribute, please read [CONTRIBUTING.md][contributing] first. -It contains a lot of tips and guidelines to help keep things organized. -Just click [README.md][editreadme] to submit a [pull request][editreadme]. -If this list is not complete, you can [contribute][editreadme] to make it so. Here is a great video tutorial to learn how to [contribute on Github](https://egghead.io/lessons/javascript-identifying-how-to-contribute-to-an-open-source-project-on-github). +If this list is not complete, you can contribute to make it so. + +**The project has to be for Docker, not just using Docker.** > **Please**, help organize these resources so that they are _easy to find_ and _understand_ for newcomers. See how to **[Contribute][contributing]** for tips! **_If you see a link here that is not (any longer) a good fit, you can fix it by submitting a [pull request][editreadme] to improve this file. Thank you!_** -The creators and maintainers of this list do not receive any form of payment to accept a change made by any contributor. This page is not an official Docker product in any way. It is a list of links to projects and is maintained by volunteers. Everybody is welcome to contribute. The goal of this repo is to index open-source projects, not to advertise for profit. +The creators and maintainers of this list do not receive any form of payment to accept a change made by any contributor. +This page is not an official Docker product in any way. +It is a list of links to projects and is maintained by volunteers. +Everybody is welcome to contribute. +The goal of this repo is to index open-source projects, not to advertise for profit. # Contents @@ -22,65 +26,65 @@ The creators and maintainers of this list do not receive any form of payment to - [Where to start](#where-to-start) - [Where to start (Windows)](#where-to-start-windows) - [Projects](#projects) - - [Container Operations](#container-operations) - - [Container Composition](#container-composition) - - [Deployment and Infrastructure](#deployment-and-infrastructure) - - [Monitoring](#monitoring) - - [Networking](#networking) - - [Orchestration](#orchestration) - - [PaaS](#paas) - - [Reverse Proxy](#reverse-proxy) - - [Runtime](#runtime) - - [Security](#security) - - [Service Discovery](#service-discovery) - - [Volume Management / Data](#volume-management--data) - - [User Interface](#user-interface) - - [IDE integrations](#ide-integrations) - - [Desktop](#desktop) - - [Terminal](#terminal) - - [Terminal UI](#terminal-ui) - - [CLI tools](#cli-tools) - - [Other](#other) - - [Web](#web) - - [Docker Images](#docker-images) - - [Base Tools](#base-tools) - - [Builder](#builder) - - [Dockerfile](#dockerfile) - - [Linter](#linter) - - [Metadata](#metadata) - - [Registry](#registry) - - [Development with Docker](#development-with-docker) - - [API Client](#api-client) - - [CI/CD](#cicd) - - [Development Environment](#development-environment) - - [Garbage Collection](#garbage-collection) - - [Serverless](#serverless) - - [Testing](#testing) - - [Wrappers](#wrappers) - - [Services based on Docker (mostly :yen:)](#services-based-on-docker-mostly-yen) - - [CI Services](#ci-services) - - [CaaS](#caas) - - [Monitoring Services](#monitoring-services) + - [Container Operations](#container-operations) + - [Container Composition](#container-composition) + - [Deployment and Infrastructure](#deployment-and-infrastructure) + - [Monitoring](#monitoring) + - [Networking](#networking) + - [Orchestration](#orchestration) + - [PaaS](#paas) + - [Reverse Proxy](#reverse-proxy) + - [Runtime](#runtime) + - [Security](#security) + - [Service Discovery](#service-discovery) + - [Volume Management / Data](#volume-management--data) + - [User Interface](#user-interface) + - [IDE integrations](#ide-integrations) + - [Desktop](#desktop) + - [Terminal](#terminal) + - [Terminal UI](#terminal-ui) + - [CLI tools](#cli-tools) + - [Other](#other) + - [Web](#web) + - [Docker Images](#docker-images) + - [Base Tools](#base-tools) + - [Builder](#builder) + - [Dockerfile](#dockerfile) + - [Linter](#linter) + - [Metadata](#metadata) + - [Registry](#registry) + - [Development with Docker](#development-with-docker) + - [API Client](#api-client) + - [CI/CD](#cicd) + - [Development Environment](#development-environment) + - [Garbage Collection](#garbage-collection) + - [Serverless](#serverless) + - [Testing](#testing) + - [Wrappers](#wrappers) + - [Services based on Docker (mostly :yen:)](#services-based-on-docker-mostly-yen) + - [CI Services](#ci-services) + - [CaaS](#caas) + - [Monitoring Services](#monitoring-services) - [Useful Resources](#useful-resources) - - [Awesome Lists](#awesome-lists) - - [Demos and Examples](#demos-and-examples) - - [Good Tips](#good-tips) - - [Raspberry Pi \& ARM](#raspberry-pi--arm) - - [Security](#security-1) - - [Videos](#videos) + - [Awesome Lists](#awesome-lists) + - [Demos and Examples](#demos-and-examples) + - [Good Tips](#good-tips) + - [Raspberry Pi \& ARM](#raspberry-pi--arm) + - [Security](#security-1) + - [Videos](#videos) - [Communities and Meetups](#communities-and-meetups) - - [Brazilian](#brazilian) - - [English](#english) - - [Russian](#russian) - - [Spanish](#spanish) - - [Stargazers over time](#stargazers-over-time) + - [Brazilian](#brazilian) + - [English](#english) + - [Russian](#russian) + - [Spanish](#spanish) + - [Stargazers over time](#stargazers-over-time) # Legend -- Monetized :yen: -- Stale (2+ years inactive) :ice_cube: +- Monetized :yen: +- Stale (2+ years inactive) :ice_cube: # What is Docker @@ -90,57 +94,57 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) # Where to start -- [Benefits of using Docker](https://semaphore.io/blog/docker-benefits) for development and delivery, with a practical roadmap for adoption. +- [Benefits of using Docker](https://semaphore.io/blog/docker-benefits) for development and delivery, with a practical roadmap for adoption. - [Bootstrapping Microservices](https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform) - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster. -- [Docker Curriculum](https://github.com/prakhar1989/docker-curriculum): A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service. -- [Docker Documentation](https://docs.docker.com/): the official documentation. -- [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. -- [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. - -- [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. -- [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. -- [Docker Training](https://training.mirantis.com) :yen: -- [Dockerlings](https://github.com/furkan/dockerlings): Learn docker from inside your terminal, with a modern TUI and bite sized exercises (by [furkan](https://github.com/furkan)) - -- [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... -- [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [dwyl](https://github.com/dwyl) +- [Docker Curriculum](https://github.com/prakhar1989/docker-curriculum): A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service. +- [Docker Documentation](https://docs.docker.com/): the official documentation. +- [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. +- [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. + +- [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. +- [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. +- [Docker Training](https://training.mirantis.com) :yen: +- [Dockerlings](https://github.com/furkan/dockerlings): Learn docker from inside your terminal, with a modern TUI and bite sized exercises (by [furkan](https://github.com/furkan)) + +- [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... +- [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [dwyl](https://github.com/dwyl) - [Learn Docker (Visually)](https://pagertree.com/learn/docker/overview) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. -- [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. -- [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This Spanish guide contains the use of basic docker commands with real life examples. -- [Setting Python Development Environment with VScode and Docker](https://github.com/RamiKrispin/vscode-python): A step-by-step tutorial for setting up a dockerized Python development environment with VScode, Docker, and the Dev Container extension. -- [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. +- [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. +- [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This Spanish guide contains the use of basic docker commands with real life examples. +- [Setting Python Development Environment with VScode and Docker](https://github.com/RamiKrispin/vscode-python): A step-by-step tutorial for setting up a dockerized Python development environment with VScode, Docker, and the Dev Container extension. +- [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. **Cheatsheets** by -- [eon01](https://github.com/eon01/DockerCheatSheet) -- [dimonomid](https://github.com/dimonomid/docker-quick-ref) (PDF) -- [JensPiegsa](https://github.com/JensPiegsa/docker-cheat-sheet) -- [wsargent](https://github.com/wsargent/docker-cheat-sheet) (Most popular) +- [eon01](https://github.com/eon01/DockerCheatSheet) +- [dimonomid](https://github.com/dimonomid/docker-quick-ref) (PDF) +- [JensPiegsa](https://github.com/JensPiegsa/docker-cheat-sheet) +- [wsargent](https://github.com/wsargent/docker-cheat-sheet) (Most popular) # Where to start (Windows) -- [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [kaitoedter](https://twitter.com/kaitoedter) +- [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [kaitoedter](https://twitter.com/kaitoedter) - [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. -- [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker -- [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] -- [Running a Legacy ASP.NET App in a Windows Container](https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container/) Steps for Dockerizing a legacy ASP.NET app and running as a Windows container +- [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker +- [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] +- [Running a Legacy ASP.NET App in a Windows Container](https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container/) Steps for Dockerizing a legacy ASP.NET app and running as a Windows container - [Windows Containers and Docker: The 101](https://www.youtube.com/watch?v=N7SG2wEyQtM) - A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps. -- [Windows Containers Quick Start](https://learn.microsoft.com/en-us/virtualization/windowscontainers/about/) Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016 +- [Windows Containers Quick Start](https://learn.microsoft.com/en-us/virtualization/windowscontainers/about/) Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016 --- # Projects -- Moby = open source development -- Docker CE = free product release based on Moby -- Docker EE = commercial product release based on Docker CE. +- Moby = open source development +- Docker CE = free product release based on Moby +- Docker EE = commercial product release based on Docker CE. > Docker EE is on the same code base as Docker CE, so also built from Moby, with commercial components added, such as "docker data center / universal control plane" -- [Moby](https://github.com/moby/moby) -- [Docker Images](https://hub.docker.com) -- [Docker Compose](https://github.com/docker/compose/) (Define and run multi-container applications with Docker) -- [Docker Registry][distribution] (The Docker toolset to pack, ship, store, and deliver content) +- [Moby](https://github.com/moby/moby) +- [Docker Images](https://hub.docker.com) +- [Docker Compose](https://github.com/docker/compose/) (Define and run multi-container applications with Docker) +- [Docker Registry][distribution] (The Docker toolset to pack, ship, store, and deliver content) ## Container Operations @@ -157,7 +161,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [LLM Harbor](https://github.com/av/harbor) - A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [av](https://github.com/av). - [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. - [podman-compose](https://github.com/containers/podman-compose) - A script to run docker-compose.yml using podman. -- [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [roquie](https://github.com/roquie) +- [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [roquie](https://github.com/roquie) - [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [alexaandrov](https://github.com/alexaandrov). ### Deployment and Infrastructure @@ -203,9 +207,10 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Wiremap](https://github.com/codeofmario/wiremap) - A self-hosted visual Docker network topology explorer with real-time log streaming, live stats, embedded terminal, and container inspection. By [codeofmario](https://github.com/codeofmario). - [Zabbix Docker](https://github.com/gomex/docker-zabbix) :ice_cube: - Monitor containers automatically using zabbix LLD feature. - [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) :ice_cube: - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. + ### Networking -- [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. +- [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. - [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [coreos][coreos]. - [Freeflow](https://github.com/Microsoft/Freeflow) :ice_cube: - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [Microsoft](https://github.com/Microsoft). - [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. @@ -241,7 +246,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Hephy Workflow](https://github.com/teamhephy/workflow) :ice_cube: - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow). - [Krane](https://github.com/krane/krane) :ice_cube: - Toolset for managing container workloads on remote servers. - [Nanobox](https://github.com/nanobox-io/nanobox) :ice_cube: - :yen: An application development platform that creates local environments that can then be deployed and scaled in the cloud. -- [OpenShift][openshift] - An open source PaaS built on [Kubernetes][kubernetes] and optimized for Dockerized app development and deployment by [Red Hat](https://www.redhat.com/en) +- [OpenShift][openshift] - An open source PaaS built on [Kubernetes][kubernetes] and optimized for Dockerized app development and deployment by [Red Hat](https://www.redhat.com/en) - [Tsuru](https://github.com/tsuru/tsuru) - Tsuru is an extensible and open source Platform as a Service software. ### Reverse Proxy @@ -256,7 +261,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) - [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [JrCs](https://github.com/JrCs). - [mesh-router](https://github.com/Yundera/mesh-router) - Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [Yundera](https://github.com/Yundera). - [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [jc21](https://github.com/jc21). -- [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [jwilder][jwilder] +- [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [jwilder][jwilder] - [OpenResty Manager](https://github.com/Safe3/openresty-manager) - The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. By [Safe3](https://github.com/Safe3/). - [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [flavioaiello](https://github.com/flavioaiello). - [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [EmileVauge](https://github.com/emilevauge). @@ -303,7 +308,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Service Discovery -- [docker-consul](https://github.com/gliderlabs/docker-consul) by [progrium][progrium] +- [docker-consul](https://github.com/gliderlabs/docker-consul) by [progrium][progrium] - [docker-dns](https://github.com/bytesharky/docker-dns) - Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. `.docker`) on the host to simplify service discovery. - [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [etcd-io](https://github.com/etcd-io) (former part of CoreOS). - [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices. @@ -311,23 +316,24 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker/) ### Volume Management / Data -- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :yen:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [blockbridge](https://github.com/blockbridge) -- - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. -- [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [offen](https://github.com/offen) -- [duplicacy-cli-cron](https://github.com/GeiserX/duplicacy-cli-cron) - Docker-based encrypted dual-storage backup automation using Duplicacy CLI with cross-site redundancy and Telegram notifications. By [GeiserX](https://github.com/GeiserX). -- [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [ContainX][containx] +- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :yen:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [blockbridge](https://github.com/blockbridge) + - - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. +- [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [offen](https://github.com/offen) +- [duplicacy-cli-cron](https://github.com/GeiserX/duplicacy-cli-cron) - Docker-based encrypted dual-storage backup automation using Duplicacy CLI with cross-site redundancy and Telegram notifications. By [GeiserX](https://github.com/GeiserX). +- [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [ContainX][containx] - [portworx](https://portworx.com) - :yen: Decentralized storage solution for persistent, shared and replicated volumes. - [quobyte](https://www.quobyte.com/) - :yen: Fully fault-tolerant distributed file system with a docker volume driver. -- [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By[thecodeteam](https://github.com/thecodeteam) (DELL Technologies) +- [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By[thecodeteam](https://github.com/thecodeteam) (DELL Technologies) - [Storidge](https://github.com/Storidge/quick-start) :ice_cube: - :yen: Software-defined Persistent Storage for Kubernetes and Docker Swarm. + ### User Interface #### IDE integrations -- JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) -- Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) -- [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [Silex](https://github.com/Silex) +- JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) +- Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) +- [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [Silex](https://github.com/Silex) #### Desktop @@ -341,9 +347,10 @@ Native desktop applications for managing and monitoring docker hosts and cluster #### Terminal ##### Terminal UI + - [d4s](https://github.com/jr-k/d4s) - A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s. - [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). -- [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [byrnedo] +- [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [byrnedo] - [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers. - [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface,. - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters). @@ -376,14 +383,16 @@ Native desktop applications for managing and monitoring docker hosts and cluster - [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [segersniels](https://github.com/segersniels). - [tsaotun](https://github.com/qazbnm456/tsaotun) :ice_cube: - Python based Assistance for Docker. + ##### Other - [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) :ice_cube: - Search the Docker Registry with the Dext smart launcher. By [vutran](https://github.com/vutran). - [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) :ice_cube: - SSH Server for Docker containers ~ Because every container should be accessible. By [jeroenpeeters](https://github.com/jeroenpeeters). -- [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [spotify][spotify] +- [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [spotify][spotify] - [MultiDocker](https://github.com/marty90/multidocker) :ice_cube: - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. - [Powerline-Docker](https://github.com/adrianmo/powerline-docker) :ice_cube: - A Powerline segment for showing the status of Docker containers. + #### Web - [Arcane](https://github.com/getarcaneapp/arcane) - An easy and modern Docker management platform, built with everybody in mind. By [getarcaneapp](https://github.com/getarcaneapp). @@ -412,7 +421,7 @@ Tools and applications that are either installed inside containers or designed t - [amicontained](https://github.com/genuinetools/amicontained) :ice_cube: - Container introspection tool. Find out what container runtime is being used as well as features available. - [Chaperone](https://github.com/garywiz/chaperone) :ice_cube: - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. - [ckron](https://github.com/nicomt/ckron) - A cron-style job scheduler for docker,. -- [CoreOS][coreos] - Linux for Massive Server Deployments +- [CoreOS][coreos] - Linux for Massive Server Deployments - [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system,. - [docker-alpine](https://github.com/gliderlabs/docker-alpine) :ice_cube: - A super small Docker base image _(5MB)_ using Alpine Linux. - [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data. @@ -425,8 +434,8 @@ Tools and applications that are either installed inside containers or designed t - [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa). - [sue](https://github.com/theAkito/sue) :ice_cube: - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito]. - [supercronic](https://github.com/aptible/supercronic) - Crontab-compatible job runner, designed specifically to run in containers. - - [TrivialRC](https://github.com/vorakl/TrivialRC) :ice_cube: - A minimalistic Runtime Configuration system and process manager for containers [vorakl](https://github.com/vorakl). + ### Builder Applications designed to help or simplify building **new** images @@ -443,7 +452,7 @@ Applications designed to help or simplify building **new** images - [docker-make](https://github.com/CtripCloud/docker-make) :ice_cube: - Build, tag,and push a bunch of related docker images via a single command. - [docker-repack](https://github.com/orf/docker-repack) - Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. By [orf](https://github.com/orf). - [docker-replay](https://github.com/bcicen/docker-replay) :ice_cube: - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen). -- [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. +- [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. - [Dockly](https://github.com/swipely/dockly) :ice_cube: - Dockly is a gem made to ease the pain of packaging an application in Docker. - [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [jamesbrink](https://github.com/jamesbrink). - [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. @@ -457,10 +466,11 @@ Applications designed to help or simplify building **new** images - [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles. - [Whales](https://github.com/Gueils/whales) :ice_cube: - A tool to automatically dockerize your applications. + ### Dockerfile - [chaperone-docker](https://github.com/garywiz/chaperone-docker) :ice_cube: - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. -- [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. +- [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. - [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. - [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [PatrickHoefler](https://github.com/patrickhoefler). - [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. @@ -468,15 +478,15 @@ Applications designed to help or simplify building **new** images Examples by: -- [0xy](https://gitlab.com/0xy/dockerfiles) -- [arun-gupta](https://github.com/arun-gupta/docker-images) -- [awesome-startup](https://github.com/awesome-startup/docker-compose) -- [crosbymichael](https://github.com/crosbymichael/Dockerfiles) -- [jessfraz](https://github.com/jessfraz/dockerfiles) -- [komljen](https://github.com/komljen/dockerfile-examples) -- [kstaken](https://github.com/kstaken/dockerfile-examples) -- [ondrejmo](https://github.com/ondrejmo/Dockerfiles) -- [vimagick](https://github.com/vimagick/dockerfiles) +- [0xy](https://gitlab.com/0xy/dockerfiles) +- [arun-gupta](https://github.com/arun-gupta/docker-images) +- [awesome-startup](https://github.com/awesome-startup/docker-compose) +- [crosbymichael](https://github.com/crosbymichael/Dockerfiles) +- [jessfraz](https://github.com/jessfraz/dockerfiles) +- [komljen](https://github.com/komljen/dockerfile-examples) +- [kstaken](https://github.com/kstaken/dockerfile-examples) +- [ondrejmo](https://github.com/ondrejmo/Dockerfiles) +- [vimagick](https://github.com/vimagick/dockerfiles) ### Linter @@ -502,15 +512,15 @@ Services to securely store your Docker images. - [Container Registry Service :yen:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. - [Cycle.io :yen:](https://cycle.io/) - Bare-metal container hosting. - [DigitalOcean :yen:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. -- [Docker Hub](https://hub.docker.com/) provided by Docker Inc. -- [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content +- [Docker Hub](https://hub.docker.com/) provided by Docker Inc. +- [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content - [Docket](https://github.com/netvarun/docket) :ice_cube: - Custom docker registry that allows for lightning fast deploys through bittorrent. - [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. -- [GCP Artifact Registry :yen:](https://cloud.google.com/artifact-registry/docs) Fast, private Docker image storage on Google Cloud Platform. +- [GCP Artifact Registry :yen:](https://cloud.google.com/artifact-registry/docs) Fast, private Docker image storage on Google Cloud Platform. - [Gitea Container Registry](https://docs.gitea.com/usage/packages/container) - Integrated Docker registry in Gitea, ideal for private, small-scale image hosting. - [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - GitHub's solution for storing and managing Docker images, with tight integration into GitHub Actions. - [GitLab Container Registry](https://docs.gitlab.com/user/packages/container_registry/) - Registry focused on using its images in GitLab CI. -- [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] +- [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] - [JFrog Artifactory :yen:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well. - [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. - [NORA](https://github.com/getnora-io/nora) - Lightweight multi-protocol artifact registry supporting Docker, Maven, npm, Cargo and PyPI in a single 32MB binary. Pull-through cache, Web UI, Prometheus metrics, RBAC auth. @@ -607,13 +617,14 @@ Services to securely store your Docker images. - [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas). - [SCAR](https://github.com/grycap/scar) :ice_cube: - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda). + ### Testing - [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [GoogleContainerTools][googlecontainertools]. - [dgoss](https://github.com/goss-org/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. - [DockerSpec](https://github.com/zuazo/dockerspec) :ice_cube: - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [zuazo](https://github.com/zuazo). - [EZDC](https://github.com/lynchborg/ezdc) :ice_cube: - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [byrnedo]. -- [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [chef](https://github.com/chef) +- [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [chef](https://github.com/chef) - [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/). - [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. - [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [alexei-led](https://github.com/alexei-led). @@ -641,7 +652,7 @@ Services to securely store your Docker images. - [CodeFresh](https://codefresh.io) - :yen: Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. - [CodeShip](https://www.cloudbees.com/blog/how-to-run-codeship-parallel-test-pipelines-efficiently-for-optimal-ci-parallelization) - :yen: Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. - [ConcourseCI](https://concourse-ci.org) - :yen: A CI SaaS platform for developers and DevOps teams pipeline oriented. -- [Semaphore CI](https://semaphore.io/) :yen: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. +- [Semaphore CI](https://semaphore.io/) :yen: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. - [TravisCI](https://www.travis-ci.com/) - :yen: A Free github projects continuous integration Saas platform for developers and Devops. ### CaaS @@ -661,7 +672,7 @@ Services to securely store your Docker images. - [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. - [Better Stack](https://betterstack.com/community/guides/scaling-docker/) - :yen: A Docker-compatible observability stack that delivers robust log aggregation and uptime monitoring capabilities for various software application. - [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) - :yen: Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies). -- [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) +- [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) - [Datadog](https://www.datadoghq.com/) - :yen: Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. - [Prometheus](https://prometheus.io/) - :yen: Open-source service monitoring system and time series database. - [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :yen: Docker Monitoring for DevOps and IT is a SaaS Pay per Host model. @@ -670,108 +681,108 @@ Services to securely store your Docker images. # Useful Resources -- [Cloud Native Landscape](https://github.com/cncf/landscape) +- [Cloud Native Landscape](https://github.com/cncf/landscape) - [Docker Blog](https://www.docker.com/blog/) - Regular updates about Docker, the community and tools. -- [Docker Certification](https://intellipaat.com/docker-training-course/?US) :yen: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. +- [Docker Certification](https://intellipaat.com/docker-training-course/?US) :yen: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. - [Docker dev bookmarks](https://www.codever.dev/search?q=docker) - Use the tag [docker](https://www.codever.dev/bookmarks/t/docker). -- [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) -- [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) +- [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) +- [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) - [Docker packaging guide for Python](https://pythonspeed.com/docker/) - A series of detailed articles on the specifics of Docker packaging for Python. -- [Learn Docker in a Month of Lunches](https://www.manning.com/books/learn-docker-in-a-month-of-lunches) +- [Learn Docker in a Month of Lunches](https://www.manning.com/books/learn-docker-in-a-month-of-lunches) - [Learn Docker](https://coursesity.com/blog/best-docker-tutorials/) - Learn Docker - curated list of the top online docker tutorials and courses. -- [Programming Community Curated Resources for learning Docker](https://hackr.io/tutorials/learn-docker) +- [Programming Community Curated Resources for learning Docker](https://hackr.io/tutorials/learn-docker) ## Awesome Lists - [Awesome CI/CD](https://github.com/cicdops/awesome-ciandcd) :ice_cube: - Not specific to docker but relevant. - [Awesome Compose](https://github.com/docker/awesome-compose) - Docker Compose samples. -- [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) by [ramitsurana][ramitsurana] -- [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo, by [Friz-zy](https://github.com/Friz-zy). -- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. By [Kickball](https://github.com/Kickball) -- [Awesome Sysadmin](https://github.com/n1trux/awesome-sysadmin) by [n1trux](https://github.com/n1trux) -- [ToolsOfTheTrade](https://github.com/cjbarber/ToolsOfTheTrade) a list of SaaS and On premise applications by [cjbarber](https://github.com/cjbarber) +- [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) by [ramitsurana][ramitsurana] +- [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo, by [Friz-zy](https://github.com/Friz-zy). +- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. By [Kickball](https://github.com/Kickball) +- [Awesome Sysadmin](https://github.com/n1trux/awesome-sysadmin) by [n1trux](https://github.com/n1trux) +- [ToolsOfTheTrade](https://github.com/cjbarber/ToolsOfTheTrade) a list of SaaS and On premise applications by [cjbarber](https://github.com/cjbarber) ## Demos and Examples -- [An Annotated Docker Config for Frontend Web Development](https://nystudio107.com/blog/an-annotated-docker-config-for-frontend-web-development) A local development environment with Docker allows you to shrink-wrap the devops your project needs as config, making onboarding frictionless. -- [Local Docker DB](https://github.com/alexmacarthur/local-docker-db) a list of docker-compose samples for a lot of databases by [alexmacarthur](https://github.com/alexmacarthur) -- [Webstack-micro](https://github.com/ferbs/webstack-micro) Demo web app showing how Docker Compose might be used to set up an API Gateway, centralized authentication, background workers, and WebSockets as containerized services. +- [An Annotated Docker Config for Frontend Web Development](https://nystudio107.com/blog/an-annotated-docker-config-for-frontend-web-development) A local development environment with Docker allows you to shrink-wrap the devops your project needs as config, making onboarding frictionless. +- [Local Docker DB](https://github.com/alexmacarthur/local-docker-db) a list of docker-compose samples for a lot of databases by [alexmacarthur](https://github.com/alexmacarthur) +- [Webstack-micro](https://github.com/ferbs/webstack-micro) Demo web app showing how Docker Compose might be used to set up an API Gateway, centralized authentication, background workers, and WebSockets as containerized services. ## Good Tips -- [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** +- [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** - [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015. -- [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/) +- [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/) - [Dockerfile best practices](https://github.com/hexops/dockerfile) :ice_cube: - This repository has best-practices for writing Dockerfiles. -- [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [King Chung Huang](https://github.com/kinghuang) -- [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [fgrehm][fgrehm] +- [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [King Chung Huang](https://github.com/kinghuang) +- [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [fgrehm][fgrehm] ## Raspberry Pi & ARM -- [Docker Pirates ARMed with explosive stuff](https://blog.hypriot.com/) Huge resource on clustering, swarm, docker, pre-installed image for SD card on Raspberry Pi -- [Get Docker up and running on the RaspberryPi in three steps](https://github.com/umiddelb/armhf/wiki/Get-Docker-up-and-running-on-the-RaspberryPi-%28ARMv6%29-in-three-steps) -- [git push docker containers to linux devices](https://www.balena.io) Modern DevOps for IoT, leveraging git and Docker. -- [Installing, running, using Docker on armhf (ARMv7) devices](https://github.com/umiddelb/armhf/wiki/Installing,-running,-using-docker-on-armhf-%28ARMv7%29-devices) +- [Docker Pirates ARMed with explosive stuff](https://blog.hypriot.com/) Huge resource on clustering, swarm, docker, pre-installed image for SD card on Raspberry Pi +- [Get Docker up and running on the RaspberryPi in three steps](https://github.com/umiddelb/armhf/wiki/Get-Docker-up-and-running-on-the-RaspberryPi-%28ARMv6%29-in-three-steps) +- [git push docker containers to linux devices](https://www.balena.io) Modern DevOps for IoT, leveraging git and Docker. +- [Installing, running, using Docker on armhf (ARMv7) devices](https://github.com/umiddelb/armhf/wiki/Installing,-running,-using-docker-on-armhf-%28ARMv7%29-devices) ## Security -- [Bringing new security features to Docker](https://opensource.com/business/14/9/security-for-docker) -- [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) by [tomwillfixit](https://twitter.com/tomwillfixit) -- [Docker Secure Deployment Guidelines](https://github.com/AonCyberLabs/Docker-Secure-Deployment-Guidelines) -- [Docker Security - Quick Reference](https://binarymist.io/publication/docker-security/) -- [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://www.slideshare.net/slideshow/docker-security-are-your-containers-tightly-secured-to-the-ship/43834790) -- [How CVE's are handled on Offical Docker Images](https://github.com/docker-library/official-images/issues/1448) -- [Lynis is an open source security auditing tool including Docker auditing](https://cisofy.com/lynis/) -- [Security Best Practices for Building Docker Images](https://linux-audit.com/tags/docker/) -- [Software Engineering Radio interview of Docker Security Team Lead (Diogo Mónica)](https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security/) -- [Ten Docker Image Security Best Practices Cheat Sheet](https://snyk.io/blog/10-docker-image-security-best-practices/) -- [Top ten most popular docker images each contain at least 30 vulnerabilities](https://snyk.io/blog/top-ten-most-popular-docker-images-each-contain-at-least-30-vulnerabilities/) -- [Tuning Docker with the newest security enhancements](https://opensource.com/business/15/3/docker-security-tuning) -- [10 best practices to containerize Node.js web applications with Docker](https://snyk.io/blog/10-best-practices-to-containerize-nodejs-web-applications-with-docker/) +- [Bringing new security features to Docker](https://opensource.com/business/14/9/security-for-docker) +- [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) by [tomwillfixit](https://twitter.com/tomwillfixit) +- [Docker Secure Deployment Guidelines](https://github.com/AonCyberLabs/Docker-Secure-Deployment-Guidelines) +- [Docker Security - Quick Reference](https://binarymist.io/publication/docker-security/) +- [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://www.slideshare.net/slideshow/docker-security-are-your-containers-tightly-secured-to-the-ship/43834790) +- [How CVE's are handled on Offical Docker Images](https://github.com/docker-library/official-images/issues/1448) +- [Lynis is an open source security auditing tool including Docker auditing](https://cisofy.com/lynis/) +- [Security Best Practices for Building Docker Images](https://linux-audit.com/tags/docker/) +- [Software Engineering Radio interview of Docker Security Team Lead (Diogo Mónica)](https://www.se-radio.net/2017/05/se-radio-episode-290-diogo-monica-on-docker-security/) +- [Ten Docker Image Security Best Practices Cheat Sheet](https://snyk.io/blog/10-docker-image-security-best-practices/) +- [Top ten most popular docker images each contain at least 30 vulnerabilities](https://snyk.io/blog/top-ten-most-popular-docker-images-each-contain-at-least-30-vulnerabilities/) +- [Tuning Docker with the newest security enhancements](https://opensource.com/business/15/3/docker-security-tuning) +- [10 best practices to containerize Node.js web applications with Docker](https://snyk.io/blog/10-best-practices-to-containerize-nodejs-web-applications-with-docker/) ## Videos -- [Contributing to Docker by Andrew "Tianon" Page (InfoSiftr)](https://www.youtube.com/watch?v=1jwo8-1HYYg) (34:31) -- [Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic](https://www.youtube.com/watch?v=GpHMTR7P2Ms) (3:11:06) by [jpetazzo][jpetazzo] -- [Docker and SELinux by Daniel Walsh from Red Hat](https://www.youtube.com/watch?v=zWGFqMuEHdw) (40:23) -- [Docker Course](https://www.youtube.com/watch?v=UZpyvK6UGFo) (Spanish) by [pablokbs](https://github.com/pablokbs) -- [Docker for Developers](https://www.youtube.com/watch?v=FdkNAjjO5yQ) (54:26) by [jpetazzo][jpetazzo] <== Good introduction, context, demo -- [Docker from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxD-btrjrqdEfQHbkZnQrmqE) (1:22:01) on YouTube by Paris Nakita Kejser -- [Docker: How to Use Your Own Private Registry](https://www.youtube.com/watch?v=CAewZCBT4PI) (15:01) -- [Docker in Production](https://www.youtube.com/watch?v=Glk5d5WP6MI) by [jpetazzo][jpetazzo] (36:05) -- [Docker Primer to Docker Compose](https://www.youtube.com/watch?v=G-s2GXGAjTk) (1:56:45) on YouTube by LoginRadius -- [Docker Registry from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAz3d4Fj3edq7UcxEhdTCBm) (44:40) on YouTube by Paris Nakita Kejser -- [Docker Swarm from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAY4gZd1Wl-GsLvg-e9Ap1e) (1:41:28) on YouTube by Paris Nakita Kejser -- [Extending Docker with Plugins](https://vimeo.com/110835013) (15:21) -- [From Local Docker Development to Production Deployments](https://www.youtube.com/watch?v=7CZFpHUPqXw) by [jpetazzo][jpetazzo] @ AWS re:Invent 2015 -- [Immutable Infrastructure with Docker and EC2 by Michael Bryzek (Gilt)](https://www.youtube.com/watch?v=GaHzdqFithc) (42:04) -- [Introduction to Docker and containers](https://www.youtube.com/watch?v=ZVaRK10HBjo) (3:09:00) by [jpetazzo][jpetazzo] -- [Logging on Docker: What You Need to Know](https://vimeo.com/123341629) (51:27) -- [Performance Analysis of Docker - Jeremy Eder](https://www.youtube.com/watch?v=6f2E6PKYb0w) (1:36:58) -- [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615) Free Udacity course -- [State of containers: a debate with CoreOS, VMware and Google](https://www.youtube.com/watch?v=IiITP3yIRd8) (27:38) +- [Contributing to Docker by Andrew "Tianon" Page (InfoSiftr)](https://www.youtube.com/watch?v=1jwo8-1HYYg) (34:31) +- [Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic](https://www.youtube.com/watch?v=GpHMTR7P2Ms) (3:11:06) by [jpetazzo][jpetazzo] +- [Docker and SELinux by Daniel Walsh from Red Hat](https://www.youtube.com/watch?v=zWGFqMuEHdw) (40:23) +- [Docker Course](https://www.youtube.com/watch?v=UZpyvK6UGFo) (Spanish) by [pablokbs](https://github.com/pablokbs) +- [Docker for Developers](https://www.youtube.com/watch?v=FdkNAjjO5yQ) (54:26) by [jpetazzo][jpetazzo] <== Good introduction, context, demo +- [Docker from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxD-btrjrqdEfQHbkZnQrmqE) (1:22:01) on YouTube by Paris Nakita Kejser +- [Docker: How to Use Your Own Private Registry](https://www.youtube.com/watch?v=CAewZCBT4PI) (15:01) +- [Docker in Production](https://www.youtube.com/watch?v=Glk5d5WP6MI) by [jpetazzo][jpetazzo] (36:05) +- [Docker Primer to Docker Compose](https://www.youtube.com/watch?v=G-s2GXGAjTk) (1:56:45) on YouTube by LoginRadius +- [Docker Registry from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAz3d4Fj3edq7UcxEhdTCBm) (44:40) on YouTube by Paris Nakita Kejser +- [Docker Swarm from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAY4gZd1Wl-GsLvg-e9Ap1e) (1:41:28) on YouTube by Paris Nakita Kejser +- [Extending Docker with Plugins](https://vimeo.com/110835013) (15:21) +- [From Local Docker Development to Production Deployments](https://www.youtube.com/watch?v=7CZFpHUPqXw) by [jpetazzo][jpetazzo] @ AWS re:Invent 2015 +- [Immutable Infrastructure with Docker and EC2 by Michael Bryzek (Gilt)](https://www.youtube.com/watch?v=GaHzdqFithc) (42:04) +- [Introduction to Docker and containers](https://www.youtube.com/watch?v=ZVaRK10HBjo) (3:09:00) by [jpetazzo][jpetazzo] +- [Logging on Docker: What You Need to Know](https://vimeo.com/123341629) (51:27) +- [Performance Analysis of Docker - Jeremy Eder](https://www.youtube.com/watch?v=6f2E6PKYb0w) (1:36:58) +- [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615) Free Udacity course +- [State of containers: a debate with CoreOS, VMware and Google](https://www.youtube.com/watch?v=IiITP3yIRd8) (27:38) # Communities and Meetups ## Brazilian -- [Docker BR on Telegram](https://telegram.me/dockerbr) +- [Docker BR on Telegram](https://telegram.me/dockerbr) ## English -- [Docker Community](https://www.docker.com/community/) -- [Docker Events](https://www.docker.com/events/) -- [Docker Online Meetup](https://www.meetup.com/en-AU/Docker-Online-Meetup/) -- [Docker Reddit Community](https://www.reddit.com/r/docker/) +- [Docker Community](https://www.docker.com/community/) +- [Docker Events](https://www.docker.com/events/) +- [Docker Online Meetup](https://www.meetup.com/en-AU/Docker-Online-Meetup/) +- [Docker Reddit Community](https://www.reddit.com/r/docker/) ## Russian -- [Docker Russian-speaking Community](https://t.me/docker_ru) +- [Docker Russian-speaking Community](https://t.me/docker_ru) ## Spanish -- [Docker Tips](https://dockertips.com/) +- [Docker Tips](https://dockertips.com/) ## Stargazers over time @@ -786,7 +797,6 @@ Services to securely store your Docker images. [docker-flow]: https://github.com/docker-flow [docker-for-windows]: https://docs.docker.com/desktop/setup/install/windows-install/ [docker]: https://github.com/docker -[dozzle]: https://github.com/amir20/dozzle [editreadme]: https://github.com/veggiemonk/awesome-docker/edit/master/README.md [fgrehm]: https://github.com/fgrehm [gliderlabs]: https://github.com/gliderlabs @@ -808,7 +818,6 @@ Services to securely store your Docker images. [vmware]: https://github.com/vmware [byrnedo]: https://github.com/byrnedo [crazy-max]: https://github.com/crazy-max -[skanehira]: https://github.com/skanehira [akito]: https://github.com/theAkito [peco602]: https://github.com/Peco602 [weave]: https://github.com/weaveworks/weave From da8890dda679a3669be397f0f8fedcb9dbe7ad00 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sun, 17 May 2026 21:05:42 +0200 Subject: [PATCH 299/327] agent instructions --- AGENTS.md | 62 ++++++++++++++++++------------------------------------- 1 file changed, 20 insertions(+), 42 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f91ce68fa..4fa81ca9d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,10 @@ # Agent Guidelines for awesome-docker +This is a curated list of projects for Docker. +**The projects has to be for Docker, not just using Docker.** + ## Commands + - Build CLI: `make build` (or `go build -o awesome-docker ./cmd/awesome-docker`) - Rebuild from scratch: `make rebuild` - Show local workflows: `make help` @@ -20,55 +24,29 @@ - Maintenance shortcut: `make workflow-maint` (health + JSON report file) ## Architecture + - **Main content**: `README.md` (curated Docker/container resources) - **CLI entrypoint**: `cmd/awesome-docker/main.go` (Cobra commands) - **Core packages**: - - `internal/parser` - parse README sections and entries - - `internal/linter` - alphabetical/order/format validation + autofix - - `internal/checker` - HTTP and GitHub link checks - - `internal/scorer` - repository health scoring and report generation - - `internal/cache` - exclude list and health cache read/write - - `internal/builder` - render README to website HTML from template + - `internal/parser` - parse README sections and entries + - `internal/linter` - alphabetical/order/format validation + autofix + - `internal/checker` - HTTP and GitHub link checks + - `internal/scorer` - repository health scoring and report generation + - `internal/cache` - exclude list and health cache read/write + - `internal/builder` - render README to website HTML from template - **Config**: - - `config/exclude.yaml` - known link-check exclusions - - `config/website.tmpl.html` - HTML template for site generation - - `config/health_cache.yaml` - persisted health scoring cache + - `config/exclude.yaml` - known link-check exclusions + - `config/website.tmpl.html` - HTML template for site generation + - `config/health_cache.yaml` - persisted health scoring cache - **Generated outputs**: - - `awesome-docker` - compiled CLI binary - - `website/index.html` - generated website - - `HEALTH_REPORT.md` - generated markdown report - - `HEALTH_REPORT.json` - generated JSON report - -## Code Style -- **Language**: Go -- **Formatting**: Keep code `gofmt`-clean -- **Testing**: Add/adjust table-driven tests in `internal/*_test.go` for behavior changes -- **Error handling**: Return wrapped errors (`fmt.Errorf("context: %w", err)`) from command handlers -- **CLI conventions**: Keep command behavior consistent with existing Cobra commands (`lint`, `check`, `health`, `build`, `report`, `validate`) - -## CI/Automation -- **PR + weekly validation**: `.github/workflows/pull_request.yml` - - Triggers on pull requests to `master` and weekly schedule - - Builds Go CLI and runs `./awesome-docker validate` -- **Weekly broken links issue**: `.github/workflows/broken_links.yml` - - Runs `./awesome-docker check` - - Opens/updates `broken-links` issue when failures are found -- **Weekly health report issue**: `.github/workflows/health_report.yml` - - Runs `./awesome-docker health` then `./awesome-docker report` - - Opens/updates `health-report` issue -- **GitHub Pages deploy**: `.github/workflows/deploy-pages.yml` - - On push to `master`, builds CLI, runs `./awesome-docker build`, deploys `website/` - -## Makefile Workflow -- The `Makefile` models file dependencies for generated artifacts (`awesome-docker`, `website/index.html`, `config/health_cache.yaml`, `HEALTH_REPORT.md`, `HEALTH_REPORT.json`). -- Prefer `make` targets over ad-hoc command sequences so dependency and regeneration behavior stays consistent. -- Use: - - `make workflow-dev` for local iteration - - `make workflow-pr` before opening/updating a PR - - `make workflow-maint` for health/report maintenance - - `make workflow-ci` for CI-equivalent local checks + - `awesome-docker` - compiled CLI binary + - `website/index.html` - generated website + - `HEALTH_REPORT.md` - generated markdown report + - `HEALTH_REPORT.json` - generated JSON report ## Content Guidelines (from CONTRIBUTING.md) + +- **The projects has to be for Docker, not just using Docker.** - Use one link per entry - Prefer project/repository URLs over marketing pages - Keep entries alphabetically ordered within each section From aa0df11fbabc8b1b8b91c3cc14b3b82d1f11ff46 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Sun, 17 May 2026 23:40:31 +0200 Subject: [PATCH 300/327] Reorg sections, tighten criteria, add new projects (#1437) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Structural reorg - part 1 Removals (~16 entries that failed the "for Docker" test): - Container Composition: LLM Harbor - Deployment: awesome-stacks - Orchestration: Ansible Linux Docker, ManageIQ, RedHerd Framework - Reverse Proxy: idle-less - Service Discovery: etcd, istio (then section deleted) - Volume: duplicacy-cli-cron - Security: crowdsec-blocklist-import, dvwassl - Dev Env: DockerDL, ESP32 Linux builder, Rust Universal Compiler - Testing: InSpec - Wrappers: Ansible - Monitoring SaaS: Prometheus, Broadcom, Splunk-blog (when merging) Structural moves: - Service Discovery → folded into Networking (docker-consul, docker-dns, registrator kept; etcd/istio dropped) - Metadata (1 entry, OCI spec) → deleted - User Interface > Terminal > {Terminal UI, CLI tools, Other} → flattened to one Terminal subsection - CI Services (under "Services based on Docker") → merged into CI/CD - Monitoring Services → merged into Monitoring - CaaS → merged into PaaS / CaaS - Top-level Services based on Docker (mostly :yen:) → deleted; pricing is signaled by :yen:, not topology - TOC updated to match CONTRIBUTING.md tightening: - Added a "for Docker" test framed as one yes/no question - 12-row example table covering monitoring, reverse proxies, scanners, schedulers, tutorials, awesome-stacks-style submissions - One-sentence sanity check ("This project exists to ____") - New entry-description rule: descriptions must make the Docker connection obvious * Tighten project submission criteria * Manual review and clean up * Add relevant project in 2026 * fix lint * add relevant projects * Add Cloud Run Compose, fix redirected URLs - Add Cloud Run Compose under Deployment & Platforms (docker-compose deploys). - Update GCP Artifact Registry URL to follow docs.cloud.google.com redirect. - Update CodeFresh URL to its post-acquisition home at octopus.com/codefresh. Co-Authored-By: Claude Opus 4.7 (1M context) * remove dead projects * exclude bot protected website * clean up * clean up more --------- Co-authored-by: Claude Opus 4.7 (1M context) --- .github/CONTRIBUTING.md | 43 +- README.md | 958 +++++++++++++++-------------------- config/exclude.yaml | 1 + scripts/fix_yen_placement.py | 74 +++ 4 files changed, 516 insertions(+), 560 deletions(-) create mode 100644 scripts/fix_yen_placement.py diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 59db52b76..18c8df57f 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -8,17 +8,54 @@ Please read and follow the [Code of Conduct](./CODE_OF_CONDUCT.md). ## What We Accept -- New high-quality Docker/container-related projects +- New high-quality projects that are **for Docker** (see the test below) - Fixes to descriptions, ordering, or categorization - Removal of broken, archived, deprecated, or duplicate entries - Improvements to the Go CLI and GitHub workflows +## The "for Docker" Test (read this before submitting) + +This list is for projects whose purpose is to make working with Docker better. +It is **not** a directory of "software you can run in a container" — that's most +software ever written. Before opening a PR, apply this test: + +> **If you removed the Docker integration, would the project still have a reason to exist?** +> +> - **Yes, it would** → it's a general tool that happens to use Docker. **Reject.** +> - **No, the project is *about* Docker** → it belongs here. + +### Examples + +| Project shape | Verdict | Why | +| ----------------------------------------------------------------------------------- | ------------- | ---------------------------------------------------------------------------------------------------- | +| Tool that monitors **containers**, container resources, or container logs | ✅ Accept | Its value disappears if you take Docker away. | +| Tool that monitors **a host / server / service** and happens to ship as Docker | ❌ Reject | Its job is monitoring; Docker is just the delivery vehicle. | +| Reverse proxy that **auto-configures from Docker labels/events** | ✅ Accept | Tightly coupled to the Docker API. | +| Reverse proxy that just *runs in* Docker and configures from a static YAML file | ❌ Reject | Same proxy works fine without Docker. | +| Dockerfile linter, image scanner, registry, BuildKit frontend, runtime, SDK | ✅ Accept | Object of work is the Docker image, daemon, or socket. | +| General IaC scanner that **happens to read Dockerfiles** among many formats | ⚠️ Borderline | Allowed if Docker support is a first-class feature, not an afterthought. | +| "Awesome 150 web apps deployable with `docker run`" | ❌ Reject | Belongs in `awesome-selfhosted`; Docker is incidental. | +| Cron / privilege-drop / health-check utility designed for **container init** | ✅ Accept | Solves a problem that only exists *because* of how containers are built. | +| Generic KV store / service mesh / cluster scheduler that supports Docker | ❌ Reject | Existed before Docker, works without it. | +| Tutorial, video, or book whose **subject** is Docker | ✅ Accept | Under Useful Resources / Videos / Where to start. | +| Tutorial that uses Docker as a setup step for an unrelated topic | ❌ Reject | Belongs with the unrelated topic. | + +### One-sentence sanity check + +Write the sentence: *"This project exists to ____."* If the blank doesn't +contain **Docker, container, image, registry, Dockerfile, Compose, Swarm, +BuildKit, or OCI** — it probably doesn't belong here. + ## README Entry Rules - Use one link per entry. - Prefer GitHub project/repository URLs over marketing pages. -- Keep entries alphabetically sorted within their section. -- Keep descriptions concise and concrete. +- Keep entries alphabetically sorted within their section (case-insensitive). +- Keep descriptions concise and concrete: one sentence, lead with the verb. +- **The description should make the Docker connection obvious.** "Monitor + unhealthy containers" is good; "Monitor your services" is not — the latter + could be any monitoring tool, and a reviewer can't tell whether the project + passes the test above. - Use `:yen:` for paid/commercial services. - Use `:ice_cube:` for stale projects (2+ years inactive). - Do not use `:skull:`; archived/deprecated projects should be removed. diff --git a/README.md b/README.md index fb0078365..1f66e584b 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,11 @@ If you would like to contribute, please read [CONTRIBUTING.md][contributing] first. If this list is not complete, you can contribute to make it so. +If you see a link here that is not (any longer) a good fit, you can fix it by submitting a [pull request][editreadme] to improve this file. Thank you! **The project has to be for Docker, not just using Docker.** -> **Please**, help organize these resources so that they are _easy to find_ and _understand_ for newcomers. See how to **[Contribute][contributing]** for tips! - -**_If you see a link here that is not (any longer) a good fit, you can fix it by submitting a [pull request][editreadme] to improve this file. Thank you!_** +> Rule of thumb: if removing the Docker integration wouldn't kill the project's value proposition, it doesn't belong in the this list. The creators and maintainers of this list do not receive any form of payment to accept a change made by any contributor. This page is not an official Docker product in any way. @@ -17,549 +16,435 @@ It is a list of links to projects and is maintained by volunteers. Everybody is welcome to contribute. The goal of this repo is to index open-source projects, not to advertise for profit. +> Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud. + +_Source:_ [What is Docker](https://www.docker.com/why-docker/) + # Contents -- [Legend](#legend) -- [What is Docker](#what-is-docker) -- [Where to start](#where-to-start) -- [Where to start (Windows)](#where-to-start-windows) - [Projects](#projects) - - [Container Operations](#container-operations) - - [Container Composition](#container-composition) - - [Deployment and Infrastructure](#deployment-and-infrastructure) - - [Monitoring](#monitoring) - - [Networking](#networking) - - [Orchestration](#orchestration) - - [PaaS](#paas) - - [Reverse Proxy](#reverse-proxy) - - [Runtime](#runtime) - - [Security](#security) - - [Service Discovery](#service-discovery) - - [Volume Management / Data](#volume-management--data) - - [User Interface](#user-interface) - - [IDE integrations](#ide-integrations) - - [Desktop](#desktop) - - [Terminal](#terminal) - - [Terminal UI](#terminal-ui) - - [CLI tools](#cli-tools) - - [Other](#other) - - [Web](#web) - - [Docker Images](#docker-images) - - [Base Tools](#base-tools) + - [Engine \& Runtime](#engine--runtime) + - [Building Images](#building-images) - [Builder](#builder) + - [Base Images](#base-images) - [Dockerfile](#dockerfile) - [Linter](#linter) - - [Metadata](#metadata) + - [Image Lifecycle](#image-lifecycle) - [Registry](#registry) - - [Development with Docker](#development-with-docker) + - [Registry CLI](#registry-cli) + - [Image Scanning \& SBOM](#image-scanning--sbom) + - [Supply Chain](#supply-chain) + - [Running Containers](#running-containers) + - [Composition](#composition) + - [Orchestration](#orchestration) + - [Deployment \& Platforms](#deployment--platforms) + - [Garbage Collection](#garbage-collection) + - [Networking \& Proxies](#networking--proxies) + - [Networking](#networking) + - [Reverse Proxy](#reverse-proxy) + - [Storage \& Data](#storage--data) + - [Observability](#observability) + - [Security](#security) + - [User Interfaces](#user-interfaces) + - [Desktop](#desktop) + - [Terminal](#terminal) + - [Web](#web) + - [IDE Integrations](#ide-integrations) + - [Developer Workflow](#developer-workflow) - [API Client](#api-client) - [CI/CD](#cicd) - [Development Environment](#development-environment) - - [Garbage Collection](#garbage-collection) - [Serverless](#serverless) - [Testing](#testing) - [Wrappers](#wrappers) - - [Services based on Docker (mostly :yen:)](#services-based-on-docker-mostly-yen) - - [CI Services](#ci-services) - - [CaaS](#caas) - - [Monitoring Services](#monitoring-services) -- [Useful Resources](#useful-resources) + - [In-Container Tooling](#in-container-tooling) +- [Learning Resources](#learning-resources) + - [Where to Start](#where-to-start) + - [Where to Start (Windows)](#where-to-start-windows) + - [Books \& Tutorials](#books--tutorials) - [Awesome Lists](#awesome-lists) - [Demos and Examples](#demos-and-examples) - [Good Tips](#good-tips) - [Raspberry Pi \& ARM](#raspberry-pi--arm) - - [Security](#security-1) + - [Security Articles](#security-articles) - [Videos](#videos) -- [Communities and Meetups](#communities-and-meetups) - - [Brazilian](#brazilian) - - [English](#english) - - [Russian](#russian) - - [Spanish](#spanish) - - [Stargazers over time](#stargazers-over-time) + - [Communities and Meetups](#communities-and-meetups) + - [Brazilian](#brazilian) + - [English](#english) + - [Russian](#russian) + - [Spanish](#spanish) +- [Stargazers over time](#stargazers-over-time) -# Legend +# Projects -- Monetized :yen: -- Stale (2+ years inactive) :ice_cube: +## Official Projects -# What is Docker +- [Moby](https://github.com/moby/moby) +- [Docker Hub](https://hub.docker.com) +- [Docker Compose](https://github.com/docker/compose/) - Define and run multi-container applications with Docker. +- [Docker Registry][distribution] - The Docker toolset to pack, ship, store, and deliver content -> Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud. +## Engine & Runtime -_Source:_ [What is Docker](https://www.docker.com/why-docker/) +- [colima](https://github.com/abiosoft/colima) - Container runtimes on macOS (and Linux) with minimal setup. +- [containerd](https://github.com/containerd/containerd) - An open and reliable container runtime. +- [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface. +- [gVisor](https://github.com/google/gvisor) - Application Kernel for Containers. +- [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers. +- [Mocker](https://github.com/us/mocker) - Docker-compatible container CLI for macOS, built on Apple's Containerization framework. +- [podman](https://github.com/containers/libpod) - Libpod is a library used to create container pods. Home of Podman. +- [runc](https://github.com/opencontainers/runc) - CLI tool for spawning and running containers according to the OCI specification. +- [runtime-tools](https://github.com/opencontainers/runtime-tools) - Oci-runtime-tool is a collection of tools for working with the OCI runtime specification. +- [youki](https://github.com/youki-dev/youki) - Container runtime written in Rust, implementing the OCI runtime specification. -# Where to start +## Building Images -- [Benefits of using Docker](https://semaphore.io/blog/docker-benefits) for development and delivery, with a practical roadmap for adoption. -- [Bootstrapping Microservices](https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform) - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster. -- [Docker Curriculum](https://github.com/prakhar1989/docker-curriculum): A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service. -- [Docker Documentation](https://docs.docker.com/): the official documentation. -- [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. -- [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) by Alex Clews. +### Builder -- [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. -- [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. -- [Docker Training](https://training.mirantis.com) :yen: -- [Dockerlings](https://github.com/furkan/dockerlings): Learn docker from inside your terminal, with a modern TUI and bite sized exercises (by [furkan](https://github.com/furkan)) +Applications designed to help or simplify building **new** images -- [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... -- [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) by [dwyl](https://github.com/dwyl) -- [Learn Docker (Visually)](https://pagertree.com/learn/docker/overview) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. -- [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. -- [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This Spanish guide contains the use of basic docker commands with real life examples. -- [Setting Python Development Environment with VScode and Docker](https://github.com/RamiKrispin/vscode-python): A step-by-step tutorial for setting up a dockerized Python development environment with VScode, Docker, and the Dev Container extension. -- [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. +- [ansible-bender](https://github.com/ansible-community/ansible-bender) - A tool utilising `ansible` and `buildah`. +- [apko](https://github.com/chainguard-dev/apko) - Declarative OCI image builder from apk packages; reproducible by design. +- [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images. +- [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit. +- [buildx](https://github.com/docker/buildx) - Official Docker CLI plugin for multi-platform builds backed by BuildKit. +- [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines. +- [dlayer](https://github.com/orisano/dlayer) - Docker layer analyzer. +- [docker-companion](https://github.com/mudler/docker-companion) - A command line tool written in Golang to squash and unpack docker images. +- [docker-repack](https://github.com/orf/docker-repack) - Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. +- [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. +- [earthly](https://github.com/earthly/earthly) - Containerized build automation with Dockerfile-meets-Makefile syntax. +- [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. +- [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. +- [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. +- [ko](https://github.com/ko-build/ko) - Build and deploy Go applications as container images without a Dockerfile. +- [nix2container](https://github.com/nlewo/nix2container) - Build OCI images with Nix without `docker load` round-trips. +- [packer](https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible. +- [Production-Ready Python Containers](https://pythonspeed.com/products/pythoncontainer/) - :yen: A template for creating production-ready Docker images for Python applications. +- [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. +- [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers. +- [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles. -**Cheatsheets** by -- [eon01](https://github.com/eon01/DockerCheatSheet) -- [dimonomid](https://github.com/dimonomid/docker-quick-ref) (PDF) -- [JensPiegsa](https://github.com/JensPiegsa/docker-cheat-sheet) -- [wsargent](https://github.com/wsargent/docker-cheat-sheet) (Most popular) +### Base Images -# Where to start (Windows) +Minimal, hardened, or purpose-built container base images. -- [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) by [kaitoedter](https://twitter.com/kaitoedter) -- [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. -- [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker -- [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] -- [Running a Legacy ASP.NET App in a Windows Container](https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container/) Steps for Dockerizing a legacy ASP.NET app and running as a Windows container -- [Windows Containers and Docker: The 101](https://www.youtube.com/watch?v=N7SG2wEyQtM) - A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps. -- [Windows Containers Quick Start](https://learn.microsoft.com/en-us/virtualization/windowscontainers/about/) Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016 +- [Chainguard Images](https://github.com/chainguard-images/images) - Minimal, signed, SBOM-attested container images built on Wolfi. +- [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system. +- [melange](https://github.com/chainguard-dev/melange) - Build apk packages from declarative YAML for use with apko. +- [Wolfi](https://github.com/wolfi-dev/os) - Undistro Linux designed for containers; glibc-based, signed, daily SBOMs. ---- -# Projects +### Dockerfile -- Moby = open source development -- Docker CE = free product release based on Moby -- Docker EE = commercial product release based on Docker CE. +- [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. +- [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. +- [Trsuted Builds](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. -> Docker EE is on the same code base as Docker CE, so also built from Moby, with commercial components added, such as "docker data center / universal control plane" +### Linter -- [Moby](https://github.com/moby/moby) -- [Docker Images](https://hub.docker.com) -- [Docker Compose](https://github.com/docker/compose/) (Define and run multi-container applications with Docker) -- [Docker Registry][distribution] (The Docker toolset to pack, ship, store, and deliver content) +- [Dockadvisor](https://github.com/deckrun/dockadvisor) - Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks. +- [docker-image-size-limit](https://github.com/wemake-services/docker-image-size-limit) - A tool to keep an eye on your docker images size. +- [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions;. -## Container Operations +## Image Lifecycle -### Container Composition +### Registry -- [Capitan](https://github.com/byrnedo/capitan) :ice_cube: - Composable docker orchestration with added scripting support by [byrnedo]. -- [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files. -- [crowdr](https://github.com/polonskiy/crowdr) :ice_cube: - Tool for managing multiple Docker containers (`docker-compose` alternative). -- [ctk](https://github.com/ctk-hq/ctk) - Visual composer for container based workloads. By [corpulent](https://github.com/corpulent). -- [docker-config-update](https://github.com/sudo-bmitch/docker-config-update) :ice_cube: - Utility to update docker configs and secrets for deploying in a compose file. -- [elsy](https://github.com/cisco/elsy) :ice_cube: - An opinionated, multi-language, build tool based on Docker and Docker Compose. -- [habitus](https://github.com/cloud66-oss/habitus) :ice_cube: - A Build Flow Tool for Docker. -- [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes. -- [LLM Harbor](https://github.com/av/harbor) - A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [av](https://github.com/av). -- [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. -- [podman-compose](https://github.com/containers/podman-compose) - A script to run docker-compose.yml using podman. -- [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. By [roquie](https://github.com/roquie) -- [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [alexaandrov](https://github.com/alexaandrov). +Services to securely store your Docker images. + +- [Amazon Elastic Container Registry](https://aws.amazon.com/ecr/) - :yen: Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. +- [Azure Container Registry](https://azure.microsoft.com/en-us/products/container-registry/#overview) - :yen: Manage a Docker private registry as a first-class Azure resource. +- [Cloudsmith](https://cloudsmith.com/product/formats/docker-registry) - :yen: A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. +- [Container Registry Service](https://container-registry.com/) - :yen: Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. +- [Cycle.io](https://cycle.io/) - :yen: Bare-metal container hosting. +- [DigitalOcean](https://www.digitalocean.com/products/container-registry) - :yen: DigitalOcean Container Registry. +- [Docker Hub](https://hub.docker.com/) provided by Docker Inc. +- [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content +- [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. +- [GCP Artifact Registry](https://docs.cloud.google.com/artifact-registry/docs) - :yen: Fast, private Docker image storage on Google Cloud Platform. +- [Gitea Container Registry](https://docs.gitea.com/usage/packages/container) - Integrated Docker registry in Gitea, ideal for private, small-scale image hosting. +- [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - GitHub's solution for storing and managing Docker images, with tight integration into GitHub Actions. +- [GitLab Container Registry](https://docs.gitlab.com/user/packages/container_registry/) - Registry focused on using its images in GitLab CI. +- [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. +- [JFrog Artifactory](https://jfrog.com/artifactory/) - :yen: Artifact Repository Manager, can be used as private Docker Registry as well. +- [kontain.me](https://github.com/imjasonh/kontain.me) - On-demand container image registry that builds and serves images when they are pulled. +- [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. +- [NORA](https://github.com/getnora-io/nora) - Lightweight multi-protocol artifact registry supporting Docker, Maven, npm, Cargo and PyPI in a single 32MB binary. Pull-through cache, Web UI, Prometheus metrics, RBAC auth. +- [nscr](https://github.com/jhstatewide/nscr) - A light-weight, self-contained container registry that's easy to run and maintain. +- [Quay.io](https://quay.io/) - :yen: Secure hosting for private Docker repositories. +- [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry. +- [RepoFlow](https://www.repoflow.io) - A simple and easy-to-use package management platform with Docker support alongside other formats like PyPI, Maven, npm, and Helm. Includes smart search, built-in Docker image scanning, and a great free option for both self-hosted and cloud use. +- [Sonatype Nexus Repository](https://www.sonatype.com/products/sonatype-nexus-repository) - Manage binaries and build artifacts across your software supply chain. -### Deployment and Infrastructure +### Registry CLI -- [awesome-stacks](https://github.com/ethibox/awesome-stacks) - Deploy 150+ open-source web apps with one Docker command. -- [blackfish](https://gitlab.com/blackfish/blackfish) - A CoreOS VM to build swarm clusters for Dev & Production. -- [BosnD](https://gitlab.com/n0r1sk/bosnd) - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments. -- [Clocker](https://github.com/brooklyncentral/clocker) :ice_cube: - Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [brooklyncentral](https://github.com/brooklyncentral). -- [Conduit](https://github.com/ehazlett/conduit) :ice_cube: - Experimental deployment system for Docker. -- [depcon](https://github.com/ContainX/depcon) :ice_cube: - Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [ContainX][containx]. -- [docker-to-iac](https://github.com/deploystackio/docker-to-iac) - Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean. -- [gitkube](https://github.com/hasura/gitkube) :ice_cube: - Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [Hasura](https://github.com/hasura/). -- [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas). -- [swarm-ansible](https://github.com/LombardiDaniel/swarm-ansible?tab=readme-ov-file) - Swarm-Ansible bootstraps a production-ready swarm cluster using ansible. Comes with tools to automate CI, help monitoring and traefik pre-configured for SSL certificates and simple-auth. Comes with a private registry and more!. -- [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. -- [werf](https://github.com/werf/werf) - Werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps. +Daemonless command-line tools for inspecting, copying, and manipulating images in OCI/Docker registries. -### Monitoring +- [crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane) - Lightweight CLI to manipulate registry images, from `go-containerregistry`. +- [go-containerregistry](https://github.com/google/go-containerregistry) - Go library and CLI tools (`crane`, `gcrane`, `registry`) for working with container registries. +- [oras](https://github.com/oras-project/oras) - Push and pull arbitrary OCI artifacts to and from any OCI registry. +- [regctl](https://github.com/regclient/regclient) - Daemonless registry client; copy, inspect, modify, and sign OCI images. +- [skopeo](https://github.com/containers/skopeo) - Work with remote image registries: retrieve information, copy images, sign content. -- [ADRG](https://github.com/jaldertech/adrg) - Dynamic Docker resource governor using cgroups v2 to manage system load. -- [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. -- [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. -- [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [zorak1103](https://github.com/zorak1103). -- [Docker-Alertd](https://github.com/deltaskelta/docker-alertd) :ice_cube: - Monitor and send alerts based on docker container resource usage/statistics. -- [Docker-Flow-Monitor](https://github.com/docker-flow/docker-flow-monitor) :ice_cube: - Reconfigures Prometheus when a new service is updated or deployed automatically. -- [Docker-Sentinel](https://github.com/Will-Luck/Docker-Sentinel) - Automated container updates with per-container policies, rollback safety, and a real-time web dashboard. By [Will-Luck](https://github.com/Will-Luck). -- [DockProbe](https://github.com/deep-on/dockprobe) - Lightweight Docker monitoring dashboard in a single container. Real-time metrics, 6 anomaly detection rules, Telegram alerts, and 16 automated security scans. Zero config, ~50MB RAM. By [DeepOn](https://github.com/deep-on). -- [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. -- [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. -- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. [amerkurev](https://github.com/amerkurev). -- [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. [amir20](https://github.com/amir20). -- [Drydock](https://github.com/CodesWhat/drydock) - Container update monitoring with web dashboard, 23 registry providers, 20 notification triggers, and distributed agent architecture. By [CodesWhat](https://github.com/CodesWhat). -- [Dynatrace](https://docs.dynatrace.com/docs/observe/infrastructure-observability/container-platform-monitoring) - :yen: Monitor containerized applications without installing agents or modifying your Run commands. -- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack [vegasbrianc][vegasbrianc]. - -- [InfluxDB, cAdvisor, Grafana](https://github.com/vegasbrianc/docker-monitoring) :ice_cube: - InfluxDB Time series DB in combination with Grafana and cAdvisor. -- [Logspout](https://github.com/gliderlabs/logspout) :ice_cube: - Log routing for Docker container logs. -- [Maintenant](https://github.com/kolapsis/maintenant) - Self-discovering infrastructure monitoring for Docker and Kubernetes. Auto-detects containers via labels, with endpoint monitoring, heartbeats, TLS certificates, resource metrics, update intelligence, and a built-in status page. Single binary with embedded SPA. By [kolapsis](https://github.com/kolapsis). -- [monit-docker](https://github.com/decryptus/monit-docker) :ice_cube: - Monitor docker containers resources usage or status and execute docker commands or inside containers. [decryptus][decryptus]. -- [NexClipper](https://github.com/NexClipper/NexClipper) :ice_cube: - NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. -- [Out-of-the-box Host/Container Monitoring/Logging/Alerting Stack](https://github.com/uschtwill/docker_monitoring_logging_alerting) :ice_cube: - Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. -- [SwarmAlert](https://github.com/gpulido/SwarmAlert) :ice_cube: - Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. -- [Wiremap](https://github.com/codeofmario/wiremap) - A self-hosted visual Docker network topology explorer with real-time log streaming, live stats, embedded terminal, and container inspection. By [codeofmario](https://github.com/codeofmario). -- [Zabbix Docker](https://github.com/gomex/docker-zabbix) :ice_cube: - Monitor containers automatically using zabbix LLD feature. -- [Zabbix Docker module](https://github.com/monitoringartist/Zabbix-Docker-Monitoring) :ice_cube: - Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. +### Image Scanning & SBOM -### Networking +Image vulnerability scanners, SBOM generators, and digest pinning tools. Commercial entries marked `:yen:`. -- [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. -- [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. By [coreos][coreos]. -- [Freeflow](https://github.com/Microsoft/Freeflow) :ice_cube: - High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [Microsoft](https://github.com/Microsoft). -- [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. -- [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [jpetazzo][jpetazzo]. +- [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles. +- [Anchor Enterprise](https://anchore.com/) - :yen: Analyze images for CVE vulnerabilities and against custom security policies. +- [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. +- [Docker Scout](https://github.com/docker/scout-cli) - Official Docker CLI for SBOM generation, vulnerability analysis, and policy evaluation. +- [Grype](https://github.com/anchore/grype) - A vulnerability scanner for container images, filesystems and SBOMs. +- [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. +- [pindock](https://github.com/deadnews/pindock) - Pin and update Docker image digests in Dockerfiles and compose files. +- [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. +- [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). + +### Supply Chain + +Signing, attestation, and provenance for container images. + +- [cosign](https://github.com/sigstore/cosign) - Container signing, verification, and transparency log for OCI artifacts. +- [in-toto](https://github.com/in-toto/in-toto) - Framework for supply chain attestations; underpins SLSA and cosign provenance. +- [policy-controller](https://github.com/sigstore/policy-controller) - Kubernetes admission controller enforcing cosign signatures on container images. +- [witness](https://github.com/in-toto/witness) - Generate and verify in-toto attestations across the build pipeline. + +## Running Containers + +### Composition + +- [Composerize](https://github.com/magicmark/composerize) - Convert docker run commands into docker-compose files. +- [ctk](https://github.com/ctk-hq/ctk) - Visual composer for container based workloads. +- [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes. +- [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. +- [podman-compose](https://github.com/containers/podman-compose) - A script to run docker-compose.yml using podman. +- [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. +- [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. ### Orchestration -- [Ansible Linux Docker](https://github.com/Peco602/ansible-linux-docker) :ice_cube: - Run Ansible from a Linux container. By [Peco602][peco602]. -- [athena](https://github.com/athena-oss/athena) :ice_cube: - An automation platform with a plugin architecture that allows you to easily create and share services. - [CloudSlang](https://github.com/CloudSlang/cloud-slang) - CloudSlang is a workflow engine to create Docker process automation. -- [clusterdock](https://github.com/clusterdock/clusterdock) :ice_cube: - Docker container orchestration to enable the testing of long-running cluster deployments. -- [Crane](https://github.com/Dataman-Cloud/crane) :ice_cube: - Control plane based on docker built-in swarm [Dataman-Cloud](https://github.com/Dataman-Cloud). -- [Docker Flow Swarm Listener](https://github.com/docker-flow/docker-flow-swarm-listener) :ice_cube: - Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [docker-flow][docker-flow]. - [docker rollout](https://github.com/Wowu/docker-rollout) - Zero downtime deployment for Docker Compose services. -- [Haven](https://github.com/codeabovelab/haven-platform) :ice_cube: - Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [codeabovelab](https://github.com/codeabovelab). - [Kubernetes](https://github.com/kubernetes/kubernetes) - Open source orchestration system for Docker containers by Google. -- [ManageIQ](https://github.com/ManageIQ/manageiq) - Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ). -- [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts [apache](https://mesos.apache.org/). +- [Mesos](https://github.com/apache/mesos) - Resource/Job scheduler for containers, VM's and physical hosts. - [Nebula](https://github.com/nebula-orchestrator) - A Docker orchestration tool designed to manage massive scale distributed clusters. - [Nomad](https://github.com/hashicorp/nomad) - Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler. - [Rancher](https://github.com/rancher/rancher) - An open source project that provides a complete platform for operating Docker in production. -- [RedHerd Framework](https://github.com/redherd-project/redherd-framework) :ice_cube: - RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [RedHerdProject](https://github.com/redherd-project). -- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm by [crazy-max]. +- [Swarm-cronjob](https://github.com/crazy-max/swarm-cronjob) - Create jobs on a time-based schedule on Swarm. + +### Deployment & Platforms -### PaaS +Self-hosted and managed cloud platforms (PaaS/CaaS, deployment automation). Commercial entries marked `:yen:`. +- [Amazon ECS](https://aws.amazon.com/ecs/) - :yen: A management service on EC2 that supports Docker containers. +- [Appfleet](https://appfleet.com/) - :yen: Edge platform to deploy and manage containerized services globally; routes traffic to the closest location for low latency. +- [Azure AKS](https://azure.microsoft.com/en-us/products/kubernetes-service/) - :yen: Fully managed Kubernetes container orchestration service. +- [blackfish](https://gitlab.com/blackfish/blackfish) - A CoreOS VM to build swarm clusters for Dev & Production. +- [BosnD](https://gitlab.com/n0r1sk/bosnd) - BosnD, the boatswain daemon - A dynamic configuration file writer & service reloader for dynamically changing container environments. - [caprover](https://github.com/caprover/caprover) - [Previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids. +- [Cloud 66](https://www.cloud66.com) - :yen: Full-stack hosted container management as a service. +- [Cloud Run Compose](https://docs.cloud.google.com/run/docs/deploy-run-compose) - :yen: Deploy `docker-compose.yaml` files directly to Google Cloud Run as a managed service. - [Convox Rack](https://github.com/convox/rack) - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. -- [Dcw](https://github.com/pbertera/dcw) :ice_cube: - Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels. -- [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [progrium][progrium]). -- [Empire](https://github.com/remind101/empire) :ice_cube: - A PaaS built on top of Amazon EC2 Container Service (ECS). +- [docker-to-iac](https://github.com/deploystackio/docker-to-iac) - Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean. +- [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications. - [Exoframe](https://github.com/exoframejs/exoframe) - A self-hosted tool that allows simple one-command deployments using Docker. -- [Hephy Workflow](https://github.com/teamhephy/workflow) :ice_cube: - Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow). -- [Krane](https://github.com/krane/krane) :ice_cube: - Toolset for managing container workloads on remote servers. -- [Nanobox](https://github.com/nanobox-io/nanobox) :ice_cube: - :yen: An application development platform that creates local environments that can then be deployed and scaled in the cloud. +- [Giant Swarm](https://www.giantswarm.io/) - :yen: Simple microservice infrastructure. Deploy your containers in seconds. +- [Google Container Engine](https://docs.cloud.google.com/kubernetes-engine/docs) - :yen: Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. +- [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. +- [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) - :yen: Integrated platform for data and containers built on Apache Mesos. - [OpenShift][openshift] - An open source PaaS built on [Kubernetes][kubernetes] and optimized for Dockerized app development and deployment by [Red Hat](https://www.redhat.com/en) +- [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) - :yen: Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud. +- [swarm-ansible](https://github.com/LombardiDaniel/swarm-ansible?tab=readme-ov-file) - Swarm-Ansible bootstraps a production-ready swarm cluster using ansible. Comes with tools to automate CI, help monitoring and traefik pre-configured for SSL certificates and simple-auth. Comes with a private registry and more!. +- [SwarmManagement](https://github.com/hansehe/SwarmManagement) - Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. +- [Triton](https://www.joyent.com/) - :yen: Elastic container-native infrastructure. - [Tsuru](https://github.com/tsuru/tsuru) - Tsuru is an extensible and open source Platform as a Service software. +- [werf](https://github.com/werf/werf) - Werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps. -### Reverse Proxy +### Garbage Collection -- [BunkerWeb](https://github.com/bunkerity/bunkerweb) - Open-source and next-gen Web Application Firewall (WAF). By [Bunkerity](https://www.bunkerity.com). -- [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. By [lucaslorentz](https://github.com/lucaslorentz). -- [caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams) - Docker upstreams module for Caddy, configured with container labels. By [invzhi](https://github.com/invzhi). -- [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. -- [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [docker-flow][docker-flow]. -- [fabio](https://github.com/fabiolb/fabio) - A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [magiconair](https://github.com/magiconair) (Frank Schroeder). -- [idle-less](https://github.com/tvup/idle-less) - Reverse proxy with automatic Wake-on-LAN — wakes sleeping backend servers when traffic arrives, shows a waiting screen, and redirects when ready. By [tvup](https://github.com/tvup). -- [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [JrCs](https://github.com/JrCs). -- [mesh-router](https://github.com/Yundera/mesh-router) - Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [Yundera](https://github.com/Yundera). -- [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. By [jc21](https://github.com/jc21). -- [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen by [jwilder][jwilder] -- [OpenResty Manager](https://github.com/Safe3/openresty-manager) - The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. By [Safe3](https://github.com/Safe3/). -- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [flavioaiello](https://github.com/flavioaiello). -- [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [EmileVauge](https://github.com/emilevauge). - -### Runtime - -- [cri-o](https://github.com/cri-o/cri-o) - Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o). -- [lxc](https://github.com/lxc/lxc) - LXC - Linux Containers. -- [Mocker](https://github.com/us/mocker) - Docker-compatible container CLI for macOS, built on Apple's Containerization framework. By [us](https://github.com/us). -- [podman](https://github.com/containers/libpod) - Libpod is a library used to create container pods. Home of Podman. -- [rlxc](https://github.com/brauner/rlxc) :ice_cube: - LXC binary written in Rust. -- [runtime-tools](https://github.com/opencontainers/runtime-tools) - Oci-runtime-tool is a collection of tools for working with the OCI runtime specification. +- [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. +- [Docuum](https://github.com/stepchowfun/docuum) - Least recently used (LRU) eviction of Docker images. -### Security +## Networking & Proxies -- [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles [SongStitch](https://github.com/songStitch/). -- [Anchor Enterprise](https://anchore.com/) - :yen: Analyze images for CVE vulnerabilities and against custom security policies. -- [Aqua Security](https://www.aquasec.com) - :yen: Securing container-based applications from Dev to Production on any platform. -- [bane](https://github.com/genuinetools/bane) :ice_cube: - AppArmor profile generator for Docker containers. -- [buildcage](https://github.com/dash14/buildcage) - Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. -- [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. -- [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [bridgecrew](https://github.com/bridgecrewio). -- [CIS Docker Benchmark](https://github.com/dev-sec/cis-docker-benchmark) :ice_cube: - This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [dev-sec](https://github.com/dev-sec). -- [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [coreos][coreos]. -- [crowdsec-blocklist-import](https://github.com/wolffcatskyy/crowdsec-blocklist-import) - Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [wolffcatskyy](https://github.com/wolffcatskyy). -- [Dagda](https://github.com/eliasgranderubio/dagda) :ice_cube: - Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [eliasgranderubio](https://github.com/eliasgranderubio). -- [Deepfence Enterprise](https://deepfence.io) - :yen: Full life cycle Cloud Native Workload Protection platform for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. -- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. -- [Den](https://github.com/us/den) - Self-hosted sandbox runtime for AI agents with Docker containers, security hardening, REST API and WebSocket support. By [us](https://github.com/us). -- [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. By [docker][docker]. -- [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions. -- [dvwassl](https://github.com/Peco602/dvwassl) :ice_cube: - SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [Peco602][peco602]. -- [Grype](https://github.com/anchore/grype) - A vulnerability scanner for container images, filesystems and SBOMs. By [Anchore](https://github.com/anchore). -- [KICS](https://github.com/checkmarx/kics) - An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx). -- [oscap-docker](https://github.com/OpenSCAP/openscap) - OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP). -- [pindock](https://github.com/deadnews/pindock) - Pin and update Docker image digests in Dockerfiles and compose files. By [deadnews](https://github.com/deadnews). -- [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) - :yen: (Previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. -- [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [dormstern](https://github.com/dormstern). -- [Syft](https://github.com/anchore/syft) - CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. By [Anchore](https://github.com/anchore). -- [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. -- [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) - :yen: Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. -- [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) - :yen: Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. -- [Trivy](https://github.com/aquasecurity/trivy) - Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). +### Networking -### Service Discovery +Container networking, overlay networks, DNS/service-discovery bridges. -- [docker-consul](https://github.com/gliderlabs/docker-consul) by [progrium][progrium] +- [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. +- [docker-consul](https://github.com/gliderlabs/docker-consul) - Consul packaged for Docker — registers and discovers running containers. - [docker-dns](https://github.com/bytesharky/docker-dns) - Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. `.docker`) on the host to simplify service discovery. -- [etcd](https://github.com/etcd-io/etcd) - Distributed reliable key-value store for the most critical data of a distributed system by [etcd-io](https://github.com/etcd-io) (former part of CoreOS). -- [istio](https://github.com/istio/istio) - An open platform to connect, manage, and secure microservices. -- [registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker by [gliderlabs][gliderlabs] and [progrium][progrium]. +- [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. +- [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. +- [Pipework](https://github.com/jpetazzo/pipework) - Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. +- [registrator](https://github.com/gliderlabs/registrator) - Service registry bridge for Docker. -### Volume Management / Data +### Reverse Proxy -- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) :yen:- The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. By [blockbridge](https://github.com/blockbridge) - - - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. -- [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. By [offen](https://github.com/offen) -- [duplicacy-cli-cron](https://github.com/GeiserX/duplicacy-cli-cron) - Docker-based encrypted dual-storage backup automation using Duplicacy CLI with cross-site redundancy and Telegram notifications. By [GeiserX](https://github.com/GeiserX). -- [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. By [ContainX][containx] +- [BunkerWeb](https://github.com/bunkerity/bunkerweb) - Open-source and next-gen Web Application Firewall (WAF). +- [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. +- [caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams) - Docker upstreams module for Caddy, configured with container labels. +- [Docker Dnsmasq Updater](https://github.com/moonbuggy/docker-dnsmasq-updater) - Update a remote dnsmasq server with Docker container hostnames. +- [docker-flow-proxy](https://github.com/docker-flow/docker-flow-proxy) - Reconfigures proxy every time a new service is deployed, or when a service is scaled. +- [Let's Encrypt Nginx-proxy Companion](https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion) - A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. +- [mesh-router](https://github.com/Yundera/mesh-router) - Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. +- [Nginx Proxy Manager](https://github.com/jc21/nginx-proxy-manager) - A beautiful web interface for proxying web based services with SSL. +- [nginx-proxy][nginxproxy] - Automated nginx proxy for Docker containers using docker-gen. +- [OpenResty Manager](https://github.com/Safe3/openresty-manager) - The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. +- [Swarm Router](https://github.com/flavioaiello/swarm-router) - A zero config service name based router for docker swarm mode with a fresh and more secure approach. +- [Træfɪk](https://github.com/containous/traefik) - Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd. + +## Storage & Data + +- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) - :yen: The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. +- [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. +- [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. +- [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. - [portworx](https://portworx.com) - :yen: Decentralized storage solution for persistent, shared and replicated volumes. - [quobyte](https://www.quobyte.com/) - :yen: Fully fault-tolerant distributed file system with a docker volume driver. -- [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. By[thecodeteam](https://github.com/thecodeteam) (DELL Technologies) +- [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. -- [Storidge](https://github.com/Storidge/quick-start) :ice_cube: - :yen: Software-defined Persistent Storage for Kubernetes and Docker Swarm. +## Observability -### User Interface +Monitor Docker hosts, containers, and the services running inside them. Self-hosted and SaaS together; commercial entries marked `:yen:`. -#### IDE integrations +- [ADRG](https://github.com/jaldertech/adrg) - Dynamic Docker resource governor using cgroups v2 to manage system load. +- [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - :yen: Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. +- [Autoheal](https://github.com/willfarrell/docker-autoheal) - Monitor and restart unhealthy docker containers automatically. +- [Better Stack](https://betterstack.com/community/guides/scaling-docker/) - :yen: A Docker-compatible observability stack that delivers log aggregation and uptime monitoring for containerized apps. +- [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. +- [Datadog](https://www.datadoghq.com/) - :yen: Full-stack monitoring service with first-class Docker, Kubernetes, and Mesos support. +- [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. +- [Docker-Sentinel](https://github.com/Will-Luck/Docker-Sentinel) - Automated container updates with per-container policies, rollback safety, and a real-time web dashboard. +- [DockProbe](https://github.com/deep-on/dockprobe) - Lightweight Docker monitoring dashboard in a single container. Real-time metrics, 6 anomaly detection rules, Telegram alerts, and 16 automated security scans. Zero config, ~50MB RAM. +- [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. +- [dockprom](https://github.com/stefanprodan/dockprom) - Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. +- [Doku](https://github.com/amerkurev/doku) - Doku is a simple web-based application that allows you to monitor Docker disk usage. +- [Dozzle](dozzle) - Monitor container logs in real-time with a browser or mobile device. +- [Drydock](https://github.com/CodesWhat/drydock) - Container update monitoring with web dashboard, 23 registry providers, 20 notification triggers, and distributed agent architecture. +- [Dynatrace](https://docs.dynatrace.com/docs/observe/infrastructure-observability/container-platform-monitoring) - :yen: Monitor containerized applications without installing agents or modifying your Run commands. +- [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack. +- [Maintenant](https://github.com/kolapsis/maintenant) - Self-discovering infrastructure monitoring for Docker and Kubernetes. Auto-detects containers via labels, with endpoint monitoring, heartbeats, TLS certificates, resource metrics, update intelligence, and a built-in status page. Single binary with embedded SPA. +- [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :yen: Docker Monitoring for DevOps and IT, SaaS Pay-per-Host model. +- [Sysdig Monitor](https://www.sysdig.com/products/monitor) - :yen: Software or SaaS service that monitors, alerts, and troubleshoots containers using system calls; container-specific features for Docker and Kubernetes. +- [Wiremap](https://github.com/codeofmario/wiremap) - A self-hosted visual Docker network topology explorer with real-time log streaming, live stats, embedded terminal, and container inspection. -- JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) -- Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) -- [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs by [Silex](https://github.com/Silex) +## Security + +Container hardening, runtime security, policy, compliance, and forensics. Self-hosted and commercial together; commercial entries marked `:yen:`. + +- [Aqua Security](https://www.aquasec.com) - :yen: Securing container-based applications from Dev to Production on any platform. +- [buildcage](https://github.com/dash14/buildcage) - Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. +- [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. +- [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. +- [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. +- [Den](https://github.com/us/den) - Self-hosted sandbox runtime for AI agents with Docker containers, security hardening, REST API and WebSocket support. +- [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. +- [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions. +- [docker-socket-proxy](https://github.com/Tecnativa/docker-socket-proxy) - HAProxy-based fine-grained filter for the Docker API socket; widely used to expose a restricted socket to reverse proxies and homelab stacks. +- [KICS](https://github.com/checkmarx/kics) - An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. +- [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) - :yen: (Previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. +- [segspec](https://github.com/dormstern/segspec) - Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. +- [Sysdig Falco](https://github.com/falcosecurity/falco) - Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. +- [Sysdig Secure](https://www.sysdig.com/solutions/cloud-detection-and-response-cdr) - :yen: Sysdig Secure addresses run-time security through behavioral monitoring and defense, and provides deep forensics based on open source Sysdig for incident response. +- [Trend Micro DeepSecurity](https://www.trendmicro.com/en_us/business/products/hybrid-cloud/deep-security.html) - :yen: Trend Micro DeepSecurity offers runtime protection for container workloads and hosts as well as preruntime scanning of images to identify vulnerabilities, malware and content such as hardcoded secrets. -#### Desktop +## User Interfaces + +### Desktop Native desktop applications for managing and monitoring docker hosts and clusters - [Docker DB Manager](https://github.com/AbianS/docker-db-manager) - Desktop app for managing Docker database containers with visual interface and one-click operations. - [Docker Desktop](https://www.docker.com/products/docker-desktop/) - Official native app. Only for Windows and MacOS. -- [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - Built on Electron. By [felixgborrego](https://github.com/felixgborrego/). +- [Simple Docker UI](https://github.com/felixgborrego/simple-docker-ui) - Built on Electron. - [Stevedore](https://github.com/slonopotamus/stevedore) - Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [slonopotamus](https://github.com/slonopotamus). -#### Terminal +### Terminal -##### Terminal UI +TUIs, CLI tools, and shell integrations for Docker. - [d4s](https://github.com/jr-k/d4s) - A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s. -- [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). -- [dockdash](https://github.com/byrnedo/dockdash) detailed stats. By [byrnedo] +- [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. +- [dctl](https://github.com/FabienD/docker-stack) - Dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. +- [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. +- [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. +- [dockdash](https://github.com/byrnedo/dockdash) - Detailed Docker container stats. +- [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. +- [docker-captain](https://github.com/lucabello/docker-captain) - A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. +- [dockerfile-mode](https://github.com/spotify/dockerfile-mode) - An Emacs mode for handling Dockerfiles. +- [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. - [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers. - [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface,. -- [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters). -- [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [durableprogramming](https://github.com/durableprogramming). +- [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker. +- [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers. -- [easydocker](https://github.com/joao-zanutto/easydocker) - A Terminal UI highly inpired by k9s levaraging beatiful BubbleTea graphics. By [joao-zanutto](https://github.com/joao-zanutto). +- [easydocker](https://github.com/joao-zanutto/easydocker) - A Terminal UI highly inpired by k9s levaraging beatiful BubbleTea graphics. - [goManageDocker](https://github.com/ajayd-san/gomanagedocker) - TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box. -- [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [jesseduffield](https://github.com/jesseduffield). +- [lazydocker](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. - [lazyjournal](https://github.com/Lifailon/lazyjournal) - A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring. -- [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard),. -- [swarmcli](https://github.com/Eldara-Tech/swarmcli) - Swarm Management at the speed of thought — with real-time log streaming, instant shell access to containers, seamless port forwarding, and on-demand secret reveal capabilities, giving you full control over your Docker Swarm without breaking your flow. -- [tdocker](https://github.com/pivovarit/tdocker) - A `docker ps` replacement for everyday container operations by [@pivovarit](https://github.com/pivovarit). -- [wharf](https://github.com/idesyatov/wharf) - A k9s-inspired TUI for Docker Compose with vim-style navigation, real-time CPU/MEM monitoring with braille charts, container file browser, SSH remote host support, and command mode. By [@idesyatov](https://github.com/idesyatov). - -##### CLI tools - -- [captain](https://github.com/jenssegers/captain) :ice_cube: - Easily start and stop docker compose projects from any directory. By [jenssegers](https://github.com/jenssegers). -- [dcinja](https://github.com/Falldog/dcinja) - The powerful and smallest binary size of template engine for docker command line environment. By [Falldog](https://github.com/Falldog). -- [dcp](https://github.com/exdx/dcp) :ice_cube: - A simple tool for copying files from container filesystems. By [exdx](https://github.com/exdx). -- [dctl](https://github.com/FabienD/docker-stack) - Dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD). -- [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. By [s0rg](https://github.com/s0rg). -- [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [christian-korneck](https://github.com/christian-korneck). -- [docker-captain](https://github.com/lucabello/docker-captain) - A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. -- [DVM](https://github.com/howtowhale/dvm) :ice_cube: - Docker version manager. -- [goinside](https://github.com/iamsoorena/goinside) :ice_cube: - Get inside a running docker container easily. -- [Pdocker](https://github.com/g31s/Pdocker) :ice_cube: - A simple tool to manage and maintain Docker for personal projects. +- [oxker](https://github.com/mrjackwills/oxker) - A simple tui to view & control docker containers. - [proco](https://github.com/shiwaforce/poco) - Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. - [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments,. -- [skopeo](https://github.com/containers/skopeo) - Work with remote images registries - retrieving information, images, signing content. -- [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. By [segersniels](https://github.com/segersniels). - -- [tsaotun](https://github.com/qazbnm456/tsaotun) :ice_cube: - Python based Assistance for Docker. - -##### Other - -- [dext-docker-registry-plugin](https://github.com/vutran/dext-docker-registry-plugin) :ice_cube: - Search the Docker Registry with the Dext smart launcher. By [vutran](https://github.com/vutran). -- [docker-ssh](https://github.com/jeroenpeeters/docker-ssh) :ice_cube: - SSH Server for Docker containers ~ Because every container should be accessible. By [jeroenpeeters](https://github.com/jeroenpeeters). -- [dockerfile-mode](https://github.com/spotify/dockerfile-mode) An emacs mode for handling Dockerfiles by [spotify][spotify] - -- [MultiDocker](https://github.com/marty90/multidocker) :ice_cube: - Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. -- [Powerline-Docker](https://github.com/adrianmo/powerline-docker) :ice_cube: - A Powerline segment for showing the status of Docker containers. +- [supdock](https://github.com/segersniels/supdock) - Allows for slightly more visual usage of Docker with an interactive prompt. +- [swarmcli](https://github.com/Eldara-Tech/swarmcli) - Swarm Management at the speed of thought — with real-time log streaming, instant shell access to containers, seamless port forwarding, and on-demand secret reveal capabilities, giving you full control over your Docker Swarm without breaking your flow. +- [tdocker](https://github.com/pivovarit/tdocker) - A `docker ps` replacement for everyday container operations. +- [wharf](https://github.com/idesyatov/wharf) - A k9s-inspired TUI for Docker Compose with vim-style navigation, real-time CPU/MEM monitoring with braille charts, container file browser, SSH remote host support, and command mode. -#### Web +### Web -- [Arcane](https://github.com/getarcaneapp/arcane) - An easy and modern Docker management platform, built with everybody in mind. By [getarcaneapp](https://github.com/getarcaneapp). +- [Arcane](https://github.com/getarcaneapp/arcane) - An easy and modern Docker management platform, built with everybody in mind. - [CASA](https://github.com/knrdl/casa) - Outsource the administration of a handful of containers to your co-workers,. -- [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty [wrfly](https://github.com/wrfly). -- [dockemon](https://github.com/ProductiveOps/dokemon) :ice_cube: - Docker Container Management GUI. +- [Container Web TTY](https://github.com/wrfly/container-web-tty) - Connect your containers via a web-tty. - [Docker Registry Browser](https://github.com/klausmeyer/docker-registry-browser) - Web Interface for the Docker Registry HTTP API v2. -- [docker-registry-web](https://github.com/mkuchin/docker-registry-web) :ice_cube: - Web UI, authentication service and event recorder for private docker registry v2. - [docker-swarm-visualizer](https://github.com/dockersamples/docker-swarm-visualizer) - Visualizes Docker services on a Docker Swarm (for running demos). - [dockge](https://github.com/louislam/dockge) - Easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager. - [Komodo](https://github.com/mbecker20/komodo) - A tool to build and deploy software on many servers. -- [OctoLinker](https://github.com/OctoLinker/OctoLinker) :ice_cube: - A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. - [Portainer](https://github.com/portainer/portainer) - A lightweight management UI for managing your Docker hosts or Docker Swarm clusters. -- [Rapid Dashboard](https://github.com/ozlerhakan/rapid) :ice_cube: - A simple query dashboard to use Docker Remote API. -- [Seagull](https://github.com/tobegit3hub/seagull) :ice_cube: - Friendly Web UI to monitor docker daemon. - [Swarmpit](https://github.com/swarmpit/swarmpit) - Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. -- [Swirl](https://github.com/cuigh/swirl) :ice_cube: - Swirl is a web management tool for Docker, focused on swarm cluster By [cuigh](https://github.com/cuigh/). -- [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [fr4nsys](https://github.com/fr4nsys). - -## Docker Images - -### Base Tools - -Tools and applications that are either installed inside containers or designed to be run as a [sidecar](https://learn.microsoft.com/en-us/azure/architecture/patterns/sidecar) - -- [amicontained](https://github.com/genuinetools/amicontained) :ice_cube: - Container introspection tool. Find out what container runtime is being used as well as features available. -- [Chaperone](https://github.com/garywiz/chaperone) :ice_cube: - A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. -- [ckron](https://github.com/nicomt/ckron) - A cron-style job scheduler for docker,. -- [CoreOS][coreos] - Linux for Massive Server Deployments -- [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system,. -- [docker-alpine](https://github.com/gliderlabs/docker-alpine) :ice_cube: - A super small Docker base image _(5MB)_ using Alpine Linux. -- [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data. -- [dockerize](https://github.com/powerman/dockerize) - Utility to simplify running applications in docker containers by [jwilder][jwilder], [powerman][powerman]. -- [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool). -- [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container. -- [lstags](https://github.com/ivanilves/lstags) :ice_cube: - Sync Docker images across registries. -- [microcheck](https://github.com/tarampampam/microcheck) - Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. -- [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. -- [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa). -- [sue](https://github.com/theAkito/sue) :ice_cube: - Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito]. -- [supercronic](https://github.com/aptible/supercronic) - Crontab-compatible job runner, designed specifically to run in containers. -- [TrivialRC](https://github.com/vorakl/TrivialRC) :ice_cube: - A minimalistic Runtime Configuration system and process manager for containers [vorakl](https://github.com/vorakl). - -### Builder - -Applications designed to help or simplify building **new** images - -- [ansible-bender](https://github.com/ansible-community/ansible-bender) - A tool utilising `ansible` and `buildah`. -- [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images. -- [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit. -- [cekit](https://github.com/cekit/cekit) - A tool used by openshift to build base images using different build engines. -- [container-factory](https://github.com/mutable/container-factory) :ice_cube: - Produces Docker images from tarballs of application source code. -- [copy-docker-image](https://github.com/mdlavin/copy-docker-image) :ice_cube: - Copy a Docker image between registries without a full Docker installation. -- [Derrick](https://github.com/alibaba/derrick) :ice_cube: - A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [alibaba](https://github.com/alibaba). -- [dlayer](https://github.com/orisano/dlayer) - Docker layer analyzer. -- [docker-companion](https://github.com/mudler/docker-companion) - A command line tool written in Golang to squash and unpack docker images. -- [docker-make](https://github.com/CtripCloud/docker-make) :ice_cube: - Build, tag,and push a bunch of related docker images via a single command. -- [docker-repack](https://github.com/orf/docker-repack) - Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. By [orf](https://github.com/orf). -- [docker-replay](https://github.com/bcicen/docker-replay) :ice_cube: - Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen). -- [DockerSlim](https://github.com/docker-slim/docker-slim) shrinks fat Docker images creating the smallest possible images. -- [Dockly](https://github.com/swipely/dockly) :ice_cube: - Dockly is a gem made to ease the pain of packaging an application in Docker. -- [essex](https://github.com/utensils/essex) - Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [jamesbrink](https://github.com/jamesbrink). -- [HPC Container Maker](https://github.com/NVIDIA/hpc-container-maker) - Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. -- [img](https://github.com/genuinetools/img) - Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. -- [packer](https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker) - Hashicorp tool to build machine images including docker image integrated with configuration management tools like chef, puppet, ansible. -- [portainer](https://github.com/duedil-ltd/portainer) :ice_cube: - Apache Mesos framework for building Docker images. -- [Production-Ready Python Containers :yen:](https://pythonspeed.com/products/pythoncontainer/) - A template for creating production-ready Docker images for Python applications. -- [RAUDI](https://github.com/cybersecsi/RAUDI) - A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [SecSI](https://github.com/cybersecsi). -- [runlike](https://github.com/lavie/runlike) - Generate `docker run`command and options from running containers. -- [userdef](https://github.com/theAkito/userdef) :ice_cube: - An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito]. -- [Whaler](https://github.com/P3GLEG/Whaler) - Program to reverse Docker images into Dockerfiles. - -- [Whales](https://github.com/Gueils/whales) :ice_cube: - A tool to automatically dockerize your applications. - -### Dockerfile - -- [chaperone-docker](https://github.com/garywiz/chaperone-docker) :ice_cube: - A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. -- [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. -- [Dockerfile Project](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. -- [dockerfilegraph](https://github.com/patrickhoefler/dockerfilegraph) - Visualize your multi-stage Dockerfiles. By [PatrickHoefler](https://github.com/patrickhoefler). -- [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. -- [Vektorcloud](https://github.com/vektorcloud) - A collection of minimal, Alpine-based Docker images. - -Examples by: - -- [0xy](https://gitlab.com/0xy/dockerfiles) -- [arun-gupta](https://github.com/arun-gupta/docker-images) -- [awesome-startup](https://github.com/awesome-startup/docker-compose) -- [crosbymichael](https://github.com/crosbymichael/Dockerfiles) -- [jessfraz](https://github.com/jessfraz/dockerfiles) -- [komljen](https://github.com/komljen/dockerfile-examples) -- [kstaken](https://github.com/kstaken/dockerfile-examples) -- [ondrejmo](https://github.com/ondrejmo/Dockerfiles) -- [vimagick](https://github.com/vimagick/dockerfiles) - -### Linter - -- [Dockadvisor](https://github.com/deckrun/dockadvisor) - Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks. -- [docker-image-size-limit](https://github.com/wemake-services/docker-image-size-limit) - A tool to keep an eye on your docker images size. -- [Dockerfile Linter action](https://github.com/buddy-works/dockerfile-linter) :ice_cube: - The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. -- [FROM:latest](https://github.com/replicatedhq/dockerfilelint) :ice_cube: - An opinionated Dockerfile linter. -- [Hadolint](https://github.com/hadolint/hadolint) - A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions;. +- [usulnet](https://github.com/fr4nsys/usulnet) - A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. -### Metadata +### IDE Integrations -- [opencontainer](https://github.com/opencontainers/image-spec/blob/main/annotations.md) - A convention and shared namespace for Docker labels defined by OCI Image Spec. - -### Registry - -Services to securely store your Docker images. - -- [Amazon Elastic Container Registry :yen:](https://aws.amazon.com/ecr/) - Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. -- [Azure Container Registry :yen:](https://azure.microsoft.com/en-us/products/container-registry/#overview) - Manage a Docker private registry as a first-class Azure resource. -- [CargoOS](https://github.com/RedCoolBeans/cargos-buildroot) :ice_cube: - A bare essential OS for running the Docker Engine on bare metal or Cloud. By [RedCoolBeans](https://github.com/RedCoolBeans). -- [cleanreg](https://github.com/hcguersoy/cleanreg) :ice_cube: - A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC. -- [Cloudsmith :yen:](https://cloudsmith.com/product/formats/docker-registry) - A fully managed package management SaaS, with first-class support for public and private Docker registries (and many others, incl. Helm charts for the Kubernetes ecosystem). Has a generous free-tier and is also completely free for open-source. -- [Container Registry Service :yen:](https://container-registry.com/) - Harbor based Container Management Solution as a Service for teams and organizations. Free tier offers 1 GB storage for private repositories. -- [Cycle.io :yen:](https://cycle.io/) - Bare-metal container hosting. -- [DigitalOcean :yen:](https://www.digitalocean.com/products/container-registry) - DigitalOcean Container Registry. -- [Docker Hub](https://hub.docker.com/) provided by Docker Inc. -- [Docker Registry v2][distribution] - The Docker toolset to pack, ship, store, and deliver content -- [Docket](https://github.com/netvarun/docket) :ice_cube: - Custom docker registry that allows for lightning fast deploys through bittorrent. -- [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. -- [GCP Artifact Registry :yen:](https://cloud.google.com/artifact-registry/docs) Fast, private Docker image storage on Google Cloud Platform. -- [Gitea Container Registry](https://docs.gitea.com/usage/packages/container) - Integrated Docker registry in Gitea, ideal for private, small-scale image hosting. -- [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - GitHub's solution for storing and managing Docker images, with tight integration into GitHub Actions. -- [GitLab Container Registry](https://docs.gitlab.com/user/packages/container_registry/) - Registry focused on using its images in GitLab CI. -- [Harbor](https://github.com/goharbor/harbor) An open source trusted cloud native registry project that stores, signs, and scans content. Supports replication, user management, access control and activity auditing. By [CNCF](https://www.cncf.io) formerly [VMWare][vmware] -- [JFrog Artifactory :yen:](https://jfrog.com/artifactory/) - Artifact Repository Manager, can be used as private Docker Registry as well. -- [Kraken](https://github.com/uber/kraken) - Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. -- [NORA](https://github.com/getnora-io/nora) - Lightweight multi-protocol artifact registry supporting Docker, Maven, npm, Cargo and PyPI in a single 32MB binary. Pull-through cache, Web UI, Prometheus metrics, RBAC auth. -- [nscr](https://github.com/jhstatewide/nscr) - A light-weight, self-contained container registry that's easy to run and maintain. -- [Quay.io :yen:](https://quay.io/) - Secure hosting for private Docker repositories. -- [Registryo](https://github.com/inmagik/registryo) - UI and token based authentication server for onpremise docker registry. -- [RepoFlow](https://www.repoflow.io) - A simple and easy-to-use package management platform with Docker support alongside other formats like PyPI, Maven, npm, and Helm. Includes smart search, built-in Docker image scanning, and a great free option for both self-hosted and cloud use. -- [Rescoyl](https://github.com/noteed/rescoyl) :ice_cube: - Private Docker registry (free and open source). -- [Sonatype Nexus Repository](https://www.sonatype.com/products/sonatype-nexus-repository) - Manage binaries and build artifacts across your software supply chain. +- JetBrains IDEs (IntelliJ IDEA, GoLand, WebStorm, CLion etc.) has [built-in Docker plugin](https://www.jetbrains.com/help/idea/docker.html#managing-images) +- Eclipse [Docker Tooling plugin](https://www.eclipse.org/community/eclipse_newsletter/2016/july/article2.php) +- [docker.el](https://github.com/Silex/docker.el) Manage docker from Emacs. -## Development with Docker +## Developer Workflow ### API Client -- [ahab](https://github.com/instacart/ahab) :ice_cube: - Docker event handling with Python. -- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [lispyclouds][lispyclouds]. +- [contajners](https://github.com/lispyclouds/contajners) - An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. - [Docker Client for JVM](https://github.com/gesellix/docker-client) - A Docker remote api client library for the JVM, written in Groovy. -- [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. By [masaeedu](https://github.com/masaeedu). -- [docker-controller-bot](https://github.com/dgongut/docker-controller-bot) - Telegram bot to control docker containers. By [dgongut](https://github.com/dgongut/). -- [docker-it-scala](https://github.com/whisklabs/docker-it-scala) :ice_cube: - Docker integration testing kit with Scala. -- [docker-java-api](https://github.com/amihaiemil/docker-java-api) :ice_cube: - Lightweight, truly object-oriented, Java client for Docker's API. By [amihaiemil](https://github.com/amihaiemil). +- [Docker Client TypeScript](https://gitlab.com/masaeedu/docker-client) - Docker API client for JavaScript, automatically generated from Swagger API definition from moby repository. +- [docker-controller-bot](https://github.com/dgongut/docker-controller-bot) - Telegram bot to control docker containers. - [docker-maven-plugin](https://github.com/fabric8io/docker-maven-plugin) - A Maven plugin for running and creating Docker images. - [Docker.DotNet](https://github.com/Microsoft/Docker.DotNet) - C#/.NET HTTP client for the Docker remote API. -- [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2) [rquackenbush](https://github.com/rquackenbush). +- [Docker.Registry.DotNet](https://github.com/ChangemakerStudios/Docker.Registry.DotNet) - .NET (C#) Client Library for interacting with a Docker Registry API (v2). - [dockerode](https://github.com/apocas/dockerode) - Docker Remote API node.js module. -- [DoMonit](https://github.com/eon01/DoMonit) :ice_cube: - A simple Docker Monitoring wrapper For Docker API. - [go-dockerclient](https://github.com/fsouza/go-dockerclient/) - Go HTTP client for the Docker remote API. - [Gradle Docker plugin](https://github.com/gesellix/gradle-docker-plugin) - A Docker remote api plugin for Gradle. -- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) - Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [greenled](https://github.com/greenled). +- [Portainer stack utils](https://github.com/greenled/portainer-stack-utils) - Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. - [sbt-docker](https://github.com/marcuslonnberg/sbt-docker) - Create Docker images directly from sbt. ### CI/CD -- [Buddy :yen:](https://buddy.works) - The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. +Self-hosted CI engines, build accelerators, and hosted services that target Docker workflows. Commercial entries marked `:yen:`. + +- [Buddy](https://buddy.works) - :yen: The best of Git, build & deployment tools combined into one powerful tool that supercharged our development. - [Captain](https://github.com/harbur/captain) - Convert your Git workflow to Docker containers ready for Continuous Delivery. -- [Cyclone](https://github.com/caicloud/cyclone) :ice_cube: - Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources. +- [CircleCI](https://circleci.com/) - :yen: Push or pull Docker images from your build environment, or build and run containers right on CircleCI. +- [CodeFresh](https://octopus.com/codefresh) - :yen: End-to-end build, test, and share for Docker applications, with automated testing. +- [ConcourseCI](https://concourse-ci.org) - :yen: Pipeline-oriented CI SaaS platform for DevOps teams. - [Defang](https://github.com/DefangLabs/defang) - Deploy Docker Compose to your favorite cloud in minutes. -- [Depot :yen:](https://depot.dev) - Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. [Done in seconds](https://depot.dev/#benchmarks). -- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry by [crazy-max]. +- [Depot](https://depot.dev) - :yen: Build Docker images fast, in the cloud. Blazing fast compute, automatic intelligent caching, and zero configuration. +- [Diun](https://github.com/crazy-max/diun) - Receive notifications when an image or repository is updated on a Docker registry. - [dockcheck](https://github.com/mag37/dockcheck) - A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. - [Docker plugin for Jenkins](https://github.com/jenkinsci/docker-plugin/) - The aim of the docker plugin is to be able to use a docker host to dynamically provision a slave, run a single build, then tear-down that slave. - [Drone](https://github.com/drone/drone) - Continuous integration server built on Docker and configured using YAML files. @@ -567,124 +452,107 @@ Services to securely store your Docker images. - [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) - GitLab has integrated CI to test, build and deploy your code with the use of GitLab runners. - [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. - [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed. -- [Microservices Continuous Deployment](https://github.com/francescou/docker-continuous-deployment) :ice_cube: - Continuous deployment of a microservices application. -- [mu](https://github.com/stelligent/mu) :ice_cube: - Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [Stelligent](https://github.com/stelligent). -- [Popper](https://github.com/systemslab/popper) :ice_cube: - Github actions workflow (HCL syntax) execution engine. -- [Screwdriver :yen:](https://screwdriver.cd/) - Yahoo's OpenSource buildplatform designed for Continous Delivery. +- [Screwdriver](https://screwdriver.cd/) - :yen: Yahoo's OpenSource buildplatform designed for Continous Delivery. +- [Semaphore CI](https://semaphore.io/) - :yen: High-performance cloud CI that builds, tests and ships containers to production. - [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository. -- [SwarmCI](https://github.com/ghostsquad/swarmci) :ice_cube: - Create a distributed, isolated task pipeline in your Docker Swarm. - [Tekton CD](https://tekton.dev/) - A cloud-native pipeline resource. +- [TravisCI](https://www.travis-ci.com/) - :yen: Hosted CI for GitHub projects with Docker support. ### Development Environment -- [Binci](https://github.com/binci/binci) :ice_cube: - Containerize your development workflow. (formerly DevLab by [TechnologyAdvice](https://github.com/TechnologyAdvice)). - [coder](https://github.com/coder/coder) - Remote development machines powered by Terraform or Docker. -- [construi](https://github.com/lstephen/construi) :ice_cube: - Run your builds inside a Docker defined environment. -- [dde](https://github.com/whatwedo/dde) - Local development environment toolset based on Docker. By [whatwedo](https://github.com/whatwedo). -- [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [bibendi](https://github.com/bibendi). -- [dobi](https://github.com/dnephin/dobi) :ice_cube: - A build automation tool for Docker applications. By [dnephin](https://github.com/dnephin). -- [Docker Missing Tools](https://github.com/nandoquintana/docker-missing-tools) :ice_cube: - A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [NandoQuintana](https://github.com/nandoquintana). -- [Docker-Arch](https://github.com/Ph3nol/Docker-Arch) :ice_cube: - Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [Ph3nol](https://github.com/ph3nol). -- [Docker-sync](https://github.com/EugenMayer/docker-sync) - Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [EugenMayer](https://github.com/EugenMayer). -- [docker-vm](https://github.com/shyiko/docker-vm) :ice_cube: - Simple and transparent alternative to boot2docker (backed by Vagrant). -- [DockerDL](https://github.com/matifali/dockerdl) - Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. -- [Eclipse Che](https://github.com/eclipse/che) - Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE. -- [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. By [EnvCLI](https://github.com/EnvCLI). -- [ESP32 Linux - Docker builder](https://github.com/hpsaturn/esp32s3-linux) - Container solution to compile Linux and develop it for ESP32 microcontrollers - By [Hpsaturn](https://github.com/hpsaturn). +- [dde](https://github.com/whatwedo/dde) - Local development environment toolset based on Docker. +- [DIP](https://github.com/bibendi/dip) - CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. +- [EnvCLI](https://github.com/EnvCLI/EnvCLI) - Replace your local installation of Node, Go, ... with project-specific docker containers. - [Gebug](https://github.com/moshebe/gebug) - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. -- [HarborPilot](https://github.com/potterwhite/HarborPilot) - Automated multi-platform Docker image builder for embedded Linux development (RK3588, RV1126, RK3568). Features three-layer config inheritance, PORT_SLOT-based port allocation, and cross-version Ubuntu support (20.04/22.04/24.04). By [potterwhite](https://github.com/potterwhite). -- [Kitt](https://github.com/senges/kitt) :ice_cube: - A portable and disposable Shell environment, based on Docker and Nix. By [senges](https://github.com/senges). -- [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://www.thinktandem.io/). -- [Rust Universal Compiler](https://github.com/Peco602/rust-universal-compiler) :ice_cube: - Container solution to compile Rust projects for Linux, macOS and Windows. By [Peco602][peco602]. -- [uniget](https://github.com/uniget-org/cli) - Uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [nicholasdille](https://github.com/nicholasdille). -- [Vagga](https://github.com/tailhook/vagga) :ice_cube: - Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments. -- [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com). - -### Garbage Collection - -- [caduc](https://github.com/tjamet/caduc) :ice_cube: - A docker garbage collector cleaning stuff you did not use recently. -- [Docker Clean](https://github.com/ZZROTDesign/docker-clean) :ice_cube: - A script that cleans Docker containers, images and volumes. -- [docker-custodian](https://github.com/Yelp/docker-custodian) - Keep docker hosts tidy. By [Yelp](https://github.com/Yelp). -- [docker_gc](https://github.com/pdacity/docker_gc) :ice_cube: - Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service. -- [Docuum](https://github.com/stepchowfun/docuum) - Least recently used (LRU) eviction of Docker images. +- [HarborPilot](https://github.com/potterwhite/HarborPilot) - Automated multi-platform Docker image builder for embedded Linux development (RK3588, RV1126, RK3568). Features three-layer config inheritance, PORT_SLOT-based port allocation, and cross-version Ubuntu support (20.04/22.04/24.04). +- [Lando](https://github.com/lando/lando) - Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. +- [uniget](https://github.com/uniget-org/cli) - Uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). +- [Zsh-in-Docker](https://github.com/deluan/zsh-in-docker) - Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line!. ### Serverless -- [Apache OpenWhisk](https://github.com/apache/openwhisk) - A serverless, open source cloud platform that executes functions in response to events at any scale. By [apache](https://github.com/apache). -- [Funker](https://github.com/bfirsh/funker-example-voting-app) :ice_cube: - Functions as Docker containers example voting app. By [bfirsh](https://github.com/bfirsh). -- [IronFunctions](https://github.com/iron-io/functions) :ice_cube: - The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions. +- [Apache OpenWhisk](https://github.com/apache/openwhisk) - A serverless, open source cloud platform that executes functions in response to events at any scale. - [Koyeb](https://www.koyeb.com/) - :yen: Koyeb is a developer-friendly serverless platform to deploy apps globally. Seamlessly run Docker containers, web apps, and APIs with git-based deployment, native autoscaling, a global edge network, and built-in service mesh and discovery. -- [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas). - -- [SCAR](https://github.com/grycap/scar) :ice_cube: - Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda). +- [OpenFaaS](https://github.com/openfaas/faas) - A complete serverless functions framework for Docker and Kubernetes. ### Testing -- [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [GoogleContainerTools][googlecontainertools]. +- [Container Structure Test](https://github.com/GoogleContainerTools/container-structure-test) - A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. - [dgoss](https://github.com/goss-org/goss/tree/master/extras/dgoss) - A fast YAML based tool for validating docker containers. -- [DockerSpec](https://github.com/zuazo/dockerspec) :ice_cube: - A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [zuazo](https://github.com/zuazo). -- [EZDC](https://github.com/lynchborg/ezdc) :ice_cube: - Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [byrnedo]. -- [InSpec][inspec] - InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. By [chef](https://github.com/chef) -- [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/). -- [Pull Dog](https://github.com/apps/pull-dog) - A GitHub app that automatically creates Docker-based test environments for your pull requests, from your docker-compose files. Not open source. -- [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [alexei-led](https://github.com/alexei-led). +- [Kurtosis](https://github.com/kurtosis-tech/kurtosis) - A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. +- [Pumba](https://github.com/alexei-led/pumba) - Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. ### Wrappers -- [Ansible](https://docs.ansible.com/projects/ansible/latest/collections/community/general/docker_container_module.html) - Manage the life cycle of Docker containers. By RedHat. -- [dexec](https://github.com/docker-exec/dexec) :ice_cube: - Command line interface written in Go for running code with Docker Exec images. -- [dockerized](https://github.com/benzaita/dockerized-cli) :ice_cube: - Seamlessly execute commands in a container. -- [Dray](https://github.com/CenturyLinkLabs/dray) :ice_cube: - An engine for managing the execution of container-based workflows. - [Hokusai](https://github.com/artsy/hokusai) - A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [artsy](https://github.com/artsy). - [Preevy](https://github.com/livecycle/preevy) - Preview environments for Docker and Docker Compose projects. Test your changes and get feedback from devs and non-devs (Product/Design) by deploying pull requests to the your cloud provider as part of your CI pipeline. -- [Shutit](https://github.com/ianmiell/shutit) :ice_cube: - Tool for building and maintaining complex Docker deployments. - [subuser](https://github.com/subuser-security/subuser) - Makes it easy to securely and portably run graphical desktop applications in Docker. -- [Terraform cloud-init config](https://github.com/christippett/terraform-cloudinit-container-server) :ice_cube: - Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM. -- [Turbo](https://github.com/ramitsurana/turbo) :ice_cube: - Simple and Powerful utility for docker. By [ramitsurana][ramitsurana]. - [udocker](https://github.com/indigo-dc/udocker) - A tool to execute simple docker containers in batch or interactive systems without root privileges. - [Vagrant - Docker provider](https://developer.hashicorp.com/vagrant/docs/providers/docker/basics) - Good starting point is [vagrant-docker-example](https://github.com/bubenkoff/vagrant-docker-example). -## Services based on Docker (mostly :yen:) +## In-Container Tooling -### CI Services +Tools and applications that are either installed inside containers or designed to be run as a [sidecar](https://learn.microsoft.com/en-us/azure/architecture/patterns/sidecar) -- [CircleCI](https://circleci.com/) - :yen: Push or pull Docker images from your build environment, or build and run containers right on CircleCI. -- [CodeFresh](https://codefresh.io) - :yen: Everything you need to build, test, and share your Docker applications. Provides automated end to end testing. -- [CodeShip](https://www.cloudbees.com/blog/how-to-run-codeship-parallel-test-pipelines-efficiently-for-optimal-ci-parallelization) - :yen: Work with your established Docker workflows while automating your testing and deployment tasks with our hosted platform dedicated to speed and security. -- [ConcourseCI](https://concourse-ci.org) - :yen: A CI SaaS platform for developers and DevOps teams pipeline oriented. -- [Semaphore CI](https://semaphore.io/) :yen: — A high-performance cloud solution that makes it easy to build, test and ship your containers to production. -- [TravisCI](https://www.travis-ci.com/) - :yen: A Free github projects continuous integration Saas platform for developers and Devops. +- [cdebug](https://github.com/iximiuz/cdebug) - Swiss-army knife for debugging running containers via ephemeral sidecars; works with Docker, containerd, and Kubernetes. +- [ckron](https://github.com/nicomt/ckron) - A cron-style job scheduler for docker,. +- [CoreOS][coreos] - Linux for Massive Server Deployments +- [docker-gen](https://github.com/jwilder/docker-gen) - Generate files from docker container meta-data. +- [dockerize](https://github.com/powerman/dockerize) - Utility to simplify running applications in docker containers. +- [GoSu](https://github.com/tianon/gosu) - Run this specific application as this specific user and get out of the pipeline (entrypoint script tool). +- [is-docker](https://github.com/sindresorhus/is-docker) - Check if the process is running inside a Docker container. +- [microcheck](https://github.com/tarampampam/microcheck) - Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. +- [Ofelia](https://github.com/mcuadros/ofelia/) - Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. Supports configuration from container labels and/or configuration files. +- [su-exec](https://github.com/ncopa/su-exec) - This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. +- [supercronic](https://github.com/aptible/supercronic) - Crontab-compatible job runner, designed specifically to run in containers. -### CaaS +# Learning Resources -- [Amazon ECS](https://aws.amazon.com/ecs/) - :yen: A management service on EC2 that supports Docker containers. -- [Appfleet](https://appfleet.com/) - :yen: Edge platform to deploy and manage containerized services globally. The system will route the traffic to the closest location for lower latency. -- [Azure AKS](https://azure.microsoft.com/en-us/products/kubernetes-service/) - :yen: Simplify Kubernetes management, deployment, and operations. Use a fully managed Kubernetes container orchestration service. -- [Cloud 66](https://www.cloud66.com) - :yen: Full-stack hosted container management as a service. -- [Giant Swarm](https://www.giantswarm.io/) - :yen: Simple microservice infrastructure. Deploy your containers in seconds. -- [Google Container Engine](https://docs.cloud.google.com/kubernetes-engine/docs) - :yen: Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. -- [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) - :yen: Integrated platform for data and containers built on Apache Mesos. -- [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) - :yen: Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud. -- [Triton](https://www.joyent.com/) - :yen: Elastic container-native infrastructure by Joyent. +## Where to Start + +- [Benefits of using Docker](https://semaphore.io/blog/docker-benefits) for development and delivery, with a practical roadmap for adoption. +- [Bootstrapping Microservices](https://www.manning.com/books/bootstrapping-microservices-with-docker-kubernetes-and-terraform) - A practical and project-based guide to building applications with microservices, starts by building a Docker image for a single microservice and publishing it to a private container registry, finishes by deploying a complete microservices application to a production Kubernetes cluster. +- [Docker Curriculum](https://github.com/prakhar1989/docker-curriculum): A comprehensive tutorial for getting started with Docker. Teaches how to use Docker and deploy dockerized apps on AWS with Elastic Beanstalk and Elastic Container Service. +- [Docker Documentation](https://docs.docker.com/): the official documentation. +- [Docker for beginners](https://github.com/groda/big_data/blob/master/docker_for_beginners.md): A tutorial for beginners who need to learn the basics of Docker—from "Hello world!" to basic interactions with containers, with simple explanations of the underlying concepts. +- [Docker for novices](https://www.youtube.com/watch?v=xsjSadjKXns) An introduction to Docker for developers and testers who have never used it. (Video 1h40, recorded linux.conf.au 2019 — Christchurch, New Zealand) +- [Docker katas](https://github.com/eficode-academy/docker-katas) A series of labs that will take you from "Hello Docker" to deploying a containerized web application to a server. +- [Docker simplified in 55 seconds](https://www.youtube.com/watch?v=vP_4DlOH1G4): An animated high-level introduction to Docker. Think of it as a visual tl;dr that makes it easier to dive into more complex learning materials. +- [Docker Training](https://training.mirantis.com) - :yen: +- [Dockerlings](https://github.com/furkan/dockerlings): Learn docker from inside your terminal, with a modern TUI and bite sized exercises. +- [Introduction à Docker](https://blog.stephane-robert.info/docs/conteneurs/moteurs-conteneurs/docker/) A dedicated section to master Docker on a French site about DevSecOps: From the basics to best practices, including optimizing, securing your containers... +- [Learn Docker](https://github.com/dwyl/learn-docker): step-by-step tutorial and more resources (video, articles, cheat sheets) +- [Learn Docker (Visually)](https://pagertree.com/learn/docker/overview) - A beginner-focused high-level overview of all the major components of Docker and how they fit together. Lots of high-quality images, examples, and resources. +- [Play With Docker](https://training.play-with-docker.com/): PWD is a great way to get started with Docker from beginner to advanced users. Docker runs directly in your browser. +- [Practical Guide about Docker Commands in Spanish](https://github.com/brunocascio/docker-espanol) This Spanish guide contains the use of basic docker commands with real life examples. +- [Setting Python Development Environment with VScode and Docker](https://github.com/RamiKrispin/vscode-python): A step-by-step tutorial for setting up a dockerized Python development environment with VScode, Docker, and the Dev Container extension. +- [The Docker Handbook](https://docker-handbook.farhan.dev/) An open-source book that teaches you the fundamentals, best practices and some intermediate Docker functionalities. The book is hosted on [fhsinchy/the-docker-handbook](https://github.com/fhsinchy/the-docker-handbook) and the projects are hosted on [fhsinchy/docker-handbook-projects](https://github.com/fhsinchy/docker-handbook-projects) repository. + +**Cheatsheets** -### Monitoring Services +- [eon01](https://github.com/eon01/DockerCheatSheet) +- [dimonomid](https://github.com/dimonomid/docker-quick-ref) (PDF) +- [JensPiegsa](https://github.com/JensPiegsa/docker-cheat-sheet) +- [wsargent](https://github.com/wsargent/docker-cheat-sheet) (Most popular) + +## Where to Start (Windows) + +- [Docker on Windows behind a firewall](https://toedter.com/2015/05/11/docker-on-windows-behind-a-firewall/) +- [Docker Reference Architecture: Modernizing Traditional .NET Framework Applications](https://docs.mirantis.com/containers/v3.0/dockeree-ref-arch/app-dev/modernize-dotnet-apps.html) - You will learn to identify the types of .NET Framework applications that are good candidates for containerization, the "lift-and-shift" approach to containerization. +- [Docker with Microsoft SQL 2016 + ASP.NET](https://blog.alexellis.io/docker-does-sql2016-aspnet/) Demonstration running ASP.NET and SQL Server workloads in Docker +- [Exploring ASP.NET Core with Docker in both Linux and Windows Containers](https://www.hanselman.com/blog/exploring-aspnet-core-with-docker-in-both-linux-and-windows-containers) Running ASP.NET Core apps in Linux and Windows containers, using [Docker for Windows][docker-for-windows] +- [Running a Legacy ASP.NET App in a Windows Container](https://blog.sixeyed.com/dockerizing-nerd-dinner-part-1-running-a-legacy-asp-net-app-in-a-windows-container/) Steps for Dockerizing a legacy ASP.NET app and running as a Windows container +- [Windows Containers and Docker: The 101](https://www.youtube.com/watch?v=N7SG2wEyQtM) - A 20-minute overview, using Docker to run PowerShell, ASP.NET Core and ASP.NET apps. +- [Windows Containers Quick Start](https://learn.microsoft.com/en-us/virtualization/windowscontainers/about/) Overview of Windows containers, drilling down to Quick Starts for Windows 10 and Windows Server 2016 -- [AppDynamics](https://github.com/Appdynamics/docker-monitoring-extension) - Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. -- [Better Stack](https://betterstack.com/community/guides/scaling-docker/) - :yen: A Docker-compatible observability stack that delivers robust log aggregation and uptime monitoring capabilities for various software application. -- [Broadcom Docker Monitoring](https://www.broadcom.com/info/aiops/docker-monitoring) - :yen: Agile Operations solutions from Broadcom deliver the modern Docker monitoring businesses need to accelerate and optimize the performance of microservices and the dynamic Docker environments running them. Monitor both the Docker environment and apps that run inside them. (former CA Technologies). -- [Collecting docker logs and stats with Splunk](https://www.splunk.com/en_us/blog/tips-and-tricks/collecting-docker-logs-and-stats-with-splunk.html) -- [Datadog](https://www.datadoghq.com/) - :yen: Datadog is a full-stack monitoring service for large-scale cloud environments that aggregates metrics/events from servers, databases, and applications. It includes support for Docker, Kubernetes, and Mesos. -- [Prometheus](https://prometheus.io/) - :yen: Open-source service monitoring system and time series database. -- [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :yen: Docker Monitoring for DevOps and IT is a SaaS Pay per Host model. -- [SPM for Docker](https://github.com/sematext/sematext-agent-docker) :ice_cube: - :yen: Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [sematext](https://github.com/sematext). -- [Sysdig Monitor](https://www.sysdig.com/products/monitor) - :yen: Sysdig Monitor can be used as either software or a SaaS service to monitor, alert, and troubleshoot containers using system calls. It has container-specific features for Docker and Kubernetes. +--- -# Useful Resources +## Books & Tutorials - [Cloud Native Landscape](https://github.com/cncf/landscape) - [Docker Blog](https://www.docker.com/blog/) - Regular updates about Docker, the community and tools. -- [Docker Certification](https://intellipaat.com/docker-training-course/?US) :yen: will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. - +- [Docker Certification](https://intellipaat.com/docker-training-course/?US) - :yen: Will help you to will Learn Docker containerization, running Docker containers, Image creation, Dockerfile, Docker orchestration, security best practices, and more through hands-on projects and case studies and helps to clear Docker Certified Associate. - [Docker dev bookmarks](https://www.codever.dev/search?q=docker) - Use the tag [docker](https://www.codever.dev/bookmarks/t/docker). - [Docker in Action, Second Edition](https://www.manning.com/books/docker-in-action-second-edition) - [Docker in Practice, Second Edition](https://www.manning.com/books/docker-in-practice-second-edition) @@ -695,28 +563,26 @@ Services to securely store your Docker images. ## Awesome Lists -- [Awesome CI/CD](https://github.com/cicdops/awesome-ciandcd) :ice_cube: - Not specific to docker but relevant. - [Awesome Compose](https://github.com/docker/awesome-compose) - Docker Compose samples. -- [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) by [ramitsurana][ramitsurana] -- [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo, by [Friz-zy](https://github.com/Friz-zy). -- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. By [Kickball](https://github.com/Kickball) -- [Awesome Sysadmin](https://github.com/n1trux/awesome-sysadmin) by [n1trux](https://github.com/n1trux) -- [ToolsOfTheTrade](https://github.com/cjbarber/ToolsOfTheTrade) a list of SaaS and On premise applications by [cjbarber](https://github.com/cjbarber) +- [Awesome Kubernetes](https://github.com/ramitsurana/awesome-kubernetes) +- [Awesome Linux Container](https://github.com/Friz-zy/awesome-linux-containers) more general about container than this repo. +- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) list of Free Software network services and web applications which can be hosted locally by running in a classical way (setup local web server and run applications from there) or in a Docker container. +- [Awesome Sysadmin](https://github.com/n1trux/awesome-sysadmin) +- [ToolsOfTheTrade](https://github.com/cjbarber/ToolsOfTheTrade) a list of SaaS and On premise applications ## Demos and Examples - [An Annotated Docker Config for Frontend Web Development](https://nystudio107.com/blog/an-annotated-docker-config-for-frontend-web-development) A local development environment with Docker allows you to shrink-wrap the devops your project needs as config, making onboarding frictionless. -- [Local Docker DB](https://github.com/alexmacarthur/local-docker-db) a list of docker-compose samples for a lot of databases by [alexmacarthur](https://github.com/alexmacarthur) +- [Local Docker DB](https://github.com/alexmacarthur/local-docker-db) a list of docker-compose samples for a lot of databases - [Webstack-micro](https://github.com/ferbs/webstack-micro) Demo web app showing how Docker Compose might be used to set up an API Gateway, centralized authentication, background workers, and WebSockets as containerized services. ## Good Tips -- [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016) **MUST SEE** -- [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - The **funniest way** to learn about docker by [jessfraz][jessfraz] who also gave a [presentation](https://www.youtube.com/watch?v=1qlLUf7KtAw) about it @ DockerCon 2015. +- [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016). +- [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/) -- [Dockerfile best practices](https://github.com/hexops/dockerfile) :ice_cube: - This repository has best-practices for writing Dockerfiles. -- [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) by [King Chung Huang](https://github.com/kinghuang) -- [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) by [fgrehm][fgrehm] +- [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) +- [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) ## Raspberry Pi & ARM @@ -725,10 +591,10 @@ Services to securely store your Docker images. - [git push docker containers to linux devices](https://www.balena.io) Modern DevOps for IoT, leveraging git and Docker. - [Installing, running, using Docker on armhf (ARMv7) devices](https://github.com/umiddelb/armhf/wiki/Installing,-running,-using-docker-on-armhf-%28ARMv7%29-devices) -## Security +## Security Articles - [Bringing new security features to Docker](https://opensource.com/business/14/9/security-for-docker) -- [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) by [tomwillfixit](https://twitter.com/tomwillfixit) +- [CVE Scanning Alpine images with Multi-stage builds in Docker 17.05](https://github.com/tomwillfixit/alpine-cvecheck) - [Docker Secure Deployment Guidelines](https://github.com/AonCyberLabs/Docker-Secure-Deployment-Guidelines) - [Docker Security - Quick Reference](https://binarymist.io/publication/docker-security/) - [Docker Security: Are Your Containers Tightly Secured to the Ship? SlideShare](https://www.slideshare.net/slideshow/docker-security-are-your-containers-tightly-secured-to-the-ship/43834790) @@ -744,43 +610,43 @@ Services to securely store your Docker images. ## Videos - [Contributing to Docker by Andrew "Tianon" Page (InfoSiftr)](https://www.youtube.com/watch?v=1jwo8-1HYYg) (34:31) -- [Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic](https://www.youtube.com/watch?v=GpHMTR7P2Ms) (3:11:06) by [jpetazzo][jpetazzo] +- [Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic](https://www.youtube.com/watch?v=GpHMTR7P2Ms) (3:11:06) - [Docker and SELinux by Daniel Walsh from Red Hat](https://www.youtube.com/watch?v=zWGFqMuEHdw) (40:23) -- [Docker Course](https://www.youtube.com/watch?v=UZpyvK6UGFo) (Spanish) by [pablokbs](https://github.com/pablokbs) -- [Docker for Developers](https://www.youtube.com/watch?v=FdkNAjjO5yQ) (54:26) by [jpetazzo][jpetazzo] <== Good introduction, context, demo -- [Docker from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxD-btrjrqdEfQHbkZnQrmqE) (1:22:01) on YouTube by Paris Nakita Kejser +- [Docker Course](https://www.youtube.com/watch?v=UZpyvK6UGFo) (Spanish) +- [Docker for Developers](https://www.youtube.com/watch?v=FdkNAjjO5yQ) (54:26) +- [Docker from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxD-btrjrqdEfQHbkZnQrmqE) (1:22:01) - [Docker: How to Use Your Own Private Registry](https://www.youtube.com/watch?v=CAewZCBT4PI) (15:01) -- [Docker in Production](https://www.youtube.com/watch?v=Glk5d5WP6MI) by [jpetazzo][jpetazzo] (36:05) -- [Docker Primer to Docker Compose](https://www.youtube.com/watch?v=G-s2GXGAjTk) (1:56:45) on YouTube by LoginRadius -- [Docker Registry from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAz3d4Fj3edq7UcxEhdTCBm) (44:40) on YouTube by Paris Nakita Kejser -- [Docker Swarm from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAY4gZd1Wl-GsLvg-e9Ap1e) (1:41:28) on YouTube by Paris Nakita Kejser +- [Docker in Production](https://www.youtube.com/watch?v=Glk5d5WP6MI) (36:05) +- [Docker Primer to Docker Compose](https://www.youtube.com/watch?v=G-s2GXGAjTk) (1:56:45) +- [Docker Registry from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAz3d4Fj3edq7UcxEhdTCBm) (44:40) +- [Docker Swarm from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAY4gZd1Wl-GsLvg-e9Ap1e) (1:41:28) - [Extending Docker with Plugins](https://vimeo.com/110835013) (15:21) -- [From Local Docker Development to Production Deployments](https://www.youtube.com/watch?v=7CZFpHUPqXw) by [jpetazzo][jpetazzo] @ AWS re:Invent 2015 +- [From Local Docker Development to Production Deployments](https://www.youtube.com/watch?v=7CZFpHUPqXw) - [Immutable Infrastructure with Docker and EC2 by Michael Bryzek (Gilt)](https://www.youtube.com/watch?v=GaHzdqFithc) (42:04) -- [Introduction to Docker and containers](https://www.youtube.com/watch?v=ZVaRK10HBjo) (3:09:00) by [jpetazzo][jpetazzo] +- [Introduction to Docker and containers](https://www.youtube.com/watch?v=ZVaRK10HBjo) (3:09:00) - [Logging on Docker: What You Need to Know](https://vimeo.com/123341629) (51:27) - [Performance Analysis of Docker - Jeremy Eder](https://www.youtube.com/watch?v=6f2E6PKYb0w) (1:36:58) - [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615) Free Udacity course - [State of containers: a debate with CoreOS, VMware and Google](https://www.youtube.com/watch?v=IiITP3yIRd8) (27:38) -# Communities and Meetups +## Communities and Meetups -## Brazilian +### Brazilian - [Docker BR on Telegram](https://telegram.me/dockerbr) -## English +### English - [Docker Community](https://www.docker.com/community/) - [Docker Events](https://www.docker.com/events/) - [Docker Online Meetup](https://www.meetup.com/en-AU/Docker-Online-Meetup/) - [Docker Reddit Community](https://www.reddit.com/r/docker/) -## Russian +### Russian - [Docker Russian-speaking Community](https://t.me/docker_ru) -## Spanish +### Spanish - [Docker Tips](https://dockertips.com/) @@ -790,34 +656,12 @@ Services to securely store your Docker images. [contributing]: https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md [calico]: https://github.com/projectcalico/calico -[containx]: https://github.com/ContainX [coreos]: https://github.com/coreos -[deepfence]: https://github.com/deepfence [distribution]: https://github.com/docker/distribution -[docker-flow]: https://github.com/docker-flow [docker-for-windows]: https://docs.docker.com/desktop/setup/install/windows-install/ -[docker]: https://github.com/docker [editreadme]: https://github.com/veggiemonk/awesome-docker/edit/master/README.md -[fgrehm]: https://github.com/fgrehm -[gliderlabs]: https://github.com/gliderlabs -[googlecontainertools]: https://github.com/GoogleContainerTools -[inspec]: https://github.com/inspec/inspec -[jessfraz]: https://github.com/jessfraz -[jpetazzo]: https://github.com/jpetazzo -[jwilder]: https://github.com/jwilder [kubernetes]: https://kubernetes.io -[lispyclouds]: https://github.com/lispyclouds [nginxproxy]: https://github.com/nginx-proxy/nginx-proxy [openshift]: https://okd.io/ -[powerman]: https://github.com/powerman -[progrium]: https://github.com/progrium -[ramitsurana]: https://github.com/ramitsurana [sindresorhus]: https://github.com/sindresorhus/awesome -[spotify]: https://github.com/spotify -[vegasbrianc]: https://github.com/vegasbrianc -[vmware]: https://github.com/vmware -[byrnedo]: https://github.com/byrnedo -[crazy-max]: https://github.com/crazy-max -[akito]: https://github.com/theAkito -[peco602]: https://github.com/Peco602 -[weave]: https://github.com/weaveworks/weave + diff --git a/config/exclude.yaml b/config/exclude.yaml index baf252d0e..a8cbdb935 100644 --- a/config/exclude.yaml +++ b/config/exclude.yaml @@ -16,3 +16,4 @@ domains: - https://www.youtube.com/playlist - https://www.aquasec.com - https://cloudsmith.com + - https://pythonspeed.com/ diff --git a/scripts/fix_yen_placement.py b/scripts/fix_yen_placement.py new file mode 100644 index 000000000..7118435f9 --- /dev/null +++ b/scripts/fix_yen_placement.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +"""Normalize :yen: placement in README.md entries. + +Transformations (only on list entries — leaves legend lines and section prose alone): + - [Title :yen:](url) - desc -> - [Title](url) - :yen: desc + - [Title](url) :yen:- desc -> - [Title](url) - :yen: desc + - [Title](url) :yen: desc -> - [Title](url) - :yen: desc + - [Title](url) :yen: -> - [Title](url) - :yen: + +Idempotent: already-correct lines pass through untouched. +""" +from __future__ import annotations + +import re +import sys +from pathlib import Path + +# Entry where :yen: is inside the link title. +RE_IN_TITLE = re.compile(r'^(\s*[-*]\s+\[)([^\]]*?)\s+:yen:(\s*\]\([^)]+\))(\s*-?\s*)(.*)$') + +# Entry where :yen: sits right after the URL, followed by "- desc", " desc", or nothing. +RE_AFTER_URL = re.compile(r'^(\s*[-*]\s+\[[^\]]+\]\([^)]+\))\s+:yen:\s*(-\s*)?(.*)$') + +# Already-correct entries: "(url) - :yen: ..." +RE_ALREADY_OK = re.compile(r'\]\([^)]+\)\s+-\s+:yen:(\s|$)') + + +def transform(line: str) -> str: + if ':yen:' not in line: + return line + if RE_ALREADY_OK.search(line): + return line + + m = RE_IN_TITLE.match(line) + if m: + prefix, title, link_close, _sep, desc = m.groups() + desc = desc.lstrip() + if desc: + return f"{prefix}{title.rstrip()}{link_close} - :yen: {desc}" + return f"{prefix}{title.rstrip()}{link_close} - :yen:" + + m = RE_AFTER_URL.match(line) + if m: + head, _dash, desc = m.groups() + desc = desc.lstrip() + if desc: + return f"{head} - :yen: {desc}" + return f"{head} - :yen:" + + return line + + +def main(path: str) -> int: + p = Path(path) + original = p.read_text() + out_lines = [] + changed = 0 + for line in original.splitlines(): + new = transform(line) + if new != line: + changed += 1 + out_lines.append(new) + # Preserve trailing newline. + new_text = "\n".join(out_lines) + if original.endswith("\n"): + new_text += "\n" + if new_text != original: + p.write_text(new_text) + print(f"{changed} line(s) changed in {path}") + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv[1] if len(sys.argv) > 1 else "README.md")) From 9d7ade3ccc98711ecf6710dc281a9b63bf70a59c Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Mon, 18 May 2026 00:11:00 +0200 Subject: [PATCH 301/327] Clarify guidelines for contributing --- .github/CONTRIBUTING.md | 9 +++------ .github/ISSUE_TEMPLATE/add-a-project.md | 21 +++++++++---------- .github/PULL_REQUEST_TEMPLATE.md | 27 +++++-------------------- 3 files changed, 18 insertions(+), 39 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 18c8df57f..ff9c7973a 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -11,7 +11,6 @@ Please read and follow the [Code of Conduct](./CODE_OF_CONDUCT.md). - New high-quality projects that are **for Docker** (see the test below) - Fixes to descriptions, ordering, or categorization - Removal of broken, archived, deprecated, or duplicate entries -- Improvements to the Go CLI and GitHub workflows ## The "for Docker" Test (read this before submitting) @@ -42,9 +41,8 @@ software ever written. Before opening a PR, apply this test: ### One-sentence sanity check -Write the sentence: *"This project exists to ____."* If the blank doesn't -contain **Docker, container, image, registry, Dockerfile, Compose, Swarm, -BuildKit, or OCI** — it probably doesn't belong here. +Write the sentence: *"This project exists to ____."* +If the blank doesn't contain **Docker, container, image, registry, Dockerfile, Compose, Swarm, BuildKit, or OCI** — it probably doesn't belong here. ## README Entry Rules @@ -57,7 +55,7 @@ BuildKit, or OCI** — it probably doesn't belong here. could be any monitoring tool, and a reviewer can't tell whether the project passes the test above. - Use `:yen:` for paid/commercial services. -- Use `:ice_cube:` for stale projects (2+ years inactive). +- The project has been active in the last 2 years. - Do not use `:skull:`; archived/deprecated projects should be removed. - Avoid duplicate links and redirect variants. @@ -84,7 +82,6 @@ make test - Explain what changed and why. - If adding entries, include the target category. - If removing entries, explain why (archived, broken, duplicate, etc.). -- Fill in the PR template checklist. ## Maintainer Notes diff --git a/.github/ISSUE_TEMPLATE/add-a-project.md b/.github/ISSUE_TEMPLATE/add-a-project.md index 1cd073f7f..e91972e24 100644 --- a/.github/ISSUE_TEMPLATE/add-a-project.md +++ b/.github/ISSUE_TEMPLATE/add-a-project.md @@ -1,21 +1,20 @@ --- name: Add a project -about: Add a new project to the list -title: "add: [PROJECT_NAME] in [SECTION_NAME]" +about: Suggest a project for the list +title: "add: [PROJECT] in [SECTION]" labels: pending-evaluation -assignees: '' - --- +# IF THE PROJECT JUST RUNS IN DOCKER, AUTOMATICALLY DENIED + +- [ ] I HAVE READ .github/CONTRIBUTING.md -Category: -Repository link: -Description (one sentence): -Author: -Why this should be in the list: -Notes (`:yen:` if relevant): +Write the sentence: *"This project exists to ____."* -Or directly write it: +If the blank doesn't contain **Docker, container, image, registry, Dockerfile, Compose, Swarm, BuildKit, or OCI**, it probably doesn't belong here. ```markdown [REPO](https://github.com/AUTHOR/REPO) - DESCRIPTION. ``` + + +Note: the project will be added faster if you create a PR (recommended!). diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index bd5a7c0eb..b09b5540c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,28 +1,11 @@ -# Summary -Describe what changed and why. +# IF THE PROJECT JUST RUNS IN DOCKER, AUTOMATICALLY DENIED -## Scope +- [ ] I HAVE READ .github/CONTRIBUTING.md -- [ ] README entries/content -- [ ] Go CLI/tooling -- [ ] GitHub workflows or `.github` docs +Write the sentence: *"This project exists to ____."* -## If This PR Adds/Edits README Entries +If the blank doesn't contain **Docker, container, image, registry, Dockerfile, Compose, Swarm, BuildKit, or OCI**, it probably doesn't belong here. -- Category/section touched: -- New or updated project links: +What changed and why: -## Validation - -- [ ] `make lint` -- [ ] `make test` (if Go code changed) -- [ ] `./awesome-docker check` (if `GITHUB_TOKEN` available) - -## Contributor Checklist - -- [ ] Entries are alphabetically ordered in their section -- [ ] Links point to project repositories (no duplicates or redirects) -- [ ] Descriptions are concise and specific -- [ ] Archived/deprecated projects were removed instead of tagged -- [ ] Used `:yen:` only when applicable From 9e98c62f4c28b8cc56fc963c59d9a3a87c660f88 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Mon, 18 May 2026 00:12:11 +0200 Subject: [PATCH 302/327] contributing link --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 1f66e584b..d185f5e22 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ > A curated list of projects for Docker. -If you would like to contribute, please read [CONTRIBUTING.md][contributing] first. +If you would like to contribute, please read [CONTRIBUTING.md](https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md) first. If this list is not complete, you can contribute to make it so. If you see a link here that is not (any longer) a good fit, you can fix it by submitting a [pull request][editreadme] to improve this file. Thank you! @@ -654,7 +654,6 @@ Tools and applications that are either installed inside containers or designed t [![Stargazers over time](https://starchart.cc/veggiemonk/awesome-docker.svg?variant=adaptive)](https://starchart.cc/veggiemonk/awesome-docker) -[contributing]: https://github.com/veggiemonk/awesome-docker/blob/master/.github/CONTRIBUTING.md [calico]: https://github.com/projectcalico/calico [coreos]: https://github.com/coreos [distribution]: https://github.com/docker/distribution From 058b8b107787870166513b07ee723c67ee5ecb2e Mon Sep 17 00:00:00 2001 From: Shekhar Luhar Date: Tue, 19 May 2026 02:17:34 +0530 Subject: [PATCH 303/327] Add Middleware in Observability List (#1438) Middleware aligns with the existing Observability category criteria and is comparable to already listed platforms such as Datadog. It provides monitoring for Docker hosts, containers, container logs, infrastructure metrics, traces, and application performance across containerized environments. Since similar commercial observability platforms with Docker monitoring capabilities are already included, Middleware appears consistent with the current scope of the section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d185f5e22..82e93743a 100644 --- a/README.md +++ b/README.md @@ -331,6 +331,7 @@ Monitor Docker hosts, containers, and the services running inside them. Self-hos - [Dynatrace](https://docs.dynatrace.com/docs/observe/infrastructure-observability/container-platform-monitoring) - :yen: Monitor containerized applications without installing agents or modifying your Run commands. - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack. - [Maintenant](https://github.com/kolapsis/maintenant) - Self-discovering infrastructure monitoring for Docker and Kubernetes. Auto-detects containers via labels, with endpoint monitoring, heartbeats, TLS certificates, resource metrics, update intelligence, and a built-in status page. Single binary with embedded SPA. +- [Middleware](https://middleware.io/) - :yen: Monitor Docker hosts, containers, logs, and application performance from a unified observability platform. - [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :yen: Docker Monitoring for DevOps and IT, SaaS Pay-per-Host model. - [Sysdig Monitor](https://www.sysdig.com/products/monitor) - :yen: Software or SaaS service that monitors, alerts, and troubleshoots containers using system calls; container-specific features for Docker and Kubernetes. - [Wiremap](https://github.com/codeofmario/wiremap) - A self-hosted visual Docker network topology explorer with real-time log streaming, live stats, embedded terminal, and container inspection. From 503e5bd7c7c14281cc2987ed0d41867176a4f26d Mon Sep 17 00:00:00 2001 From: David Lepaux Date: Mon, 18 May 2026 22:51:09 +0200 Subject: [PATCH 304/327] Add docker-exporter to Monitoring (#1423) Co-authored-by: Julien Bisconti --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 82e93743a..cfc5a3920 100644 --- a/README.md +++ b/README.md @@ -321,6 +321,7 @@ Monitor Docker hosts, containers, and the services running inside them. Self-hos - [cAdvisor](https://github.com/google/cadvisor) - Analyzes resource usage and performance characteristics of running containers. - [Datadog](https://www.datadoghq.com/) - :yen: Full-stack monitoring service with first-class Docker, Kubernetes, and Mesos support. - [DLIA](https://github.com/zorak1103/dlia) - DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. +- [docker-exporter](https://github.com/dlepaux/docker-exporter) - Lightweight Prometheus exporter for Docker container metrics written in Rust. Correct cgroup v2 memory working set on ARM64 (Raspberry Pi 5), runs non-root with a read-only socket, ~7 MiB idle RAM. - [Docker-Sentinel](https://github.com/Will-Luck/Docker-Sentinel) - Automated container updates with per-container policies, rollback safety, and a real-time web dashboard. - [DockProbe](https://github.com/deep-on/dockprobe) - Lightweight Docker monitoring dashboard in a single container. Real-time metrics, 6 anomaly detection rules, Telegram alerts, and 16 automated security scans. Zero config, ~50MB RAM. - [DockProc](https://gitlab.com/n0r1sk/dockproc) - I/O monitoring for containers on processlevel. From 29222bfcb58ede51586fd4c6e8db57cae132b2c4 Mon Sep 17 00:00:00 2001 From: Julien Bisconti Date: Mon, 18 May 2026 23:46:32 +0200 Subject: [PATCH 305/327] feat: add prune subcommand, drop archived/stale entries (#1441) * feat: add prune subcommand, drop archived/stale entries, add container-explorer Add a new `awesome-docker prune` subcommand that removes README entries whose repository health status matches a configurable set (default: archived,stale). URLs are read from the local health cache, or from a markdown report file via --from-report when the cache is outdated. Apply it against the issue #1439 health report to remove 5 entries that survived the recent reorg: stitchocker, docker-consul, blockbridge-docker-volume, docker-explorer, dockdash. Add google/container-explorer in the Security section as the actively maintained successor to the now-archived google/docker-explorer. Co-Authored-By: Claude * golangci-lint config * fix: address golangci-lint findings Fixes errcheck on bufio.Writer.WriteString, gocritic rangeValCopy via indexed loops with pointer locals, gosec G703 on user-supplied CLI output path, noctx by switching to exec.CommandContext with a timeout in the TUI url opener, prealloc in the scorer test, plus fieldalignment struct reorders and golines line breaks from --fix. Co-Authored-By: Claude Opus 4.7 (1M context) --------- Co-authored-by: Claude --- .golangci.yml | 74 + README.md | 8 +- cmd/awesome-docker/main.go | 223 +- config/health_cache.yaml | 4137 ++++++++++++------------------- go.mod | 6 +- go.sum | 4 + internal/builder/builder.go | 9 +- internal/cache/cache.go | 28 +- internal/checker/github.go | 18 +- internal/checker/github_test.go | 9 +- internal/checker/http.go | 6 +- internal/linter/fixer.go | 28 +- internal/linter/rules.go | 8 +- internal/parser/parser_test.go | 6 +- internal/parser/types.go | 6 +- internal/pruner/pruner.go | 221 ++ internal/pruner/pruner_test.go | 173 ++ internal/scorer/scorer.go | 23 +- internal/scorer/scorer_test.go | 15 +- internal/tui/model.go | 116 +- internal/tui/styles.go | 7 +- internal/tui/tree.go | 11 +- internal/tui/tree_test.go | 7 +- 23 files changed, 2444 insertions(+), 2699 deletions(-) create mode 100644 .golangci.yml create mode 100644 internal/pruner/pruner.go create mode 100644 internal/pruner/pruner_test.go diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 000000000..356b7c4b9 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,74 @@ +# Sample golangci-lint config. Edit or delete to taste. +# Full reference: https://golangci-lint.run/usage/configuration/ +version: "2" + +run: + timeout: 5m + +linters: + enable: + - bodyclose # checks HTTP response body is closed + - copyloopvar # Go 1.22+ loop var capture + - dupword # catches "the the" + - durationcheck # multiplication of two durations + - embeddedstructfieldcheck + - errcheck # unchecked errors + - errorlint # errors.Is / errors.As hygiene + - forcetypeassert # type assertions without the comma-ok form + - gocritic # opinionated diagnostics + - gosec # security scanner + - govet # stdlib vet + - ineffassign # ineffectual assignments + - intrange # prefer `for range N` + - misspell # spelling + - modernize + - nilerr # `return nil` after checking err != nil + - noctx # http requests without context + - perfsprint # fmt.Sprintf → string concat where safe + - prealloc # slice preallocation hints + - staticcheck # staticcheck.io + - unconvert # redundant type conversions + - unparam # unused function parameters + - unused # dead code + + settings: + govet: + enable-all: true + disable: + - shadow + staticcheck: + checks: ["all", "-QF1001", "-QF1002"] # drop quick-fix style nags + gocritic: + enabled-tags: [diagnostic, performance] + disabled-checks: + - hugeParam + gosec: + excludes: + - G104 # covered by errcheck + - G204 # subprocess with variable — allowed in CLI tooling + - G306 # 0600 file perms — CLIs often write executables + + exclusions: + generated: lax + presets: [comments, common-false-positives, legacy, std-error-handling] + rules: + # Test code owns its fixtures. + - path: '_test\.go' + linters: [forcetypeassert, dupword, errcheck, gosec, unparam] + # CLI entry point: fmt.Fprint to stdout/stderr is fire-and-forget. + - linters: [errcheck] + source: 'fmt\.Fprint(ln|f)?\(' + +issues: + max-issues-per-linter: 50 + max-same-issues: 10 + +formatters: + settings: + golines: + max-len: 120 + tab-len: 8 + enable: + - golines + - gofmt + - goimports diff --git a/README.md b/README.md index cfc5a3920..325684c18 100644 --- a/README.md +++ b/README.md @@ -225,7 +225,6 @@ Signing, attestation, and provenance for container images. - [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. - [podman-compose](https://github.com/containers/podman-compose) - A script to run docker-compose.yml using podman. - [Smalte](https://github.com/roquie/smalte) – Dynamically configure applications that require static configuration in docker container. -- [Stitchocker](https://github.com/alexaandrov/stitchocker) - A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. ### Orchestration @@ -278,7 +277,6 @@ Self-hosted and managed cloud platforms (PaaS/CaaS, deployment automation). Comm Container networking, overlay networks, DNS/service-discovery bridges. - [Calico][calico] - Calico is a pure layer 3 virtual network that allows containers over multiple docker-hosts to talk to each other. -- [docker-consul](https://github.com/gliderlabs/docker-consul) - Consul packaged for Docker — registers and discovers running containers. - [docker-dns](https://github.com/bytesharky/docker-dns) - Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. `.docker`) on the host to simplify service discovery. - [Flannel](https://github.com/coreos/flannel/) - Flannel is a virtual network that gives a subnet to each host for use with container runtimes. - [netshoot](https://github.com/nicolaka/netshoot) - The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. @@ -287,6 +285,8 @@ Container networking, overlay networks, DNS/service-discovery bridges. ### Reverse Proxy +Container-aware reverse proxies, ingress, and TLS-terminating front-ends with auto-discovery. + - [BunkerWeb](https://github.com/bunkerity/bunkerweb) - Open-source and next-gen Web Application Firewall (WAF). - [caddy-docker-proxy](https://github.com/lucaslorentz/caddy-docker-proxy) - Caddy-based reverse proxy, configured with service or container labels. - [caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams) - Docker upstreams module for Caddy, configured with container labels. @@ -302,7 +302,6 @@ Container networking, overlay networks, DNS/service-discovery bridges. ## Storage & Data -- [Blockbridge](https://github.com/blockbridge/blockbridge-docker-volume) - :yen: The Blockbridge plugin is a volume plugin that provides access to an extensible set of container-based persistent storage options. It supports single and multi-host Docker environments with features that include tenant isolation, automated provisioning, encryption, secure deletion, snapshots and QoS. - [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. - [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. - [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. @@ -345,10 +344,10 @@ Container hardening, runtime security, policy, compliance, and forensics. Self-h - [buildcage](https://github.com/dash14/buildcage) - Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. - [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. - [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. +- [container-explorer](https://github.com/google/container-explorer) - Forensic utility to explore Docker and containerd container details from mounted disk images. - [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. - [Den](https://github.com/us/den) - Self-hosted sandbox runtime for AI agents with Docker containers, security hardening, REST API and WebSocket support. - [docker-bench-security](https://github.com/docker/docker-bench-security) - Script that checks for dozens of common best-practices around deploying Docker containers in production. -- [docker-explorer](https://github.com/google/docker-explorer) - A tool to help forensicate offline docker acquisitions. - [docker-socket-proxy](https://github.com/Tecnativa/docker-socket-proxy) - HAProxy-based fine-grained filter for the Docker API socket; widely used to expose a restricted socket to reverse proxies and homelab stacks. - [KICS](https://github.com/checkmarx/kics) - An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. - [Prisma Cloud](https://www.paloaltonetworks.com/prisma/cloud) - :yen: (Previously Twistlock Security Suite) detects vulnerabilities, hardens container images, and enforces security policies across the lifecycle of applications. @@ -377,7 +376,6 @@ TUIs, CLI tools, and shell integrations for Docker. - [dctl](https://github.com/FabienD/docker-stack) - Dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. - [decompose](https://github.com/s0rg/decompose) - Reverse-engineering tool for docker environments. - [dive](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image. -- [dockdash](https://github.com/byrnedo/dockdash) - Detailed Docker container stats. - [docker pushrm](https://github.com/christian-korneck/docker-pushrm) - A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. - [docker-captain](https://github.com/lucabello/docker-captain) - A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. - [dockerfile-mode](https://github.com/spotify/dockerfile-mode) - An Emacs mode for handling Dockerfiles. diff --git a/cmd/awesome-docker/main.go b/cmd/awesome-docker/main.go index 22030511f..8440e87d8 100644 --- a/cmd/awesome-docker/main.go +++ b/cmd/awesome-docker/main.go @@ -2,6 +2,7 @@ package main import ( "context" + "errors" "fmt" "os" "strconv" @@ -13,6 +14,7 @@ import ( "github.com/veggiemonk/awesome-docker/internal/checker" "github.com/veggiemonk/awesome-docker/internal/linter" "github.com/veggiemonk/awesome-docker/internal/parser" + "github.com/veggiemonk/awesome-docker/internal/pruner" "github.com/veggiemonk/awesome-docker/internal/scorer" "github.com/veggiemonk/awesome-docker/internal/tui" ) @@ -27,11 +29,11 @@ const ( ) type checkSummary struct { - ExternalTotal int - GitHubTotal int Broken []checker.LinkResult Redirected []checker.LinkResult GitHubErrors []error + ExternalTotal int + GitHubTotal int GitHubSkipped bool } @@ -52,6 +54,7 @@ func main() { validateCmd(), ciCmd(), browseCmd(), + pruneCmd(), ) if err := root.Execute(); err != nil { @@ -154,7 +157,7 @@ func runLinkChecks(prMode bool) (checkSummary, error) { func runHealth(ctx context.Context) error { token := os.Getenv("GITHUB_TOKEN") if token == "" { - return fmt.Errorf("GITHUB_TOKEN environment variable is required") + return errors.New("GITHUB_TOKEN environment variable is required") } doc, err := parseReadme() @@ -174,9 +177,12 @@ func runHealth(ctx context.Context) error { } if len(infos) == 0 { if len(errs) > 0 { - return fmt.Errorf("failed to fetch GitHub metadata for all repositories (%d errors); check network/DNS and GITHUB_TOKEN", len(errs)) + return fmt.Errorf( + "failed to fetch GitHub metadata for all repositories (%d errors); check network/DNS and GITHUB_TOKEN", + len(errs), + ) } - return fmt.Errorf("no GitHub repositories found in README") + return errors.New("no GitHub repositories found in README") } scored := scorer.ScoreAll(infos) @@ -211,11 +217,12 @@ func scoredFromCache() ([]scorer.ScoredEntry, error) { return nil, fmt.Errorf("load cache: %w", err) } if len(hc.Entries) == 0 { - return nil, fmt.Errorf("no cache data, run 'health' first") + return nil, errors.New("no cache data, run 'health' first") } scored := make([]scorer.ScoredEntry, 0, len(hc.Entries)) - for _, e := range hc.Entries { + for i := range hc.Entries { + e := &hc.Entries[i] scored = append(scored, scorer.ScoredEntry{ URL: e.URL, Name: e.Name, @@ -409,7 +416,11 @@ func checkCmd() *cobra.Command { } } if len(summary.Broken) > 0 && len(summary.GitHubErrors) > 0 { - return fmt.Errorf("found %d broken links and %d GitHub API errors", len(summary.Broken), len(summary.GitHubErrors)) + return fmt.Errorf( + "found %d broken links and %d GitHub API errors", + len(summary.Broken), + len(summary.GitHubErrors), + ) } if len(summary.Broken) > 0 { return fmt.Errorf("found %d broken links", len(summary.Broken)) @@ -560,20 +571,40 @@ func ciBrokenLinksCmd() *cobra.Command { } } - if err := writeGitHubOutput(githubOutput, "has_errors", strconv.FormatBool(hasErrors)); err != nil { + if err := writeGitHubOutput( + githubOutput, + "has_errors", + strconv.FormatBool(hasErrors), + ); err != nil { return err } - if err := writeGitHubOutput(githubOutput, "check_exit_code", strconv.Itoa(exitCode)); err != nil { + if err := writeGitHubOutput( + githubOutput, + "check_exit_code", + strconv.Itoa(exitCode), + ); err != nil { return err } - if err := writeGitHubOutput(githubOutput, "broken_count", strconv.Itoa(len(summary.Broken))); err != nil { + if err := writeGitHubOutput( + githubOutput, + "broken_count", + strconv.Itoa(len(summary.Broken)), + ); err != nil { return err } - if err := writeGitHubOutput(githubOutput, "github_error_count", strconv.Itoa(len(summary.GitHubErrors))); err != nil { + if err := writeGitHubOutput( + githubOutput, + "github_error_count", + strconv.Itoa(len(summary.GitHubErrors)), + ); err != nil { return err } if runErr != nil { - if err := writeGitHubOutput(githubOutput, "run_error", sanitizeOutputValue(runErr.Error())); err != nil { + if err := writeGitHubOutput( + githubOutput, + "run_error", + sanitizeOutputValue(runErr.Error()), + ); err != nil { return err } } @@ -582,7 +613,11 @@ func ciBrokenLinksCmd() *cobra.Command { fmt.Printf("CI broken-links run error: %v\n", runErr) } if hasErrors { - fmt.Printf("CI broken-links found %d broken links and %d GitHub errors\n", len(summary.Broken), len(summary.GitHubErrors)) + fmt.Printf( + "CI broken-links found %d broken links and %d GitHub errors\n", + len(summary.Broken), + len(summary.GitHubErrors), + ) } else { fmt.Println("CI broken-links found no errors") } @@ -592,7 +627,11 @@ func ciBrokenLinksCmd() *cobra.Command { return runErr } if hasErrors { - return fmt.Errorf("found %d broken links and %d GitHub API errors", len(summary.Broken), len(summary.GitHubErrors)) + return fmt.Errorf( + "found %d broken links and %d GitHub API errors", + len(summary.Broken), + len(summary.GitHubErrors), + ) } } return nil @@ -600,7 +639,8 @@ func ciBrokenLinksCmd() *cobra.Command { } cmd.Flags().StringVar(&issueFile, "issue-file", "broken_links_issue.md", "Path to write issue markdown body") - cmd.Flags().StringVar(&githubOutput, "github-output", "", "Path to GitHub output file (typically $GITHUB_OUTPUT)") + cmd.Flags(). + StringVar(&githubOutput, "github-output", "", "Path to GitHub output file (typically $GITHUB_OUTPUT)") cmd.Flags().BoolVar(&strict, "strict", false, "Return non-zero when errors are found") return cmd } @@ -629,25 +669,49 @@ func ciHealthReportCmd() *cobra.Command { } } - if err := writeGitHubOutput(githubOutput, "has_report", strconv.FormatBool(hasReport)); err != nil { + if err := writeGitHubOutput( + githubOutput, + "has_report", + strconv.FormatBool(hasReport), + ); err != nil { return err } - if err := writeGitHubOutput(githubOutput, "health_ok", strconv.FormatBool(healthOK)); err != nil { + if err := writeGitHubOutput( + githubOutput, + "health_ok", + strconv.FormatBool(healthOK), + ); err != nil { return err } - if err := writeGitHubOutput(githubOutput, "report_ok", strconv.FormatBool(reportOK)); err != nil { + if err := writeGitHubOutput( + githubOutput, + "report_ok", + strconv.FormatBool(reportOK), + ); err != nil { return err } - if err := writeGitHubOutput(githubOutput, "has_errors", strconv.FormatBool(hasErrors)); err != nil { + if err := writeGitHubOutput( + githubOutput, + "has_errors", + strconv.FormatBool(hasErrors), + ); err != nil { return err } if healthErr != nil { - if err := writeGitHubOutput(githubOutput, "health_error", sanitizeOutputValue(healthErr.Error())); err != nil { + if err := writeGitHubOutput( + githubOutput, + "health_error", + sanitizeOutputValue(healthErr.Error()), + ); err != nil { return err } } if reportErr != nil { - if err := writeGitHubOutput(githubOutput, "report_error", sanitizeOutputValue(reportErr.Error())); err != nil { + if err := writeGitHubOutput( + githubOutput, + "report_error", + sanitizeOutputValue(reportErr.Error()), + ); err != nil { return err } } @@ -677,7 +741,8 @@ func ciHealthReportCmd() *cobra.Command { } cmd.Flags().StringVar(&issueFile, "issue-file", "health_report.txt", "Path to write health issue markdown body") - cmd.Flags().StringVar(&githubOutput, "github-output", "", "Path to GitHub output file (typically $GITHUB_OUTPUT)") + cmd.Flags(). + StringVar(&githubOutput, "github-output", "", "Path to GitHub output file (typically $GITHUB_OUTPUT)") cmd.Flags().BoolVar(&strict, "strict", false, "Return non-zero when health/report fails") return cmd } @@ -693,7 +758,7 @@ func browseCmd() *cobra.Command { return fmt.Errorf("load cache: %w", err) } if len(hc.Entries) == 0 { - return fmt.Errorf("no cache data; run 'awesome-docker health' first") + return errors.New("no cache data; run 'awesome-docker health' first") } return tui.Run(hc.Entries) }, @@ -701,3 +766,113 @@ func browseCmd() *cobra.Command { cmd.Flags().StringVar(&cachePath, "cache", healthCachePath, "Path to health cache YAML") return cmd } + +func pruneCmd() *cobra.Command { + var ( + statuses []string + dryRun bool + keepCache bool + fromReport string + ) + cmd := &cobra.Command{ + Use: "prune", + Short: "Remove README entries by health status (default: archived, stale)", + Long: `Remove entries from README.md whose repository health status matches the +given list (default: "archived,stale"). The matching cache entries are also +dropped so the next health refresh starts from a clean slate. + +By default the target URL list is read from the local health cache. Refresh +it first with: + + awesome-docker health + +If the local cache is outdated (e.g. you only have the markdown report from +a CI-generated issue), point --from-report at the saved markdown report file +and the URLs will be parsed from its section headings instead. + +Use --dry-run to preview what would be removed without writing files.`, + RunE: func(cmd *cobra.Command, args []string) error { + var ( + targets map[string]cache.HealthEntry + hc *cache.HealthCache + ) + + if fromReport != "" { + f, err := os.Open(fromReport) //nolint:gosec + if err != nil { + return fmt.Errorf("open report: %w", err) + } + defer f.Close() + targets, err = pruner.TargetsFromReport(f, statuses) + if err != nil { + return fmt.Errorf("parse report: %w", err) + } + } else { + var err error + hc, err = cache.LoadHealthCache(healthCachePath) + if err != nil { + return fmt.Errorf("load cache: %w", err) + } + if len(hc.Entries) == 0 { + return errors.New("no cache data; run 'awesome-docker health' first") + } + targets = pruner.TargetURLs(hc, statuses) + } + + if len(targets) == 0 { + fmt.Printf("No entries match statuses %v; nothing to do\n", statuses) + return nil + } + + res, err := pruner.PruneREADME(readmePath, targets, dryRun) + if err != nil { + return fmt.Errorf("prune readme: %w", err) + } + + byStatus := map[string]int{} + for _, r := range res.Removed { + byStatus[r.Status]++ + } + action := "Removed" + if dryRun { + action = "Would remove" + } + fmt.Printf("%s %d entries from %s\n", action, len(res.Removed), readmePath) + for s, n := range byStatus { + fmt.Printf(" %s: %d\n", s, n) + } + for _, r := range res.Removed { + fmt.Printf(" - [%s] %s (%s)\n", r.Status, r.Name, r.URL) + } + if len(res.NotFound) > 0 { + fmt.Printf( + "\n%d target URLs not found in README (already pruned or URL drift):\n", + len(res.NotFound), + ) + for _, u := range res.NotFound { + fmt.Printf(" %s\n", u) + } + } + + if !keepCache && hc != nil { + dropped, err := pruner.PruneCache(healthCachePath, hc, targets, dryRun) + if err != nil { + return fmt.Errorf("prune cache: %w", err) + } + cacheAction := "Removed" + if dryRun { + cacheAction = "Would remove" + } + fmt.Printf("\n%s %d cache entries from %s\n", cacheAction, dropped, healthCachePath) + } + return nil + }, + } + cmd.Flags(). + StringSliceVar(&statuses, "status", []string{"archived", "stale"}, "Comma-separated health statuses to prune (archived,stale,inactive,dead)") + cmd.Flags().BoolVar(&dryRun, "dry-run", false, "Print what would be removed without writing files") + cmd.Flags().BoolVar(&keepCache, "keep-cache", false, "Do not remove pruned URLs from the health cache") + cmd.Flags(). + StringVar(&fromReport, "from-report", "", "Read target URLs from a markdown health report file instead of the cache") + return cmd +} diff --git a/config/health_cache.yaml b/config/health_cache.yaml index 5914e94a0..c103add9e 100644 --- a/config/health_cache.yaml +++ b/config/health_cache.yaml @@ -1,2329 +1,1685 @@ entries: - - url: https://github.com/byrnedo/capitan - name: byrnedo/capitan - status: stale - stars: 31 - last_push: 2017-06-07T09:46:56Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: Composable docker orchestration with added scripting support by [byrnedo]. - - url: https://github.com/magicmark/composerize - name: magicmark/composerize + - url: https://github.com/docker/compose + name: docker/compose status: healthy - stars: 3703 - forks: 247 - last_push: 2026-01-17T12:14:28Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: Convert docker run commands into docker-compose files. - - url: https://github.com/polonskiy/crowdr - name: polonskiy/crowdr - status: stale - stars: 98 - forks: 9 - last_push: 2020-10-09T07:57:52Z + stars: 37391 + forks: 5810 + last_push: 2026-05-18T15:28:07Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: Tool for managing multiple Docker containers (`docker-compose` alternative). - - url: https://github.com/ctk-hq/ctk - name: ctk-hq/ctk + checked_at: 2026-05-18T21:29:20.484404Z + - url: https://github.com/abiosoft/colima + name: abiosoft/colima status: healthy - stars: 298 - forks: 27 - last_push: 2026-02-15T22:53:00Z + stars: 28876 + forks: 577 + last_push: 2026-05-18T19:53:51Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: Visual composer for container based workloads. By [corpulent](https://github.com/corpulent). - - url: https://github.com/sudo-bmitch/docker-config-update - name: sudo-bmitch/docker-config-update - status: stale - stars: 51 - forks: 8 - last_push: 2023-03-30T13:03:12Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: Utility to update docker configs and secrets for deploying in a compose file. - - url: https://github.com/cisco/elsy - name: cisco/elsy - status: stale - stars: 80 - forks: 22 - last_push: 2022-01-18T13:38:49Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: An opinionated, multi-language, build tool based on Docker and Docker Compose. - - url: https://github.com/cloud66-oss/habitus - name: cloud66-oss/habitus - status: stale - stars: 1392 - forks: 81 - last_push: 2020-02-05T17:10:30Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: A Build Flow Tool for Docker. - - url: https://github.com/kubernetes/kompose - name: kubernetes/kompose + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: Container runtimes on macOS (and Linux) with minimal setup. + - url: https://github.com/containerd/containerd + name: containerd/containerd status: healthy - stars: 10464 - forks: 794 - last_push: 2026-02-27T14:23:27Z + stars: 20722 + forks: 3921 + last_push: 2026-05-18T20:51:55Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: Go from Docker Compose to Kubernetes. - - url: https://github.com/av/harbor - name: av/harbor + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: An open and reliable container runtime. + - url: https://github.com/cri-o/cri-o + name: cri-o/cri-o status: healthy - stars: 2485 - forks: 166 - last_push: 2026-03-08T14:30:46Z + stars: 5613 + forks: 1173 + last_push: 2026-05-18T15:14:01Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: A CLI and companion app to effortlessly run LLM backends, APIs, frontends, and services with one command. By [av](https://github.com/av). - - url: https://github.com/ihucos/plash - name: ihucos/plash + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: Open Container Initiative-based implementation of Kubernetes Container Runtime Interface. + - url: https://github.com/google/gvisor + name: google/gvisor status: healthy - stars: 387 - forks: 15 - last_push: 2025-03-20T15:47:21Z + stars: 18339 + forks: 1605 + last_push: 2026-05-18T21:19:08Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: A container run and build engine - runs inside docker. - - url: https://github.com/containers/podman-compose - name: containers/podman-compose + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: Application Kernel for Containers. + - url: https://github.com/lxc/lxc + name: lxc/lxc status: healthy - stars: 5990 - forks: 577 - last_push: 2026-03-05T16:25:54Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: A script to run docker-compose.yml using podman. - - url: https://github.com/alexaandrov/stitchocker - name: alexaandrov/stitchocker - status: inactive - stars: 30 - forks: 2 - last_push: 2024-03-14T13:50:30Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Container Composition - description: A lightweight and fast command line utility for conveniently grouping your docker-compose multiple container services. By [alexaandrov](https://github.com/alexaandrov). - - url: https://github.com/ethibox/awesome-stacks - name: ethibox/awesome-stacks - status: healthy - stars: 1250 - forks: 162 - last_push: 2026-03-08T14:40:12Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: Deploy 150+ open-source web apps with one Docker command. - - url: https://github.com/newrelic/centurion - name: newrelic/centurion - status: archived - stars: 1757 - forks: 112 - last_push: 2025-09-11T20:47:50Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: Centurion is a mass deployment tool for Docker fleets. It takes containers from a Docker registry and runs them on a fleet of hosts with the correct environment variables, host volume mappings, and port mappings. By [newrelic](https://github.com/newrelic). - - url: https://github.com/brooklyncentral/clocker - name: brooklyncentral/clocker - status: stale - stars: 429 - forks: 64 - last_push: 2018-10-24T15:29:12Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: Clocker creates and manages a Docker cloud infrastructure. Clocker supports single-click deployments and runtime management of multi-node applications that run as containers distributed across multiple hosts, on both Docker and Marathon. It leverages [Calico][calico] and [Weave][weave] for networking and [Brooklyn](https://brooklyn.apache.org/) for application blueprints. By [brooklyncentral](https://github.com/brooklyncentral). - - url: https://github.com/ehazlett/conduit - name: ehazlett/conduit - status: stale - stars: 108 - forks: 11 - last_push: 2016-11-07T18:20:56Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: Experimental deployment system for Docker. - - url: https://github.com/ContainX/depcon - name: ContainX/depcon - status: stale - stars: 93 - forks: 15 - last_push: 2018-06-05T04:40:23Z + stars: 5182 + forks: 1171 + last_push: 2026-05-18T15:46:42Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: Depcon is written in Go and allows you to easily deploy Docker containers to Apache Mesos/Marathon, Amazon ECS and Kubernetes. By [ContainX][containx]. - - url: https://github.com/deploystackio/docker-to-iac - name: deploystackio/docker-to-iac + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: LXC - Linux Containers. + - url: https://github.com/us/mocker + name: us/mocker status: healthy - stars: 23 - last_push: 2026-03-02T06:11:33Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean. - - url: https://github.com/hasura/gitkube - name: hasura/gitkube - status: stale - stars: 3850 - forks: 203 - last_push: 2023-08-31T07:48:24Z + stars: 179 + forks: 4 + last_push: 2026-05-06T00:07:20Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: Gitkube is a tool for building and deploying docker images on Kubernetes using `git push`. By [Hasura](https://github.com/hasura/). - - url: https://github.com/grafeas/grafeas - name: grafeas/grafeas + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: Docker-compatible container CLI for macOS, built on Apple's Containerization framework. + - url: https://github.com/containers/libpod + name: containers/libpod status: healthy - stars: 1564 - forks: 307 - last_push: 2026-02-13T21:53:15Z + stars: 31722 + forks: 3113 + last_push: 2026-05-18T17:26:19Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: A common API for metadata about containers, from image and build details to security vulnerabilities. By [grafeas](https://github.com/grafeas). - - url: https://github.com/LombardiDaniel/swarm-ansible - name: LombardiDaniel/swarm-ansible + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: Libpod is a library used to create container pods. Home of Podman. + - url: https://github.com/opencontainers/runc + name: opencontainers/runc status: healthy - stars: 59 - forks: 4 - last_push: 2026-01-24T22:01:08Z + stars: 13233 + forks: 2281 + last_push: 2026-05-18T18:13:16Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - - url: https://github.com/hansehe/SwarmManagement - name: hansehe/SwarmManagement + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: CLI tool for spawning and running containers according to the OCI specification. + - url: https://github.com/opencontainers/runtime-tools + name: opencontainers/runtime-tools status: healthy - stars: 21 - forks: 1 - last_push: 2025-05-13T15:24:25Z + stars: 482 + forks: 165 + last_push: 2026-03-16T12:58:33Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. - - url: https://github.com/werf/werf - name: werf/werf + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: Oci-runtime-tool is a collection of tools for working with the OCI runtime specification. + - url: https://github.com/youki-dev/youki + name: youki-dev/youki status: healthy - stars: 4661 - forks: 230 - last_push: 2026-03-06T15:47:09Z + stars: 7405 + forks: 432 + last_push: 2026-05-18T08:25:40Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Deployment and Infrastructure - description: Werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps. - - url: https://github.com/willfarrell/docker-autoheal - name: willfarrell/docker-autoheal + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Engine & Runtime + description: Container runtime written in Rust, implementing the OCI runtime specification. + - url: https://github.com/ansible-community/ansible-bender + name: ansible-community/ansible-bender status: healthy - stars: 1801 - forks: 254 - last_push: 2025-09-09T16:33:25Z + stars: 695 + forks: 73 + last_push: 2026-01-07T23:21:32Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Monitor and restart unhealthy docker containers automatically. - - url: https://github.com/google/cadvisor - name: google/cadvisor + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: A tool utilising `ansible` and `buildah`. + - url: https://github.com/chainguard-dev/apko + name: chainguard-dev/apko status: healthy - stars: 18952 - forks: 2461 - last_push: 2026-03-02T18:35:32Z + stars: 1612 + forks: 215 + last_push: 2026-05-18T00:57:59Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Analyzes resource usage and performance characteristics of running containers. - - url: https://github.com/bluewave-labs/checkmate - name: bluewave-labs/checkmate + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Declarative OCI image builder from apk packages; reproducible by design. + - url: https://github.com/containers/buildah + name: containers/buildah status: healthy - stars: 9372 - forks: 680 - last_push: 2026-03-07T01:22:01Z + stars: 8789 + forks: 896 + last_push: 2026-05-15T22:27:07Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Checkmate is an open-source, self-hosted tool designed to track and monitor server hardware, uptime, response times, and incidents in real-time with beautiful visualizations. - - url: https://github.com/zorak1103/dlia - name: zorak1103/dlia + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: A tool that facilitates building OCI images. + - url: https://github.com/moby/buildkit + name: moby/buildkit status: healthy - stars: 3 - last_push: 2026-03-07T04:03:52Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. By [zorak1103](https://github.com/zorak1103). - - url: https://github.com/deltaskelta/docker-alertd - name: deltaskelta/docker-alertd - status: stale - stars: 108 - forks: 12 - last_push: 2017-11-15T04:40:06Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Monitor and send alerts based on docker container resource usage/statistics. - - url: https://github.com/docker-flow/docker-flow-monitor - name: docker-flow/docker-flow-monitor - status: stale - stars: 88 - forks: 38 - last_push: 2021-03-17T14:33:01Z + stars: 9971 + forks: 1417 + last_push: 2026-05-18T00:43:44Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Reconfigures Prometheus when a new service is updated or deployed automatically. - - url: https://github.com/stefanprodan/dockprom - name: stefanprodan/dockprom + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit. + - url: https://github.com/docker/buildx + name: docker/buildx status: healthy - stars: 6488 - forks: 1768 - last_push: 2026-03-06T05:28:07Z + stars: 4387 + forks: 638 + last_push: 2026-05-14T18:03:13Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. - - url: https://github.com/amerkurev/doku - name: amerkurev/doku + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Official Docker CLI plugin for multi-platform builds backed by BuildKit. + - url: https://github.com/cekit/cekit + name: cekit/cekit status: healthy - stars: 410 - forks: 18 - last_push: 2025-12-26T09:13:21Z + stars: 113 + forks: 44 + last_push: 2026-03-30T04:08:01Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Doku is a simple web-based application that allows you to monitor Docker disk usage. [amerkurev](https://github.com/amerkurev). - - url: https://github.com/nicolargo/glances - name: nicolargo/glances - status: healthy - stars: 31995 - forks: 1695 - last_push: 2026-03-07T15:24:35Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: A cross-platform curses-based system monitoring tool written in Python. - - url: https://github.com/dromara/hertzbeat - name: dromara/hertzbeat - status: healthy - stars: 7114 - forks: 1255 - last_push: 2026-03-08T12:09:09Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: An open-source real-time monitoring system with custom-monitor and agentless. - - url: https://github.com/vegasbrianc/docker-monitoring - name: vegasbrianc/docker-monitoring - status: stale - stars: 473 - forks: 129 - last_push: 2018-06-10T20:53:49Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: InfluxDB Time series DB in combination with Grafana and cAdvisor. - - url: https://github.com/gliderlabs/logspout - name: gliderlabs/logspout - status: stale - stars: 4701 - forks: 668 - last_push: 2023-07-11T20:36:12Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Log routing for Docker container logs. - - url: https://github.com/decryptus/monit-docker - name: decryptus/monit-docker - status: stale - stars: 34 - forks: 5 - last_push: 2023-01-16T11:31:14Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Monitor docker containers resources usage or status and execute docker commands or inside containers. [decryptus][decryptus]. - - url: https://github.com/NexClipper/NexClipper - name: NexClipper/NexClipper - status: stale - stars: 565 - forks: 72 - last_push: 2023-05-05T02:21:24Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: NexClipper is the container monitoring and performance management solution specialized in Docker, Apache Mesos, Marathon, DC/OS, Mesosphere, Kubernetes. - - url: https://github.com/uschtwill/docker_monitoring_logging_alerting - name: uschtwill/docker_monitoring_logging_alerting - status: stale - stars: 539 - forks: 119 - last_push: 2018-09-13T07:36:45Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting. Set up in 5 Minutes. Secure mode for production use with built-in [Automated Nginx Reverse Proxy (jwilder's)][nginxproxy]. - - url: https://github.com/runsidekick/sidekick - name: runsidekick/sidekick - status: stale - stars: 1611 - forks: 67 - last_push: 2023-06-29T12:18:38Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Open source live application debugger like Chrome DevTools for your backend. Collect traces and generate logs on-demand without stopping & redeploying your applications. - - url: https://github.com/gpulido/SwarmAlert - name: gpulido/SwarmAlert - status: stale - stars: 22 - forks: 2 - last_push: 2019-11-27T12:17:14Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Monitors a Docker Swarm and sends Pushover alerts when it finds a container with no healthy service task running. - - url: https://github.com/gomex/docker-zabbix - name: gomex/docker-zabbix - status: stale - stars: 53 - forks: 12 - last_push: 2017-07-28T14:29:08Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Monitor containers automatically using zabbix LLD feature. - - url: https://github.com/monitoringartist/Zabbix-Docker-Monitoring - name: monitoringartist/Zabbix-Docker-Monitoring - status: stale - stars: 1197 - forks: 265 - last_push: 2022-02-22T17:01:39Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Monitoring - description: Zabbix module that provides discovery of running containers, CPU/memory/blk IO/net container metrics. Systemd Docker and LXC execution driver is also supported. It's a dynamically linked shared object library, so its performance is (~10x) better, than any script solution. - - url: https://github.com/coreos/flannel - name: coreos/flannel + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: A tool used by openshift to build base images using different build engines. + - url: https://github.com/orisano/dlayer + name: orisano/dlayer status: healthy - stars: 9410 - forks: 2902 - last_push: 2026-03-06T12:10:23Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - - url: https://github.com/Microsoft/Freeflow - name: Microsoft/Freeflow - status: stale - stars: 632 - forks: 96 - last_push: 2023-06-12T19:30:22Z + stars: 446 + forks: 12 + last_push: 2026-05-12T12:49:02Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Networking - description: High performance container overlay networks on Linux. Enabling RDMA (on both InfiniBand and RoCE) and accelerating TCP to bare metal performance. By [Microsoft](https://github.com/Microsoft). - - url: https://github.com/jason5ng32/MyIP - name: jason5ng32/MyIP + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Docker layer analyzer. + - url: https://github.com/mudler/docker-companion + name: mudler/docker-companion status: healthy - stars: 9895 - forks: 1072 - last_push: 2026-02-10T07:38:47Z + stars: 47 + forks: 9 + last_push: 2025-05-28T08:17:46Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Networking - description: All in one IP Toolbox. Easy to check all your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more. By [jason5ng32](https://github.com/jason5ng32). - - url: https://github.com/nicolaka/netshoot - name: nicolaka/netshoot + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: A command line tool written in Golang to squash and unpack docker images. + - url: https://github.com/orf/docker-repack + name: orf/docker-repack + status: inactive + stars: 154 + forks: 3 + last_push: 2025-04-24T06:46:00Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. + - url: https://github.com/earthly/earthly + name: earthly/earthly + status: healthy + stars: 12029 + forks: 454 + last_push: 2025-10-23T20:10:46Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Containerized build automation with Dockerfile-meets-Makefile syntax. + - url: https://github.com/utensils/essex + name: utensils/essex + status: inactive + stars: 38 + last_push: 2025-03-18T21:33:36Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: 'Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows.' + - url: https://github.com/NVIDIA/hpc-container-maker + name: NVIDIA/hpc-container-maker status: healthy - stars: 10445 - forks: 1085 - last_push: 2026-03-05T17:23:33Z + stars: 514 + forks: 102 + last_push: 2026-05-11T21:40:05Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Networking - description: The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. - - url: https://github.com/jpetazzo/pipework - name: jpetazzo/pipework + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. + - url: https://github.com/genuinetools/img + name: genuinetools/img status: inactive - stars: 4252 - forks: 727 - last_push: 2024-11-04T17:31:57Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Networking - description: Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. By [jpetazzo][jpetazzo]. - - url: https://github.com/Peco602/ansible-linux-docker - name: Peco602/ansible-linux-docker - status: stale - stars: 37 - forks: 4 - last_push: 2023-06-21T09:34:02Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Run Ansible from a Linux container. By [Peco602][peco602]. - - url: https://github.com/athena-oss/athena - name: athena-oss/athena - status: stale - stars: 96 - forks: 25 - last_push: 2017-07-06T08:26:12Z + stars: 3986 + forks: 233 + last_push: 2024-05-19T22:07:07Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: An automation platform with a plugin architecture that allows you to easily create and share services. - - url: https://github.com/CloudSlang/cloud-slang - name: CloudSlang/cloud-slang + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. + - url: https://github.com/ko-build/ko + name: ko-build/ko + status: healthy + stars: 8432 + forks: 442 + last_push: 2026-05-18T11:43:46Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Build and deploy Go applications as container images without a Dockerfile. + - url: https://github.com/nlewo/nix2container + name: nlewo/nix2container + status: healthy + stars: 842 + forks: 77 + last_push: 2026-04-06T15:03:51Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Build OCI images with Nix without `docker load` round-trips. + - url: https://github.com/cybersecsi/RAUDI + name: cybersecsi/RAUDI status: healthy - stars: 240 - forks: 83 - last_push: 2026-03-04T10:56:48Z + stars: 560 + forks: 34 + last_push: 2026-05-18T03:59:35Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: CloudSlang is a workflow engine to create Docker process automation. - - url: https://github.com/clusterdock/clusterdock - name: clusterdock/clusterdock - status: stale - stars: 29 - forks: 8 - last_push: 2023-05-16T18:05:45Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Docker container orchestration to enable the testing of long-running cluster deployments. - - url: https://github.com/Dataman-Cloud/crane - name: Dataman-Cloud/crane - status: stale - stars: 748 - forks: 164 - last_push: 2023-08-31T09:46:38Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Control plane based on docker built-in swarm [Dataman-Cloud](https://github.com/Dataman-Cloud). - - url: https://github.com/docker-flow/docker-flow-swarm-listener - name: docker-flow/docker-flow-swarm-listener - status: stale - stars: 69 - forks: 50 - last_push: 2019-05-20T19:40:37Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. + - url: https://github.com/lavie/runlike + name: lavie/runlike + status: healthy + stars: 2926 + forks: 167 + last_push: 2026-04-27T14:03:20Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Docker Flow Swarm Listener project is to listen to Docker Swarm events and send requests when a change occurs. By [docker-flow][docker-flow]. - - url: https://github.com/Wowu/docker-rollout - name: Wowu/docker-rollout + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Generate `docker run`command and options from running containers. + - url: https://github.com/P3GLEG/Whaler + name: P3GLEG/Whaler status: healthy - stars: 3111 - forks: 93 - last_push: 2025-07-25T17:57:48Z + stars: 1185 + forks: 103 + last_push: 2026-04-08T19:28:12Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Zero downtime deployment for Docker Compose services. - - url: https://github.com/codeabovelab/haven-platform - name: codeabovelab/haven-platform - status: stale - stars: 297 - forks: 41 - last_push: 2018-07-06T11:21:20Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Haven is a simplified container management platform that integrates container, application, cluster, image, and registry managements. By [codeabovelab](https://github.com/codeabovelab). - - url: https://github.com/kubernetes/kubernetes - name: kubernetes/kubernetes + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Builder + description: Program to reverse Docker images into Dockerfiles. + - url: https://github.com/chainguard-images/images + name: chainguard-images/images status: healthy - stars: 120996 - forks: 42620 - last_push: 2026-03-07T08:41:59Z + stars: 668 + forks: 175 + last_push: 2026-05-18T20:50:10Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Open source orchestration system for Docker containers by Google. - - url: https://github.com/ManageIQ/manageiq - name: ManageIQ/manageiq + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Base Images + description: Minimal, signed, SBOM-attested container images built on Wolfi. + - url: https://github.com/GoogleContainerTools/distroless + name: GoogleContainerTools/distroless + status: healthy + stars: 22631 + forks: 1389 + last_push: 2026-05-18T20:57:36Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Base Images + description: Language focused docker images, minus the operating system. + - url: https://github.com/chainguard-dev/melange + name: chainguard-dev/melange + status: healthy + stars: 598 + forks: 170 + last_push: 2026-05-18T00:48:12Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Base Images + description: Build apk packages from declarative YAML for use with apko. + - url: https://github.com/wolfi-dev/os + name: wolfi-dev/os + status: healthy + stars: 1217 + forks: 433 + last_push: 2026-05-18T15:10:52Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Base Images + description: Undistro Linux designed for containers; glibc-based, signed, daily SBOMs. + - url: https://github.com/Dockershelf/dockershelf + name: Dockershelf/dockershelf status: healthy - stars: 1392 - forks: 922 - last_push: 2026-03-05T20:13:05Z + stars: 96 + forks: 13 + last_push: 2026-04-30T01:03:40Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Discover, optimize and control your hybrid IT. By [ManageIQ](https://github.com/ManageIQ). - - url: https://github.com/apache/mesos - name: apache/mesos - status: inactive - stars: 5364 - forks: 1669 - last_push: 2024-08-23T18:59:16Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Dockerfile + description: A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. + - url: https://github.com/deckrun/dockadvisor + name: deckrun/dockadvisor + status: healthy + stars: 203 + forks: 7 + last_push: 2026-01-12T09:26:02Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Resource/Job scheduler for containers, VM's and physical hosts [apache](https://mesos.apache.org/). - - url: https://github.com/hashicorp/nomad - name: hashicorp/nomad + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Linter + description: Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks. + - url: https://github.com/wemake-services/docker-image-size-limit + name: wemake-services/docker-image-size-limit status: healthy - stars: 16262 - forks: 2059 - last_push: 2026-03-08T09:06:18Z + stars: 131 + forks: 5 + last_push: 2026-05-15T07:17:04Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler. - - url: https://github.com/rancher/rancher - name: rancher/rancher + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Linter + description: A tool to keep an eye on your docker images size. + - url: https://github.com/hadolint/hadolint + name: hadolint/hadolint status: healthy - stars: 25400 - forks: 3173 - last_push: 2026-03-06T22:49:23Z + stars: 12141 + forks: 492 + last_push: 2026-05-13T10:19:09Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: An open source project that provides a complete platform for operating Docker in production. - - url: https://github.com/redherd-project/redherd-framework - name: redherd-project/redherd-framework - status: stale - stars: 74 - forks: 17 - last_push: 2023-04-25T18:54:33Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Building Images > Linter + description: A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions;. + - url: https://github.com/dragonflyoss/Dragonfly2 + name: dragonflyoss/Dragonfly2 + status: healthy + stars: 3167 + forks: 397 + last_push: 2026-05-15T03:49:27Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: RedHerd is a collaborative and serverless framework for orchestrating a geographically distributed group of assets capable of simulating complex offensive cyberspace operations. By [RedHerdProject](https://github.com/redherd-project). - - url: https://github.com/crazy-max/swarm-cronjob - name: crazy-max/swarm-cronjob + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry + description: Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. + - url: https://github.com/imjasonh/kontain.me + name: imjasonh/kontain.me status: healthy - stars: 861 - forks: 74 - last_push: 2026-03-06T07:02:33Z + stars: 240 + forks: 13 + last_push: 2026-05-15T14:30:38Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Orchestration - description: Create jobs on a time-based schedule on Swarm by [crazy-max]. - - url: https://github.com/caprover/caprover - name: caprover/caprover + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry + description: On-demand container image registry that builds and serves images when they are pulled. + - url: https://github.com/uber/kraken + name: uber/kraken status: healthy - stars: 14892 - forks: 966 - last_push: 2026-01-31T15:42:45Z + stars: 6690 + forks: 473 + last_push: 2026-05-18T10:12:54Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: '[Previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids.' - - url: https://github.com/convox/rack - name: convox/rack + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry + description: Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. + - url: https://github.com/getnora-io/nora + name: getnora-io/nora status: healthy - stars: 1892 - forks: 177 - last_push: 2026-02-12T19:55:53Z + stars: 167 + forks: 11 + last_push: 2026-05-18T20:23:30Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. - - url: https://github.com/pbertera/dcw - name: pbertera/dcw - status: stale - stars: 17 - forks: 3 - last_push: 2017-03-29T07:55:37Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: 'Docker-compose SSH wrapper: a very poor man PaaS, exposing the docker-compose and custom-container commands defined in container labels.' - - url: https://github.com/dokku/dokku - name: dokku/dokku + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry + description: Lightweight multi-protocol artifact registry supporting Docker, Maven, npm, Cargo and PyPI in a single 32MB binary. Pull-through cache, Web UI, Prometheus metrics, RBAC auth. + - url: https://github.com/jhstatewide/nscr + name: jhstatewide/nscr status: healthy - stars: 31896 - forks: 2022 - last_push: 2026-03-07T18:31:36Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: Docker powered mini-Heroku that helps you build and manage the lifecycle of applications (originally by [progrium][progrium]). - - url: https://github.com/remind101/empire - name: remind101/empire - status: stale - stars: 2681 - forks: 156 - last_push: 2023-11-25T17:16:08Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: A PaaS built on top of Amazon EC2 Container Service (ECS). - - url: https://github.com/exoframejs/exoframe - name: exoframejs/exoframe + stars: 1 + last_push: 2025-10-27T14:37:18Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry + description: A light-weight, self-contained container registry that's easy to run and maintain. + - url: https://github.com/inmagik/registryo + name: inmagik/registryo status: healthy - stars: 1146 - forks: 59 - last_push: 2026-02-22T16:24:52Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: A self-hosted tool that allows simple one-command deployments using Docker. - - url: https://github.com/teamhephy/workflow - name: teamhephy/workflow - status: stale - stars: 419 - forks: 36 - last_push: 2023-09-27T17:30:49Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: Open source PaaS for Kubernetes that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications. Fork of [Deis Workflow](https://github.com/deis/workflow). - - url: https://github.com/krane/krane - name: krane/krane - status: stale - stars: 80 - forks: 8 - last_push: 2023-05-11T20:39:00Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: Toolset for managing container workloads on remote servers. - - url: https://github.com/nanobox-io/nanobox - name: nanobox-io/nanobox - status: stale - stars: 1625 - forks: 90 - last_push: 2019-10-21T20:03:10Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: An application development platform that creates local environments that can then be deployed and scaled in the cloud. - - url: https://github.com/tsuru/tsuru - name: tsuru/tsuru + stars: 15 + last_push: 2025-12-17T10:20:47Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry + description: UI and token based authentication server for onpremise docker registry. + - url: https://github.com/google/go-containerregistry + name: google/go-containerregistry status: healthy - stars: 5259 - forks: 550 - last_push: 2026-03-05T03:11:24Z + stars: 3872 + forks: 641 + last_push: 2026-05-18T19:37:36Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > PaaS - description: Tsuru is an extensible and open source Platform as a Service software. - - url: https://github.com/bunkerity/bunkerweb - name: bunkerity/bunkerweb + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry CLI + description: Go library and CLI tools (`crane`, `gcrane`, `registry`) for working with container registries. + - url: https://github.com/oras-project/oras + name: oras-project/oras status: healthy - stars: 10112 - forks: 568 - last_push: 2026-03-06T17:15:47Z + stars: 2269 + forks: 234 + last_push: 2026-05-18T13:49:56Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: Open-source and next-gen Web Application Firewall (WAF). By [Bunkerity](https://www.bunkerity.com). - - url: https://github.com/lucaslorentz/caddy-docker-proxy - name: lucaslorentz/caddy-docker-proxy + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry CLI + description: Push and pull arbitrary OCI artifacts to and from any OCI registry. + - url: https://github.com/regclient/regclient + name: regclient/regclient status: healthy - stars: 4315 - forks: 211 - last_push: 2026-03-08T07:04:18Z + stars: 1838 + forks: 122 + last_push: 2026-05-13T19:07:01Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: Caddy-based reverse proxy, configured with service or container labels. By [lucaslorentz](https://github.com/lucaslorentz). - - url: https://github.com/invzhi/caddy-docker-upstreams - name: invzhi/caddy-docker-upstreams + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry CLI + description: Daemonless registry client; copy, inspect, modify, and sign OCI images. + - url: https://github.com/containers/skopeo + name: containers/skopeo status: healthy - stars: 36 - forks: 8 - last_push: 2025-09-08T05:17:01Z + stars: 10877 + forks: 921 + last_push: 2026-05-18T14:17:31Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: Docker upstreams module for Caddy, configured with container labels. By [invzhi](https://github.com/invzhi). - - url: https://github.com/moonbuggy/docker-dnsmasq-updater - name: moonbuggy/docker-dnsmasq-updater + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Registry CLI + description: 'Work with remote image registries: retrieve information, copy images, sign content.' + - url: https://github.com/SongStitch/anchor + name: SongStitch/anchor status: inactive - stars: 35 - forks: 2 - last_push: 2025-02-09T00:21:52Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: Update a remote dnsmasq server with Docker container hostnames. - - url: https://github.com/docker-flow/docker-flow-proxy - name: docker-flow/docker-flow-proxy + stars: 24 + last_push: 2025-01-15T23:09:06Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + - url: https://github.com/quay/clair + name: quay/clair status: healthy - stars: 320 - forks: 189 - last_push: 2025-12-05T02:29:16Z + stars: 10979 + forks: 1208 + last_push: 2026-05-13T17:02:51Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: Reconfigures proxy every time a new service is deployed, or when a service is scaled. By [docker-flow][docker-flow]. - - url: https://github.com/fabiolb/fabio - name: fabiolb/fabio + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Image Scanning & SBOM + description: Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. + - url: https://github.com/docker/scout-cli + name: docker/scout-cli + status: healthy + stars: 445 + forks: 128 + last_push: 2026-04-08T08:04:21Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Image Scanning & SBOM + description: Official Docker CLI for SBOM generation, vulnerability analysis, and policy evaluation. + - url: https://github.com/anchore/grype + name: anchore/grype + status: healthy + stars: 12228 + forks: 795 + last_push: 2026-05-18T19:20:53Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Image Scanning & SBOM + description: A vulnerability scanner for container images, filesystems and SBOMs. + - url: https://github.com/OpenSCAP/openscap + name: OpenSCAP/openscap status: healthy - stars: 7333 - forks: 624 - last_push: 2026-02-23T02:48:11Z + stars: 1717 + forks: 433 + last_push: 2026-05-14T13:22:33Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: A fast, modern, zero-conf load balancing HTTP(S) router for deploying microservices managed by consul. By [magiconair](https://github.com/magiconair) (Frank Schroeder). - - url: https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion - name: nginx-proxy/docker-letsencrypt-nginx-proxy-companion + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Image Scanning & SBOM + description: OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. + - url: https://github.com/deadnews/pindock + name: deadnews/pindock status: healthy - stars: 7698 - forks: 834 - last_push: 2026-03-02T17:04:31Z + stars: 2 + last_push: 2026-05-07T11:07:59Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. By [JrCs](https://github.com/JrCs). - - url: https://github.com/Yundera/mesh-router - name: Yundera/mesh-router + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Image Scanning & SBOM + description: Pin and update Docker image digests in Dockerfiles and compose files. + - url: https://github.com/anchore/syft + name: anchore/syft status: healthy - stars: 8 - last_push: 2026-03-02T15:37:53Z + stars: 8952 + forks: 860 + last_push: 2026-05-18T19:01:40Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. By [Yundera](https://github.com/Yundera). - - url: https://github.com/jc21/nginx-proxy-manager - name: jc21/nginx-proxy-manager + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Image Scanning & SBOM + description: CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. + - url: https://github.com/aquasecurity/trivy + name: aquasecurity/trivy status: healthy - stars: 32001 - forks: 3639 - last_push: 2026-03-06T14:15:08Z + stars: 35038 + forks: 379 + last_push: 2026-05-18T13:26:17Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: A beautiful web interface for proxying web based services with SSL. By [jc21](https://github.com/jc21). - - url: https://github.com/Safe3/openresty-manager - name: Safe3/openresty-manager + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Image Scanning & SBOM + description: Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). + - url: https://github.com/sigstore/cosign + name: sigstore/cosign status: healthy - stars: 1322 - forks: 98 - last_push: 2026-01-25T10:38:42Z + stars: 5925 + forks: 734 + last_push: 2026-05-18T18:53:10Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. By [Safe3](https://github.com/Safe3/). - - url: https://github.com/flavioaiello/swarm-router - name: flavioaiello/swarm-router + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Supply Chain + description: Container signing, verification, and transparency log for OCI artifacts. + - url: https://github.com/in-toto/in-toto + name: in-toto/in-toto status: healthy - stars: 73 - forks: 12 - last_push: 2025-09-15T06:12:30Z + stars: 999 + forks: 155 + last_push: 2026-05-05T00:53:21Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Supply Chain + description: Framework for supply chain attestations; underpins SLSA and cosign provenance. + - url: https://github.com/sigstore/policy-controller + name: sigstore/policy-controller + status: healthy + stars: 172 + forks: 69 + last_push: 2026-05-08T23:10:07Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Supply Chain + description: Kubernetes admission controller enforcing cosign signatures on container images. + - url: https://github.com/in-toto/witness + name: in-toto/witness + status: healthy + stars: 530 + forks: 77 + last_push: 2026-05-18T19:19:00Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Image Lifecycle > Supply Chain + description: Generate and verify in-toto attestations across the build pipeline. + - url: https://github.com/magicmark/composerize + name: magicmark/composerize + status: healthy + stars: 3738 + forks: 253 + last_push: 2026-05-17T14:35:15Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: A «zero config» service name based router for docker swarm mode with a fresh and more secure approach. By [flavioaiello](https://github.com/flavioaiello). - - url: https://github.com/containous/traefik - name: containous/traefik + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Composition + description: Convert docker run commands into docker-compose files. + - url: https://github.com/ctk-hq/ctk + name: ctk-hq/ctk status: healthy - stars: 62086 - forks: 5865 - last_push: 2026-03-06T16:16:05Z + stars: 300 + forks: 27 + last_push: 2026-02-15T22:53:00Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Reverse Proxy - description: Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd... By [EmileVauge](https://github.com/emilevauge). - - url: https://github.com/cri-o/cri-o - name: cri-o/cri-o + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Composition + description: Visual composer for container based workloads. + - url: https://github.com/kubernetes/kompose + name: kubernetes/kompose status: healthy - stars: 5588 - forks: 1151 - last_push: 2026-03-08T00:16:02Z + stars: 10525 + forks: 798 + last_push: 2026-04-16T14:23:39Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Runtime - description: Open Container Initiative-based implementation of Kubernetes Container Runtime Interface by [cri-o](https://github.com/cri-o). - - url: https://github.com/lxc/lxc - name: lxc/lxc + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Composition + description: Go from Docker Compose to Kubernetes. + - url: https://github.com/ihucos/plash + name: ihucos/plash + status: inactive + stars: 384 + forks: 15 + last_push: 2025-03-20T15:47:21Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Composition + description: A container run and build engine - runs inside docker. + - url: https://github.com/containers/podman-compose + name: containers/podman-compose status: healthy - stars: 5126 - forks: 1162 - last_push: 2026-03-02T14:26:30Z + stars: 6074 + forks: 596 + last_push: 2026-05-04T20:34:25Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Runtime - description: LXC - Linux Containers. - - url: https://github.com/containers/libpod - name: containers/libpod + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Composition + description: A script to run docker-compose.yml using podman. + - url: https://github.com/CloudSlang/cloud-slang + name: CloudSlang/cloud-slang status: healthy - stars: 30937 - forks: 3006 - last_push: 2026-03-06T15:57:05Z + stars: 241 + forks: 84 + last_push: 2026-05-14T12:30:42Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Runtime - description: Libpod is a library used to create container pods. Home of Podman. - - url: https://github.com/brauner/rlxc - name: brauner/rlxc - status: stale - stars: 18 - forks: 3 - last_push: 2021-06-30T13:12:28Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Runtime - description: LXC binary written in Rust. - - url: https://github.com/opencontainers/runtime-tools - name: opencontainers/runtime-tools + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Orchestration + description: CloudSlang is a workflow engine to create Docker process automation. + - url: https://github.com/Wowu/docker-rollout + name: Wowu/docker-rollout status: healthy - stars: 473 - forks: 159 - last_push: 2025-12-05T00:49:12Z + stars: 3213 + forks: 95 + last_push: 2026-04-02T21:01:55Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Runtime - description: Oci-runtime-tool is a collection of tools for working with the OCI runtime specification. - - url: https://github.com/SongStitch/anchor - name: SongStitch/anchor - status: inactive - stars: 24 - last_push: 2025-01-15T23:09:06Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Orchestration + description: Zero downtime deployment for Docker Compose services. + - url: https://github.com/kubernetes/kubernetes + name: kubernetes/kubernetes + status: healthy + stars: 122338 + forks: 43096 + last_push: 2026-05-18T16:14:02Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - - url: https://github.com/genuinetools/bane - name: genuinetools/bane - status: stale - stars: 1224 - forks: 91 - last_push: 2020-09-17T20:10:45Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: AppArmor profile generator for Docker containers. - - url: https://github.com/dash14/buildcage - name: dash14/buildcage + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Orchestration + description: Open source orchestration system for Docker containers by Google. + - url: https://github.com/apache/mesos + name: apache/mesos status: healthy - stars: 4 - last_push: 2026-03-08T16:59:17Z + stars: 5370 + forks: 1666 + last_push: 2026-05-15T22:22:50Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. - - url: https://github.com/hectorm/cetusguard - name: hectorm/cetusguard + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Orchestration + description: Resource/Job scheduler for containers, VM's and physical hosts. + - url: https://github.com/hashicorp/nomad + name: hashicorp/nomad status: healthy - stars: 82 - forks: 2 - last_push: 2026-03-01T11:42:56Z + stars: 16509 + forks: 2088 + last_push: 2026-05-18T19:55:35Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. - - url: https://github.com/bridgecrewio/checkov - name: bridgecrewio/checkov + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Orchestration + description: Easily deploy applications at any scale. A Distributed, Highly Available, Datacenter-Aware Scheduler. + - url: https://github.com/rancher/rancher + name: rancher/rancher status: healthy - stars: 8510 - forks: 1307 - last_push: 2026-03-08T07:40:01Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. By [bridgecrew](https://github.com/bridgecrewio). - - url: https://github.com/dev-sec/cis-docker-benchmark - name: dev-sec/cis-docker-benchmark - status: stale - stars: 524 - forks: 118 - last_push: 2023-05-02T12:59:10Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: This [InSpec][inspec] compliance profile implement the CIS Docker 1.12.0 Benchmark in an automated way to provide security best-practice tests around Docker daemon and containers in a production environment. By [dev-sec](https://github.com/dev-sec). - - url: https://github.com/quay/clair - name: quay/clair + stars: 25585 + forks: 3194 + last_push: 2026-05-18T21:09:51Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Orchestration + description: An open source project that provides a complete platform for operating Docker in production. + - url: https://github.com/crazy-max/swarm-cronjob + name: crazy-max/swarm-cronjob status: healthy - stars: 10940 - forks: 1195 - last_push: 2026-03-06T23:17:06Z + stars: 872 + forks: 74 + last_push: 2026-05-18T19:04:41Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. By [coreos][coreos]. - - url: https://github.com/wolffcatskyy/crowdsec-blocklist-import - name: wolffcatskyy/crowdsec-blocklist-import + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Orchestration + description: Create jobs on a time-based schedule on Swarm. + - url: https://github.com/caprover/caprover + name: caprover/caprover status: healthy - stars: 179 - forks: 4 - last_push: 2026-03-07T18:44:39Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Aggregates 36 free threat intelligence feeds into 120k+ malicious IPs for CrowdSec bouncers, providing 10-20x more blocks than default lists. By [wolffcatskyy](https://github.com/wolffcatskyy). - - url: https://github.com/eliasgranderubio/dagda - name: eliasgranderubio/dagda - status: stale - stars: 1220 - forks: 169 - last_push: 2023-05-23T02:03:43Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Dagda is a tool to perform static analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers and to monitor the docker daemon and running docker containers for detecting anomalous activities. By [eliasgranderubio](https://github.com/eliasgranderubio). - - url: https://github.com/deepfence/ThreatMapper - name: deepfence/ThreatMapper + stars: 15028 + forks: 976 + last_push: 2026-05-14T18:12:25Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Deployment & Platforms + description: '[Previously known as CaptainDuckDuck] Automated Scalable Webserver Package (automated Docker+nginx) - Heroku on Steroids.' + - url: https://github.com/convox/rack + name: convox/rack status: healthy - stars: 5235 - forks: 640 - last_push: 2026-03-08T03:35:58Z + stars: 1892 + forks: 176 + last_push: 2026-04-21T23:26:52Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. By [deepfence][deepfence]. - - url: https://github.com/docker/docker-bench-security - name: docker/docker-bench-security - status: inactive - stars: 9600 - forks: 1038 - last_push: 2024-10-21T07:26:06Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Deployment & Platforms + description: Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. + - url: https://github.com/deploystackio/docker-to-iac + name: deploystackio/docker-to-iac + status: healthy + stars: 21 + last_push: 2026-03-20T05:57:15Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Script that checks for dozens of common best-practices around deploying Docker containers in production. By [docker][docker]. - - url: https://github.com/google/docker-explorer - name: google/docker-explorer - status: inactive - stars: 553 - forks: 45 - last_push: 2024-10-04T07:44:31Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: A tool to help forensicate offline docker acquisitions. - - url: https://github.com/Peco602/dvwassl - name: Peco602/dvwassl - status: stale - stars: 6 - forks: 4 - last_push: 2023-04-30T17:03:01Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Deployment & Platforms + description: Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean. + - url: https://github.com/dokku/dokku + name: dokku/dokku + status: healthy + stars: 31887 + forks: 2034 + last_push: 2026-05-17T06:58:54Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: SSL-enabled Damn Vulnerable Web App to test Web Application Firewalls. By [Peco602][peco602]. - - url: https://github.com/checkmarx/kics - name: checkmarx/kics + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Deployment & Platforms + description: Docker powered mini-Heroku that helps you build and manage the lifecycle of applications. + - url: https://github.com/exoframejs/exoframe + name: exoframejs/exoframe status: healthy - stars: 2581 - forks: 361 - last_push: 2026-03-06T15:34:55Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. By [Checkmarx](https://github.com/Checkmarx). - - url: https://github.com/theupdateframework/notary - name: theupdateframework/notary - status: archived - stars: 3287 - forks: 520 - last_push: 2024-08-07T19:02:32Z + stars: 1151 + forks: 59 + last_push: 2026-05-11T20:05:06Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Deployment & Platforms + description: A self-hosted tool that allows simple one-command deployments using Docker. + - url: https://github.com/grafeas/grafeas + name: grafeas/grafeas + status: healthy + stars: 1564 + forks: 307 + last_push: 2026-05-08T23:32:27Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: A server and a client for running and interacting with trusted collections. By [TUF](https://github.com/theupdateframework). - - url: https://github.com/OpenSCAP/openscap - name: OpenSCAP/openscap + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Deployment & Platforms + description: A common API for metadata about containers, from image and build details to security vulnerabilities. + - url: https://github.com/LombardiDaniel/swarm-ansible + name: LombardiDaniel/swarm-ansible status: healthy - stars: 1676 - forks: 424 - last_push: 2026-02-27T12:44:50Z + stars: 57 + forks: 4 + last_push: 2026-03-10T23:06:30Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: OpenSCAP provides oscap-docker tool which is used to scan Docker containers and images. By [OpenSCAP](https://github.com/OpenSCAP). - - url: https://github.com/dormstern/segspec - name: dormstern/segspec + checked_at: 2026-05-18T21:29:20.484404Z + - url: https://github.com/hansehe/SwarmManagement + name: hansehe/SwarmManagement status: healthy - stars: 15 - last_push: 2026-02-23T11:39:00Z + stars: 21 + forks: 1 + last_push: 2026-05-05T11:10:29Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. By [dormstern](https://github.com/dormstern). - - url: https://github.com/anchore/syft - name: anchore/syft + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Deployment & Platforms + description: Swarm Management is a python application, installed with pip. The application makes it easy to manage a Docker Swarm by configuring a single yaml file describing which stacks to deploy, and which networks, configs or secrets to create. + - url: https://github.com/tsuru/tsuru + name: tsuru/tsuru status: healthy - stars: 8454 - forks: 779 - last_push: 2026-03-08T08:12:44Z + stars: 5277 + forks: 553 + last_push: 2026-05-18T21:07:41Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: CLI tool and library for generating a Software Bill of Materials (SBOM) from container images and filesystems. - - url: https://github.com/falcosecurity/falco - name: falcosecurity/falco + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Deployment & Platforms + description: Tsuru is an extensible and open source Platform as a Service software. + - url: https://github.com/werf/werf + name: werf/werf status: healthy - stars: 8712 - forks: 990 - last_push: 2026-03-02T17:54:20Z + stars: 4685 + forks: 236 + last_push: 2026-05-18T17:59:40Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. - - url: https://github.com/aquasecurity/trivy - name: aquasecurity/trivy + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Deployment & Platforms + description: Werf is a CI/CD tool for building Docker images efficiently and deploying them to Kubernetes using GitOps. + - url: https://github.com/Yelp/docker-custodian + name: Yelp/docker-custodian status: healthy - stars: 33020 - forks: 76 - last_push: 2026-03-06T06:42:06Z + stars: 373 + forks: 49 + last_push: 2026-04-02T17:05:49Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Security - description: Aqua Security's open source simple and comprehensive vulnerability scanner for containers (suitable for CI). + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Garbage Collection + description: Keep docker hosts tidy. + - url: https://github.com/stepchowfun/docuum + name: stepchowfun/docuum + status: healthy + stars: 693 + forks: 42 + last_push: 2026-04-26T19:47:34Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Running Containers > Garbage Collection + description: Least recently used (LRU) eviction of Docker images. - url: https://github.com/bytesharky/docker-dns name: bytesharky/docker-dns status: healthy - stars: 3 + stars: 4 forks: 1 last_push: 2025-12-26T02:44:43Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Service Discovery + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Networking description: Lightweight DNS forwarder for Docker containers, resolves container names with custom suffixes (e.g. `.docker`) on the host to simplify service discovery. - - url: https://github.com/etcd-io/etcd - name: etcd-io/etcd - status: healthy - stars: 51631 - forks: 10336 - last_push: 2026-03-06T20:11:02Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Service Discovery - description: Distributed reliable key-value store for the most critical data of a distributed system by [etcd-io](https://github.com/etcd-io) (former part of CoreOS). - - url: https://github.com/istio/istio - name: istio/istio - status: healthy - stars: 38089 - forks: 8260 - last_push: 2026-03-08T16:55:04Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Service Discovery - description: An open platform to connect, manage, and secure microservices. - - url: https://github.com/gliderlabs/registrator - name: gliderlabs/registrator + - url: https://github.com/coreos/flannel + name: coreos/flannel status: healthy - stars: 4675 - forks: 909 - last_push: 2025-05-22T04:16:52Z + stars: 9454 + forks: 2892 + last_push: 2026-05-18T14:49:07Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Service Discovery - description: Service registry bridge for Docker by [gliderlabs][gliderlabs] and [progrium][progrium]. - - url: https://github.com/minio/minio - name: minio/minio - status: archived - stars: 60448 - forks: 7197 - last_push: 2026-02-12T20:18:51Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Volume Management / Data - description: S3 compatible object storage server in Docker containers. - - url: https://github.com/Storidge/quick-start - name: Storidge/quick-start - status: stale - stars: 1 - forks: 1 - last_push: 2019-09-09T21:42:15Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > Volume Management / Data - description: Software-defined Persistent Storage for Kubernetes and Docker Swarm. - - url: https://github.com/AbianS/docker-db-manager - name: AbianS/docker-db-manager + checked_at: 2026-05-18T21:29:20.484404Z + - url: https://github.com/nicolaka/netshoot + name: nicolaka/netshoot status: healthy - stars: 155 - forks: 5 - last_push: 2025-11-26T09:24:24Z + stars: 10684 + forks: 1087 + last_push: 2026-04-16T16:42:57Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Desktop - description: Desktop app for managing Docker database containers with visual interface and one-click operations. - - url: https://github.com/felixgborrego/simple-docker-ui - name: felixgborrego/simple-docker-ui + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Networking + description: The netshoot container has a powerful set of networking tools to help troubleshoot Docker networking issues. + - url: https://github.com/jpetazzo/pipework + name: jpetazzo/pipework status: inactive - stars: 606 - forks: 96 - last_push: 2024-09-06T09:31:07Z + stars: 4252 + forks: 725 + last_push: 2024-11-04T17:31:57Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Desktop - description: Built on Electron. By [felixgborrego](https://github.com/felixgborrego/). - - url: https://github.com/slonopotamus/stevedore - name: slonopotamus/stevedore + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Networking + description: Software-Defined Networking for Linux Containers, Pipework works with "plain" LXC containers, and with the awesome Docker. + - url: https://github.com/gliderlabs/registrator + name: gliderlabs/registrator status: healthy - stars: 369 - forks: 13 - last_push: 2026-02-27T11:51:20Z + stars: 4675 + forks: 904 + last_push: 2025-05-22T04:16:52Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Desktop - description: Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [slonopotamus](https://github.com/slonopotamus). - - url: https://github.com/jr-k/d4s - name: jr-k/d4s + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Networking + description: Service registry bridge for Docker. + - url: https://github.com/bunkerity/bunkerweb + name: bunkerity/bunkerweb status: healthy - stars: 55 - forks: 4 - last_push: 2026-03-04T21:15:58Z + stars: 10501 + forks: 606 + last_push: 2026-05-18T20:54:11Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s. - - url: https://github.com/wagoodman/dive - name: wagoodman/dive + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: Open-source and next-gen Web Application Firewall (WAF). + - url: https://github.com/lucaslorentz/caddy-docker-proxy + name: lucaslorentz/caddy-docker-proxy status: healthy - stars: 53505 - forks: 1953 - last_push: 2025-12-15T17:20:36Z + stars: 4476 + forks: 216 + last_push: 2026-05-12T03:10:39Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: A tool for exploring each layer in a docker image. By [wagoodman](https://github.com/wagoodman). - - url: https://github.com/lirantal/dockly - name: lirantal/dockly + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: Caddy-based reverse proxy, configured with service or container labels. + - url: https://github.com/invzhi/caddy-docker-upstreams + name: invzhi/caddy-docker-upstreams status: healthy - stars: 4014 - forks: 164 - last_push: 2026-02-01T19:31:17Z + stars: 35 + forks: 8 + last_push: 2025-09-08T05:17:01Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: An interactive shell UI for managing Docker containers. - - url: https://github.com/shubh-io/dockmate - name: shubh-io/dockmate + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: Docker upstreams module for Caddy, configured with container labels. + - url: https://github.com/moonbuggy/docker-dnsmasq-updater + name: moonbuggy/docker-dnsmasq-updater + status: inactive + stars: 34 + forks: 2 + last_push: 2025-02-09T00:21:52Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: Update a remote dnsmasq server with Docker container hostnames. + - url: https://github.com/docker-flow/docker-flow-proxy + name: docker-flow/docker-flow-proxy status: healthy - stars: 278 - forks: 5 - last_push: 2026-01-14T06:52:19Z + stars: 318 + forks: 186 + last_push: 2025-12-05T02:29:16Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: Lightweight terminal-based Docker and Podman manager with a text-based user interface,. - - url: https://github.com/GhostWriters/DockSTARTer - name: GhostWriters/DockSTARTer + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: Reconfigures proxy every time a new service is deployed, or when a service is scaled. + - url: https://github.com/nginx-proxy/docker-letsencrypt-nginx-proxy-companion + name: nginx-proxy/docker-letsencrypt-nginx-proxy-companion status: healthy - stars: 2545 - forks: 291 - last_push: 2026-03-01T14:12:50Z + stars: 7703 + forks: 831 + last_push: 2026-05-07T11:30:30Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: DockSTARTer helps you get started with home server apps running in Docker by [GhostWriters](https://github.com/GhostWriters). - - url: https://github.com/durableprogramming/dprs - name: durableprogramming/dprs + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: A lightweight companion container for the nginx-proxy. It allow the creation/renewal of Let's Encrypt certificates automatically. + - url: https://github.com/Yundera/mesh-router + name: Yundera/mesh-router status: healthy - stars: 36 + stars: 12 forks: 1 - last_push: 2026-03-05T15:59:19Z + last_push: 2026-03-02T15:37:53Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: A developer-focused TUI for managing Docker containers with real-time log streaming and container management. Built with Rust. By [durableprogramming](https://github.com/durableprogramming). - - url: https://github.com/moncho/dry - name: moncho/dry + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: Free domain(nsl.sh) provider for Docker containers with automatic HTTPS routing. Uses Wireguard VPN to securely route subdomain requests across networks. Ideal for self-hosted NAS and cloud deployments. + - url: https://github.com/jc21/nginx-proxy-manager + name: jc21/nginx-proxy-manager status: healthy - stars: 3227 - forks: 103 - last_push: 2026-03-08T10:25:15Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: An interactive CLI for Docker containers. - - url: https://github.com/ajayd-san/gomanagedocker - name: ajayd-san/gomanagedocker - status: inactive - stars: 632 - forks: 26 - last_push: 2024-12-28T07:44:20Z + stars: 32862 + forks: 3743 + last_push: 2026-05-18T06:55:45Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box. - - url: https://github.com/jesseduffield/lazydocker - name: jesseduffield/lazydocker + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: A beautiful web interface for proxying web based services with SSL. + - url: https://github.com/Safe3/openresty-manager + name: Safe3/openresty-manager status: healthy - stars: 50030 - forks: 1578 - last_push: 2026-01-17T06:16:20Z + stars: 1383 + forks: 106 + last_push: 2026-05-17T13:30:56Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. By [jesseduffield](https://github.com/jesseduffield). - - url: https://github.com/Lifailon/lazyjournal - name: Lifailon/lazyjournal + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: The easiest using, powerful and beautiful OpenResty Manager(Nginx Enhanced Version), open source alternative to OpenResty Edge. + - url: https://github.com/flavioaiello/swarm-router + name: flavioaiello/swarm-router status: healthy - stars: 1175 - forks: 28 - last_push: 2026-03-06T14:14:51Z + stars: 75 + forks: 12 + last_push: 2025-09-15T06:12:30Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring. - - url: https://github.com/mrjackwills/oxker - name: mrjackwills/oxker - status: healthy - stars: 1552 - forks: 43 - last_push: 2026-02-23T15:18:34Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Terminal UI - description: A simple tui to view & control docker containers. Written in [Rust](https://rust-lang.org/), making heavy use of [ratatui](https://github.com/tui-rs-revival/ratatui) & [Bollard](https://github.com/fussybeaver/bollard),. - - url: https://github.com/jenssegers/captain - name: jenssegers/captain - status: stale - stars: 244 - forks: 10 - last_push: 2022-12-08T07:39:21Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Easily start and stop docker compose projects from any directory. By [jenssegers](https://github.com/jenssegers). - - url: https://github.com/Falldog/dcinja - name: Falldog/dcinja + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: A zero config service name based router for docker swarm mode with a fresh and more secure approach. + - url: https://github.com/containous/traefik + name: containous/traefik status: healthy - stars: 13 - forks: 3 - last_push: 2025-06-26T12:33:01Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: The powerful and smallest binary size of template engine for docker command line environment. By [Falldog](https://github.com/Falldog). - - url: https://github.com/exdx/dcp - name: exdx/dcp - status: stale - stars: 114 - forks: 3 - last_push: 2023-07-24T01:09:54Z + stars: 63213 + forks: 6001 + last_push: 2026-05-18T14:02:06Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: A simple tool for copying files from container filesystems. By [exdx](https://github.com/exdx). - - url: https://github.com/FabienD/docker-stack - name: FabienD/docker-stack + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Networking & Proxies > Reverse Proxy + description: Automated reverse proxy and load-balancer for Docker, Mesos, Consul, Etcd. + - url: https://github.com/resulgg/label-backup + name: resulgg/label-backup status: healthy stars: 22 forks: 2 - last_push: 2026-03-01T10:58:51Z + last_push: 2025-10-27T12:29:36Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. By [FabienD](https://github.com/FabienD). - - url: https://github.com/s0rg/decompose - name: s0rg/decompose + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Storage & Data + description: A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. + - url: https://github.com/jaldertech/adrg + name: jaldertech/adrg status: healthy - stars: 126 - forks: 6 - last_push: 2025-12-19T20:03:44Z + stars: 9 + last_push: 2026-03-07T21:00:08Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Reverse-engineering tool for docker environments. By [s0rg](https://github.com/s0rg). - - url: https://github.com/christian-korneck/docker-pushrm - name: christian-korneck/docker-pushrm + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Dynamic Docker resource governor using cgroups v2 to manage system load. + - url: https://github.com/Appdynamics/docker-monitoring-extension + name: Appdynamics/docker-monitoring-extension status: inactive - stars: 148 - forks: 3 - last_push: 2024-06-10T21:42:09Z + stars: 5 + forks: 6 + last_push: 2024-10-02T10:48:59Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. By [christian-korneck](https://github.com/christian-korneck). - - url: https://github.com/lucabello/docker-captain - name: lucabello/docker-captain + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. + - url: https://github.com/willfarrell/docker-autoheal + name: willfarrell/docker-autoheal status: healthy - stars: 2 - last_push: 2026-03-07T00:13:26Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. - - url: https://github.com/mayflower/docker-ls - name: mayflower/docker-ls - status: archived - stars: 456 - forks: 68 - last_push: 2023-08-31T06:44:18Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: CLI tools for browsing and manipulating docker registries. - - url: https://github.com/howtowhale/dvm - name: howtowhale/dvm - status: stale - stars: 525 - forks: 50 - last_push: 2022-03-30T13:23:11Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Docker version manager. - - url: https://github.com/iamsoorena/goinside - name: iamsoorena/goinside - status: stale - stars: 30 - forks: 2 - last_push: 2020-10-17T20:31:45Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Get inside a running docker container easily. - - url: https://github.com/g31s/Pdocker - name: g31s/Pdocker - status: stale - stars: 7 - forks: 2 - last_push: 2021-02-27T06:42:13Z + stars: 1904 + forks: 258 + last_push: 2025-09-09T16:33:25Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: A simple tool to manage and maintain Docker for personal projects. - - url: https://github.com/shiwaforce/poco - name: shiwaforce/poco + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Monitor and restart unhealthy docker containers automatically. + - url: https://github.com/google/cadvisor + name: google/cadvisor status: healthy - stars: 111 - forks: 6 - last_push: 2026-02-28T12:31:09Z + stars: 19132 + forks: 2465 + last_push: 2026-05-14T15:14:42Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. - - url: https://github.com/JonathonReinhart/scuba - name: JonathonReinhart/scuba + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Analyzes resource usage and performance characteristics of running containers. + - url: https://github.com/zorak1103/dlia + name: zorak1103/dlia status: healthy - stars: 96 - forks: 17 - last_push: 2026-01-26T04:03:05Z + stars: 3 + last_push: 2026-05-12T05:41:14Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Transparently use Docker containers to encapsulate software build environments,. - - url: https://github.com/containers/skopeo - name: containers/skopeo + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: DLIA is an AI-powered Docker log monitoring agent that uses Large Language Models (LLMs) to intelligently analyze container logs, detect anomalies, and provide contextual insights over time. + - url: https://github.com/dlepaux/docker-exporter + name: dlepaux/docker-exporter status: healthy - stars: 10538 - forks: 908 - last_push: 2026-03-08T00:58:49Z + stars: 1 + last_push: 2026-05-15T05:47:25Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Work with remote images registries - retrieving information, images, signing content. - - url: https://github.com/segersniels/supdock - name: segersniels/supdock + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Lightweight Prometheus exporter for Docker container metrics written in Rust. Correct cgroup v2 memory working set on ARM64 (Raspberry Pi 5), runs non-root with a read-only socket, ~7 MiB idle RAM. + - url: https://github.com/Will-Luck/Docker-Sentinel + name: Will-Luck/Docker-Sentinel status: healthy - stars: 86 - forks: 3 - last_push: 2026-02-23T13:29:54Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Allows for slightly more visual usage of Docker with an interactive prompt. By [segersniels](https://github.com/segersniels). - - url: https://github.com/qazbnm456/tsaotun - name: qazbnm456/tsaotun - status: stale - stars: 59 - forks: 3 - last_push: 2022-10-04T06:53:45Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > CLI tools - description: Python based Assistance for Docker. - - url: https://github.com/vutran/dext-docker-registry-plugin - name: vutran/dext-docker-registry-plugin - status: stale - stars: 4 - forks: 1 - last_push: 2017-01-10T03:04:36Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Other - description: Search the Docker Registry with the Dext smart launcher. By [vutran](https://github.com/vutran). - - url: https://github.com/jeroenpeeters/docker-ssh - name: jeroenpeeters/docker-ssh - status: stale - stars: 659 - forks: 89 - last_push: 2018-04-11T20:24:08Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Other - description: SSH Server for Docker containers ~ Because every container should be accessible. By [jeroenpeeters](https://github.com/jeroenpeeters). - - url: https://github.com/marty90/multidocker - name: marty90/multidocker - status: stale - stars: 56 - forks: 9 - last_push: 2018-11-27T15:12:56Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Other - description: Create a secure multi-user Docker machine, where each user is segregated into an indepentent container. - - url: https://github.com/adrianmo/powerline-docker - name: adrianmo/powerline-docker - status: stale - stars: 61 - forks: 6 - last_push: 2017-06-30T09:11:44Z + stars: 18 + forks: 2 + last_push: 2026-05-15T22:53:52Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Terminal > Other - description: A Powerline segment for showing the status of Docker containers. - - url: https://github.com/knrdl/casa - name: knrdl/casa + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Automated container updates with per-container policies, rollback safety, and a real-time web dashboard. + - url: https://github.com/deep-on/dockprobe + name: deep-on/dockprobe status: healthy - stars: 84 - forks: 5 - last_push: 2026-03-02T14:26:48Z + stars: 14 + last_push: 2026-04-11T08:07:46Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Outsource the administration of a handful of containers to your co-workers,. - - url: https://github.com/wrfly/container-web-tty - name: wrfly/container-web-tty - status: healthy - stars: 258 - forks: 46 - last_push: 2026-03-02T16:34:06Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Connect your containers via a web-tty [wrfly](https://github.com/wrfly). - - url: https://github.com/ProductiveOps/dokemon - name: ProductiveOps/dokemon - status: stale - stars: 759 - forks: 36 - last_push: 2024-02-21T10:51:14Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Docker Container Management GUI. - - url: https://github.com/klausmeyer/docker-registry-browser - name: klausmeyer/docker-registry-browser + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Lightweight Docker monitoring dashboard in a single container. Real-time metrics, 6 anomaly detection rules, Telegram alerts, and 16 automated security scans. Zero config, ~50MB RAM. + - url: https://github.com/stefanprodan/dockprom + name: stefanprodan/dockprom status: healthy - stars: 675 - forks: 61 - last_push: 2026-02-21T09:06:10Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Web Interface for the Docker Registry HTTP API v2. - - url: https://github.com/mkuchin/docker-registry-web - name: mkuchin/docker-registry-web - status: stale - stars: 548 - forks: 133 - last_push: 2022-02-08T08:42:02Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Web UI, authentication service and event recorder for private docker registry v2. - - url: https://github.com/dockersamples/docker-swarm-visualizer - name: dockersamples/docker-swarm-visualizer - status: inactive - stars: 3348 - forks: 596 - last_push: 2024-10-26T07:12:05Z + stars: 6510 + forks: 1759 + last_push: 2026-03-06T05:28:07Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Visualizes Docker services on a Docker Swarm (for running demos). - - url: https://github.com/louislam/dockge - name: louislam/dockge + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Docker hosts and containers monitoring with Prometheus, Grafana, cAdvisor, NodeExporter and AlertManager. + - url: https://github.com/amerkurev/doku + name: amerkurev/doku status: healthy - stars: 22365 - forks: 707 - last_push: 2026-01-21T10:51:44Z + stars: 416 + forks: 18 + last_push: 2025-12-26T09:13:21Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager. - - url: https://github.com/mbecker20/komodo - name: mbecker20/komodo + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Doku is a simple web-based application that allows you to monitor Docker disk usage. + - url: https://github.com/CodesWhat/drydock + name: CodesWhat/drydock status: healthy - stars: 10494 - forks: 277 - last_push: 2026-03-08T14:48:23Z + stars: 198 + forks: 10 + last_push: 2026-05-18T20:53:37Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: A tool to build and deploy software on many servers. - - url: https://github.com/kubevious/kubevious - name: kubevious/kubevious - status: stale - stars: 1692 - forks: 95 - last_push: 2024-01-15T18:42:38Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: A highly visual web UI for Kubernetes which renders configuration and state in an application centric way. - - url: https://github.com/hywax/mafl - name: hywax/mafl - status: healthy - stars: 675 - forks: 52 - last_push: 2025-10-26T02:26:26Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Minimalistic flexible homepage. - - url: https://github.com/netdata/netdata - name: netdata/netdata - status: healthy - stars: 77993 - forks: 6360 - last_push: 2026-03-08T10:17:43Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Real-time performance monitoring. - - url: https://github.com/OctoLinker/OctoLinker - name: OctoLinker/OctoLinker - status: stale - stars: 5352 - forks: 283 - last_push: 2023-10-02T12:33:45Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: A browser extension for GitHub that makes the image name in a `Dockerfile` clickable and redirect you to the related Docker Hub page. - - url: https://github.com/portainer/portainer - name: portainer/portainer + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Container update monitoring with web dashboard, 23 registry providers, 20 notification triggers, and distributed agent architecture. + - url: https://github.com/kolapsis/maintenant + name: kolapsis/maintenant status: healthy - stars: 36781 - forks: 2787 - last_push: 2026-03-07T13:14:38Z + stars: 271 + forks: 12 + last_push: 2026-05-18T10:12:51Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: A lightweight management UI for managing your Docker hosts or Docker Swarm clusters. - - url: https://github.com/ozlerhakan/rapid - name: ozlerhakan/rapid - status: stale - stars: 147 - forks: 24 - last_push: 2021-09-21T08:44:39Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: A simple query dashboard to use Docker Remote API. - - url: https://github.com/tobegit3hub/seagull - name: tobegit3hub/seagull - status: stale - stars: 1939 - forks: 268 - last_push: 2017-11-22T02:11:23Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Friendly Web UI to monitor docker daemon. - - url: https://github.com/swarmpit/swarmpit - name: swarmpit/swarmpit + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: Self-discovering infrastructure monitoring for Docker and Kubernetes. Auto-detects containers via labels, with endpoint monitoring, heartbeats, TLS certificates, resource metrics, update intelligence, and a built-in status page. Single binary with embedded SPA. + - url: https://github.com/codeofmario/wiremap + name: codeofmario/wiremap status: healthy - stars: 3410 - forks: 312 - last_push: 2026-03-04T00:04:24Z + stars: 3 + forks: 1 + last_push: 2026-05-02T14:16:22Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. - - url: https://github.com/cuigh/swirl - name: cuigh/swirl - status: stale - stars: 668 - forks: 83 - last_push: 2023-05-16T02:47:48Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Swirl is a web management tool for Docker, focused on swarm cluster By [cuigh](https://github.com/cuigh/). - - url: https://github.com/eclipse-theia/theia - name: eclipse-theia/theia - status: healthy - stars: 21393 - forks: 2801 - last_push: 2026-03-07T09:12:05Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: Extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. - - url: https://github.com/fr4nsys/usulnet - name: fr4nsys/usulnet + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Observability + description: A self-hosted visual Docker network topology explorer with real-time log streaming, live stats, embedded terminal, and container inspection. + - url: https://github.com/dash14/buildcage + name: dash14/buildcage status: healthy - stars: 77 - forks: 3 - last_push: 2026-02-23T23:00:19Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Container Operations > User Interface > Web - description: A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. By [fr4nsys](https://github.com/fr4nsys). - - url: https://github.com/genuinetools/amicontained - name: genuinetools/amicontained - status: stale - stars: 1073 - forks: 71 - last_push: 2020-12-09T04:37:59Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Container introspection tool. Find out what container runtime is being used as well as features available. - - url: https://github.com/garywiz/chaperone - name: garywiz/chaperone - status: stale - stars: 179 - forks: 31 - last_push: 2020-07-16T21:30:27Z + stars: 4 + last_push: 2026-05-17T20:24:03Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: A single PID1 process designed for docker containers. Does user management, log management, startup, zombie reaping, all in one small package. - - url: https://github.com/nicomt/ckron - name: nicomt/ckron + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. + - url: https://github.com/hectorm/cetusguard + name: hectorm/cetusguard status: healthy - stars: 56 - forks: 6 - last_push: 2026-02-15T17:58:14Z + stars: 85 + forks: 2 + last_push: 2026-04-01T13:49:35Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: A cron-style job scheduler for docker,. - - url: https://github.com/GoogleContainerTools/distroless - name: GoogleContainerTools/distroless - status: healthy - stars: 22329 - forks: 1360 - last_push: 2026-03-06T14:09:42Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Language focused docker images, minus the operating system,. - - url: https://github.com/gliderlabs/docker-alpine - name: gliderlabs/docker-alpine - status: stale - stars: 5720 - forks: 530 - last_push: 2021-04-01T08:02:51Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: A super small Docker base image _(5MB)_ using Alpine Linux. - - url: https://github.com/jwilder/docker-gen - name: jwilder/docker-gen + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. + - url: https://github.com/bridgecrewio/checkov + name: bridgecrewio/checkov status: healthy - stars: 4620 - forks: 615 - last_push: 2026-03-07T14:15:15Z + stars: 8720 + forks: 1336 + last_push: 2026-05-14T23:16:40Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Generate files from docker container meta-data. - - url: https://github.com/powerman/dockerize - name: powerman/dockerize + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. + - url: https://github.com/google/container-explorer + name: google/container-explorer status: healthy - stars: 195 - forks: 17 - last_push: 2026-03-05T18:12:32Z + stars: 96 + forks: 10 + last_push: 2026-05-05T12:36:48Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Utility to simplify running applications in docker containers by [jwilder][jwilder], [powerman][powerman]. - - url: https://github.com/tianon/gosu - name: tianon/gosu + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: Forensic utility to explore Docker and containerd container details from mounted disk images. + - url: https://github.com/deepfence/ThreatMapper + name: deepfence/ThreatMapper status: healthy - stars: 4952 - forks: 356 - last_push: 2026-03-04T18:27:37Z + stars: 5268 + forks: 635 + last_push: 2026-05-13T07:51:41Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Run this specific application as this specific user and get out of the pipeline (entrypoint script tool). - - url: https://github.com/sindresorhus/is-docker - name: sindresorhus/is-docker + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. + - url: https://github.com/us/den + name: us/den status: healthy - stars: 233 - forks: 16 - last_push: 2025-09-15T21:04:10Z + stars: 7 + forks: 1 + last_push: 2026-03-15T14:07:59Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Check if the process is running inside a Docker container. - - url: https://github.com/ivanilves/lstags - name: ivanilves/lstags - status: stale - stars: 340 - forks: 26 - last_push: 2023-05-11T20:38:37Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: Self-hosted sandbox runtime for AI agents with Docker containers, security hardening, REST API and WebSocket support. + - url: https://github.com/docker/docker-bench-security + name: docker/docker-bench-security + status: inactive + stars: 9636 + forks: 1038 + last_push: 2024-10-21T07:26:06Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Sync Docker images across registries. - - url: https://github.com/tarampampam/microcheck - name: tarampampam/microcheck + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: Script that checks for dozens of common best-practices around deploying Docker containers in production. + - url: https://github.com/Tecnativa/docker-socket-proxy + name: Tecnativa/docker-socket-proxy status: healthy - stars: 130 - forks: 2 - last_push: 2026-02-24T19:11:41Z + stars: 2506 + forks: 198 + last_push: 2026-02-25T08:15:08Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. - - url: https://github.com/mcuadros/ofelia - name: mcuadros/ofelia + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: HAProxy-based fine-grained filter for the Docker API socket; widely used to expose a restricted socket to reverse proxies and homelab stacks. + - url: https://github.com/checkmarx/kics + name: checkmarx/kics status: healthy - stars: 3742 - forks: 204 - last_push: 2026-03-08T01:55:37Z + stars: 2634 + forks: 367 + last_push: 2026-04-22T14:47:48Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - - url: https://github.com/beyondssl/sparkview-container - name: beyondssl/sparkview-container + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: An infrastructure-as-code scanning tool, find security vulnerabilities, compliance issues, and infrastructure misconfigurations early in the development cycle. Can be extended for additional policies. + - url: https://github.com/dormstern/segspec + name: dormstern/segspec status: healthy - stars: 20 - forks: 2 - last_push: 2025-09-22T06:59:43Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Access VMs, desktops, servers or applications anytime and from anywhere, without complex and costly client roll-outs or user management. - - url: https://github.com/ncopa/su-exec - name: ncopa/su-exec + stars: 15 + last_push: 2026-05-06T07:36:28Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: Extracts network dependencies from Docker Compose, Kubernetes manifests, Helm charts, and other config files to generate Kubernetes NetworkPolicies with evidence tracing. + - url: https://github.com/falcosecurity/falco + name: falcosecurity/falco status: healthy - stars: 1019 - forks: 103 - last_push: 2025-10-07T13:49:01Z + stars: 8955 + forks: 1018 + last_push: 2026-05-18T15:45:32Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. By [ncopa](https://github.com/ncopa). - - url: https://github.com/theAkito/sue - name: theAkito/sue - status: stale - stars: 13 - forks: 1 - last_push: 2022-04-26T21:10:24Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Security + description: Sysdig Falco is an open source container security monitor. It can monitor application, container, host, and network activity and alert on unauthorized activity. + - url: https://github.com/AbianS/docker-db-manager + name: AbianS/docker-db-manager + status: healthy + stars: 161 + forks: 5 + last_push: 2026-04-12T18:29:18Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Executes a program as a user different from the user running sue. This is a maintainable alternative to ncopa/su-exec, which is the better tianon/gosu. This one is far better (higher performance, smaller size), than the original gosu, however it is far easier to maintain, than su-exec, which is written in plain C. Made by [Akito][akito]. - - url: https://github.com/aptible/supercronic - name: aptible/supercronic + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Desktop + description: Desktop app for managing Docker database containers with visual interface and one-click operations. + - url: https://github.com/felixgborrego/simple-docker-ui + name: felixgborrego/simple-docker-ui + status: inactive + stars: 603 + forks: 96 + last_push: 2024-09-06T09:31:07Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Desktop + description: Built on Electron. + - url: https://github.com/slonopotamus/stevedore + name: slonopotamus/stevedore status: healthy - stars: 2391 - forks: 141 - last_push: 2026-03-06T13:28:13Z + stars: 372 + forks: 13 + last_push: 2026-04-13T09:17:09Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: Crontab-compatible job runner, designed specifically to run in containers. - - url: https://github.com/vorakl/TrivialRC - name: vorakl/TrivialRC - status: stale - stars: 32 - forks: 5 - last_push: 2023-12-20T00:39:55Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Desktop + description: Good Docker Desktop replacement for Windows. Both Linux and Windows Containers are supported. [slonopotamus](https://github.com/slonopotamus). + - url: https://github.com/jr-k/d4s + name: jr-k/d4s + status: healthy + stars: 83 + forks: 7 + last_push: 2026-05-12T21:41:45Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Base Tools - description: A minimalistic Runtime Configuration system and process manager for containers [vorakl](https://github.com/vorakl). - - url: https://github.com/ansible-community/ansible-bender - name: ansible-community/ansible-bender + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A fast, keyboard-driven terminal UI to manage Docker containers, Compose stacks, and Swarm services with the ergonomics of K9s. + - url: https://github.com/Falldog/dcinja + name: Falldog/dcinja status: healthy - stars: 694 - forks: 74 - last_push: 2026-01-07T23:21:32Z + stars: 14 + forks: 3 + last_push: 2025-06-26T12:33:01Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: A tool utilising `ansible` and `buildah`. - - url: https://github.com/containers/buildah - name: containers/buildah + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: The powerful and smallest binary size of template engine for docker command line environment. + - url: https://github.com/FabienD/docker-stack + name: FabienD/docker-stack status: healthy - stars: 8662 - forks: 882 - last_push: 2026-03-08T17:53:57Z + stars: 23 + forks: 2 + last_push: 2026-04-14T17:03:45Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: A tool that facilitates building OCI images. - - url: https://github.com/moby/buildkit - name: moby/buildkit + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: Dctl is a Cli tool that helps developers by allowing them to execute all docker compose commands anywhere in the terminal, and more. + - url: https://github.com/s0rg/decompose + name: s0rg/decompose status: healthy - stars: 9817 - forks: 1379 - last_push: 2026-03-06T22:37:08Z + stars: 134 + forks: 6 + last_push: 2026-04-08T19:31:21Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit. - - url: https://github.com/cekit/cekit - name: cekit/cekit + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: Reverse-engineering tool for docker environments. + - url: https://github.com/wagoodman/dive + name: wagoodman/dive status: healthy - stars: 113 - forks: 44 - last_push: 2026-01-30T15:06:33Z + stars: 53952 + forks: 1996 + last_push: 2025-12-15T17:20:36Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: A tool used by openshift to build base images using different build engines. - - url: https://github.com/mutable/container-factory - name: mutable/container-factory - status: stale - stars: 64 + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A tool for exploring each layer in a docker image. + - url: https://github.com/christian-korneck/docker-pushrm + name: christian-korneck/docker-pushrm + status: inactive + stars: 151 forks: 3 - last_push: 2015-05-06T16:07:53Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Produces Docker images from tarballs of application source code. - - url: https://github.com/mdlavin/copy-docker-image - name: mdlavin/copy-docker-image - status: stale - stars: 38 - forks: 16 - last_push: 2018-08-29T08:27:20Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Copy a Docker image between registries without a full Docker installation. - - url: https://github.com/alibaba/derrick - name: alibaba/derrick - status: stale - stars: 693 - forks: 109 - last_push: 2023-03-06T22:40:17Z + last_push: 2024-06-10T21:42:09Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: A tool help you to automate the generation of Dockerfile and dockerize application by scanning the code. By [alibaba](https://github.com/alibaba). - - url: https://github.com/orisano/dlayer - name: orisano/dlayer + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A Docker CLI plugin that lets you push the README.md file from the current directory to Docker Hub. Also supports Quay and Harbor. + - url: https://github.com/lucabello/docker-captain + name: lucabello/docker-captain status: healthy - stars: 445 - forks: 12 - last_push: 2026-03-02T09:11:34Z + stars: 2 + last_push: 2026-04-25T00:13:57Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Docker layer analyzer. - - url: https://github.com/mudler/docker-companion - name: mudler/docker-companion + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A friendly CLI to manage multiple Docker Compose deployments with style — powered by Typer, Rich, questionary, and sh. + - url: https://github.com/spotify/dockerfile-mode + name: spotify/dockerfile-mode status: healthy - stars: 47 - forks: 9 - last_push: 2025-05-28T08:17:46Z + stars: 564 + forks: 84 + last_push: 2025-12-21T16:45:00Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: A command line tool written in Golang to squash and unpack docker images. - - url: https://github.com/CtripCloud/docker-make - name: CtripCloud/docker-make - status: stale - stars: 99 - forks: 20 - last_push: 2019-11-22T08:32:26Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: An Emacs mode for handling Dockerfiles. + - url: https://github.com/patrickhoefler/dockerfilegraph + name: patrickhoefler/dockerfilegraph + status: healthy + stars: 264 + forks: 17 + last_push: 2026-05-16T08:01:28Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Build, tag,and push a bunch of related docker images via a single command. - - url: https://github.com/orf/docker-repack - name: orf/docker-repack + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: Visualize your multi-stage Dockerfiles. + - url: https://github.com/lirantal/dockly + name: lirantal/dockly status: healthy - stars: 151 - forks: 3 - last_push: 2025-04-24T06:46:00Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Repacks a Docker image into a smaller, more efficient version that makes it significantly faster to pull. By [orf](https://github.com/orf). - - url: https://github.com/bcicen/docker-replay - name: bcicen/docker-replay - status: stale - stars: 203 - forks: 13 - last_push: 2018-10-13T13:09:28Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Generate `docker run`command and options from running containers. By [bcicen](https://github.com/bcicen). - - url: https://github.com/swipely/dockly - name: swipely/dockly - status: stale - stars: 228 - forks: 10 - last_push: 2023-02-15T15:26:17Z + stars: 4015 + forks: 164 + last_push: 2026-05-18T08:16:52Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Dockly is a gem made to ease the pain of packaging an application in Docker. - - url: https://github.com/utensils/essex - name: utensils/essex + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: An interactive shell UI for managing Docker containers. + - url: https://github.com/shubh-io/dockmate + name: shubh-io/dockmate + status: healthy + stars: 314 + forks: 5 + last_push: 2026-04-06T07:04:40Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: Lightweight terminal-based Docker and Podman manager with a text-based user interface,. + - url: https://github.com/GhostWriters/DockSTARTer + name: GhostWriters/DockSTARTer + status: healthy + stars: 2560 + forks: 291 + last_push: 2026-05-18T07:11:11Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: DockSTARTer helps you get started with home server apps running in Docker. + - url: https://github.com/durableprogramming/dprs + name: durableprogramming/dprs status: healthy stars: 38 - last_push: 2025-03-18T21:33:36Z + forks: 1 + last_push: 2026-03-05T15:59:19Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: 'Boilerplate for Docker Based Projects: Essex is a CLI utility written in bash to quickly setup clean and consistent Docker projects with Makefile driven workflows. [jamesbrink](https://github.com/jamesbrink).' - - url: https://github.com/NVIDIA/hpc-container-maker - name: NVIDIA/hpc-container-maker + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A developer-focused TUI for managing Docker containers with real-time log streaming and container management. + - url: https://github.com/moncho/dry + name: moncho/dry status: healthy - stars: 510 - forks: 100 - last_push: 2026-02-19T23:22:06Z + stars: 3250 + forks: 103 + last_push: 2026-04-09T12:13:58Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Generates Dockerfiles from a high level Python recipe, including building blocks for High-Performance Computing components. - - url: https://github.com/genuinetools/img - name: genuinetools/img + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: An interactive CLI for Docker containers. + - url: https://github.com/joao-zanutto/easydocker + name: joao-zanutto/easydocker + status: healthy + stars: 112 + forks: 4 + last_push: 2026-05-16T18:06:58Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A Terminal UI highly inpired by k9s levaraging beatiful BubbleTea graphics. + - url: https://github.com/ajayd-san/gomanagedocker + name: ajayd-san/gomanagedocker status: inactive - stars: 3990 - forks: 234 - last_push: 2024-05-19T22:07:07Z + stars: 637 + forks: 26 + last_push: 2024-12-28T07:44:20Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: TUI tool to view and manage your docker objects blazingly fast with sensible keybindings, also supports VIM navigation out of the box. + - url: https://github.com/jesseduffield/lazydocker + name: jesseduffield/lazydocker + status: healthy + stars: 51076 + forks: 1614 + last_push: 2026-04-19T02:51:06Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. + - url: https://github.com/Lifailon/lazyjournal + name: Lifailon/lazyjournal + status: healthy + stars: 1267 + forks: 31 + last_push: 2026-05-06T07:54:47Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. - - url: https://github.com/duedil-ltd/portainer - name: duedil-ltd/portainer - status: stale - stars: 134 - forks: 16 - last_push: 2017-02-28T17:15:49Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A interface for reading and filtering the logs output of Docker and Podman containers like [Dozzle](dozzle) but for the terminal with support for fuzzy find, regex and output coloring. + - url: https://github.com/mrjackwills/oxker + name: mrjackwills/oxker + status: healthy + stars: 1668 + forks: 46 + last_push: 2026-05-13T20:31:32Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Apache Mesos framework for building Docker images. - - url: https://github.com/cybersecsi/RAUDI - name: cybersecsi/RAUDI + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A simple tui to view & control docker containers. + - url: https://github.com/shiwaforce/poco + name: shiwaforce/poco status: healthy - stars: 560 - forks: 34 - last_push: 2026-03-05T01:57:28Z + stars: 113 + forks: 6 + last_push: 2026-02-28T12:31:09Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: A tool to automatically update (and optionally push to Docker Hub) Docker Images for 3rd party software whenever theres is a new release/update/commit. By [SecSI](https://github.com/cybersecsi). - - url: https://github.com/lavie/runlike - name: lavie/runlike + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: Proco will help you to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment. + - url: https://github.com/JonathonReinhart/scuba + name: JonathonReinhart/scuba status: healthy - stars: 2919 - forks: 163 - last_push: 2025-12-04T12:36:39Z + stars: 97 + forks: 17 + last_push: 2026-01-26T04:03:05Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Generate `docker run`command and options from running containers. - - url: https://github.com/theAkito/userdef - name: theAkito/userdef - status: stale - stars: 11 - last_push: 2023-10-14T20:34:12Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: An advanced `adduser` for your Alpine based Docker images. Made by [Akito][akito]. - - url: https://github.com/P3GLEG/Whaler - name: P3GLEG/Whaler + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: Transparently use Docker containers to encapsulate software build environments,. + - url: https://github.com/segersniels/supdock + name: segersniels/supdock status: healthy - stars: 1185 - forks: 101 - last_push: 2025-09-17T03:56:52Z + stars: 85 + forks: 3 + last_push: 2026-04-04T11:25:22Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: Program to reverse Docker images into Dockerfiles. - - url: https://github.com/Gueils/whales - name: Gueils/whales - status: stale - stars: 391 - forks: 20 - last_push: 2019-05-27T13:20:14Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Builder - description: A tool to automatically dockerize your applications. - - url: https://github.com/garywiz/chaperone-docker - name: garywiz/chaperone-docker - status: stale - stars: 66 - forks: 11 - last_push: 2018-10-05T07:48:36Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: Allows for slightly more visual usage of Docker with an interactive prompt. + - url: https://github.com/Eldara-Tech/swarmcli + name: Eldara-Tech/swarmcli + status: healthy + stars: 15 + forks: 7 + last_push: 2026-05-18T13:24:50Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Dockerfile - description: A set of images using the Chaperone process manager, including a lean Alpine image, LAMP, LEMP, and bare-bones base kits. - - url: https://github.com/patrickhoefler/dockerfilegraph - name: patrickhoefler/dockerfilegraph + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: Swarm Management at the speed of thought — with real-time log streaming, instant shell access to containers, seamless port forwarding, and on-demand secret reveal capabilities, giving you full control over your Docker Swarm without breaking your flow. + - url: https://github.com/pivovarit/tdocker + name: pivovarit/tdocker status: healthy - stars: 255 - forks: 17 - last_push: 2026-03-08T00:49:58Z + stars: 84 + forks: 3 + last_push: 2026-05-16T06:18:16Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Dockerfile - description: Visualize your multi-stage Dockerfiles. By [PatrickHoefler](https://github.com/patrickhoefler). - - url: https://github.com/Dockershelf/dockershelf - name: Dockershelf/dockershelf + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A `docker ps` replacement for everyday container operations. + - url: https://github.com/idesyatov/wharf + name: idesyatov/wharf status: healthy - stars: 97 - forks: 13 - last_push: 2026-03-05T01:03:36Z + stars: 3 + last_push: 2026-05-05T21:32:22Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Dockerfile - description: A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. - - url: https://github.com/deckrun/dockadvisor - name: deckrun/dockadvisor + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Terminal + description: A k9s-inspired TUI for Docker Compose with vim-style navigation, real-time CPU/MEM monitoring with braille charts, container file browser, SSH remote host support, and command mode. + - url: https://github.com/getarcaneapp/arcane + name: getarcaneapp/arcane + status: healthy + stars: 5540 + forks: 196 + last_push: 2026-05-18T20:58:23Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: An easy and modern Docker management platform, built with everybody in mind. + - url: https://github.com/knrdl/casa + name: knrdl/casa status: healthy - stars: 186 + stars: 85 forks: 6 - last_push: 2026-01-12T09:26:02Z + last_push: 2026-05-18T07:49:43Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Linter - description: Lightweight Dockerfile linter with 60+ rules, quality scoring, and security checks. - - url: https://github.com/wemake-services/docker-image-size-limit - name: wemake-services/docker-image-size-limit + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: Outsource the administration of a handful of containers to your co-workers,. + - url: https://github.com/wrfly/container-web-tty + name: wrfly/container-web-tty status: healthy - stars: 130 - forks: 5 - last_push: 2026-03-06T23:18:34Z + stars: 258 + forks: 46 + last_push: 2026-04-16T20:52:12Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Linter - description: A tool to keep an eye on your docker images size. - - url: https://github.com/buddy-works/dockerfile-linter - name: buddy-works/dockerfile-linter - status: stale - stars: 46 - forks: 3 - last_push: 2023-03-04T05:06:08Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Linter - description: The linter lets you verify Dockerfile syntax to make sure it follows the best practices for building efficient Docker images. - - url: https://github.com/replicatedhq/dockerfilelint - name: replicatedhq/dockerfilelint - status: stale - stars: 1029 - forks: 83 - last_push: 2023-09-27T20:58:01Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Linter - description: An opinionated Dockerfile linter. - - url: https://github.com/hadolint/hadolint - name: hadolint/hadolint + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: Connect your containers via a web-tty. + - url: https://github.com/klausmeyer/docker-registry-browser + name: klausmeyer/docker-registry-browser status: healthy - stars: 11985 - forks: 487 - last_push: 2026-03-02T08:58:07Z + stars: 686 + forks: 62 + last_push: 2026-05-16T09:56:13Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Linter - description: A Dockerfile linter that checks for best practices, common mistakes, and is also able to lint any bash written in `RUN` instructions;. - - url: https://github.com/RedCoolBeans/cargos-buildroot - name: RedCoolBeans/cargos-buildroot - status: stale - stars: 11 - forks: 2 - last_push: 2017-04-02T14:59:45Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Registry - description: A bare essential OS for running the Docker Engine on bare metal or Cloud. By [RedCoolBeans](https://github.com/RedCoolBeans). - - url: https://github.com/hcguersoy/cleanreg - name: hcguersoy/cleanreg - status: stale - stars: 59 - forks: 18 - last_push: 2022-09-03T17:43:40Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Registry - description: A small tool to delete image manifests from a Docker Registry implementing the API v2, dereferencing them for the GC. - - url: https://github.com/netvarun/docket - name: netvarun/docket - status: stale - stars: 709 - forks: 33 - last_push: 2020-09-02T02:35:17Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: Web Interface for the Docker Registry HTTP API v2. + - url: https://github.com/dockersamples/docker-swarm-visualizer + name: dockersamples/docker-swarm-visualizer + status: inactive + stars: 3348 + forks: 594 + last_push: 2024-10-26T07:12:05Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Registry - description: Custom docker registry that allows for lightning fast deploys through bittorrent. - - url: https://github.com/dragonflyoss/Dragonfly2 - name: dragonflyoss/Dragonfly2 + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: Visualizes Docker services on a Docker Swarm (for running demos). + - url: https://github.com/louislam/dockge + name: louislam/dockge status: healthy - stars: 3070 - forks: 377 - last_push: 2026-03-05T12:44:54Z + stars: 23237 + forks: 749 + last_push: 2026-04-25T02:28:26Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Registry - description: Provide efficient, stable and secure file distribution and image acceleration based on p2p technology. - - url: https://github.com/uber/kraken - name: uber/kraken + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: Easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager. + - url: https://github.com/mbecker20/komodo + name: mbecker20/komodo status: healthy - stars: 6659 - forks: 468 - last_push: 2026-03-05T13:24:04Z + stars: 11195 + forks: 318 + last_push: 2026-05-12T01:45:09Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Registry - description: Uber's Highly scalable P2P docker registry, capable of distributing TBs of data in seconds. - - url: https://github.com/jhstatewide/nscr - name: jhstatewide/nscr + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: A tool to build and deploy software on many servers. + - url: https://github.com/portainer/portainer + name: portainer/portainer status: healthy - stars: 1 - last_push: 2025-10-27T14:37:18Z + stars: 37470 + forks: 2825 + last_push: 2026-05-18T14:08:03Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Registry - description: A light-weight, self-contained container registry that's easy to run and maintain. - - url: https://github.com/inmagik/registryo - name: inmagik/registryo + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: A lightweight management UI for managing your Docker hosts or Docker Swarm clusters. + - url: https://github.com/swarmpit/swarmpit + name: swarmpit/swarmpit status: healthy - stars: 15 - last_push: 2025-12-17T10:20:47Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Registry - description: UI and token based authentication server for onpremise docker registry. - - url: https://github.com/noteed/rescoyl - name: noteed/rescoyl - status: stale - stars: 18 - forks: 4 - last_push: 2017-04-08T19:17:24Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Docker Images > Registry - description: Private Docker registry (free and open source). - - url: https://github.com/instacart/ahab - name: instacart/ahab - status: stale - stars: 137 - forks: 7 - last_push: 2018-11-16T21:54:44Z + stars: 3438 + forks: 312 + last_push: 2026-05-14T19:15:12Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: Swarmpit provides simple and easy to use interface for your Docker Swarm cluster. You can manage your stacks, services, secrets, volumes, networks etc. + - url: https://github.com/fr4nsys/usulnet + name: fr4nsys/usulnet + status: healthy + stars: 97 + forks: 5 + last_push: 2026-05-16T18:56:39Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client - description: Docker event handling with Python. + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > User Interfaces > Web + description: A complete and modern Docker management platform designed for sysadmin, devops with enterprise grade tools, cve scanner, ssh, rdp on web and much more. - url: https://github.com/lispyclouds/contajners name: lispyclouds/contajners status: healthy - stars: 145 + stars: 149 forks: 8 - last_push: 2026-02-20T09:07:36Z + last_push: 2026-04-14T19:20:40Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client - description: An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. By [lispyclouds][lispyclouds]. + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client + description: An idiomatic, data-driven, REPL friendly Clojure client for OCI container engines. - url: https://github.com/gesellix/docker-client name: gesellix/docker-client status: healthy - stars: 119 + stars: 121 forks: 28 - last_push: 2026-03-08T12:34:16Z + last_push: 2026-05-14T16:53:40Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client description: A Docker remote api client library for the JVM, written in Groovy. - url: https://github.com/dgongut/docker-controller-bot name: dgongut/docker-controller-bot status: healthy - stars: 241 - forks: 31 - last_push: 2026-02-04T15:58:07Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client - description: Telegram bot to control docker containers. By [dgongut](https://github.com/dgongut/). - - url: https://github.com/whisklabs/docker-it-scala - name: whisklabs/docker-it-scala - status: stale - stars: 433 - forks: 90 - last_push: 2024-02-14T12:56:54Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client - description: Docker integration testing kit with Scala. - - url: https://github.com/amihaiemil/docker-java-api - name: amihaiemil/docker-java-api - status: stale - stars: 274 - forks: 55 - last_push: 2021-06-04T01:21:45Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client - description: Lightweight, truly object-oriented, Java client for Docker's API. By [amihaiemil](https://github.com/amihaiemil). + stars: 247 + forks: 33 + last_push: 2026-05-07T16:18:27Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client + description: Telegram bot to control docker containers. - url: https://github.com/fabric8io/docker-maven-plugin name: fabric8io/docker-maven-plugin status: healthy - stars: 1929 - forks: 656 - last_push: 2026-02-24T15:30:08Z + stars: 1930 + forks: 655 + last_push: 2026-04-01T04:59:19Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client description: A Maven plugin for running and creating Docker images. - url: https://github.com/Microsoft/Docker.DotNet name: Microsoft/Docker.DotNet status: healthy - stars: 2405 - forks: 409 + stars: 2411 + forks: 411 last_push: 2025-08-28T14:08:51Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client description: C#/.NET HTTP client for the Docker remote API. - url: https://github.com/ChangemakerStudios/Docker.Registry.DotNet name: ChangemakerStudios/Docker.Registry.DotNet status: healthy stars: 42 - forks: 21 + forks: 22 last_push: 2025-10-06T03:43:52Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client - description: .NET (C#) Client Library for interacting with a Docker Registry API (v2) [rquackenbush](https://github.com/rquackenbush). + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client + description: .NET (C#) Client Library for interacting with a Docker Registry API (v2). - url: https://github.com/apocas/dockerode name: apocas/dockerode status: healthy - stars: 4834 - forks: 486 - last_push: 2026-02-28T03:51:43Z + stars: 4891 + forks: 488 + last_push: 2026-05-13T09:09:35Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client description: Docker Remote API node.js module. - - url: https://github.com/eon01/DoMonit - name: eon01/DoMonit - status: stale - stars: 76 - forks: 15 - last_push: 2021-06-01T21:57:21Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client - description: A simple Docker Monitoring wrapper For Docker API. - url: https://github.com/fsouza/go-dockerclient name: fsouza/go-dockerclient status: healthy - stars: 2236 + stars: 2238 forks: 556 - last_push: 2026-03-06T04:10:21Z + last_push: 2026-05-11T03:54:15Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z + checked_at: 2026-05-18T21:29:20.484404Z - url: https://github.com/gesellix/gradle-docker-plugin name: gesellix/gradle-docker-plugin status: healthy stars: 81 forks: 17 - last_push: 2026-03-08T12:36:04Z + last_push: 2026-05-12T20:22:08Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client description: A Docker remote api plugin for Gradle. - url: https://github.com/greenled/portainer-stack-utils name: greenled/portainer-stack-utils @@ -2332,18 +1688,18 @@ entries: forks: 16 last_push: 2025-12-05T02:34:50Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client - description: Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. By [greenled](https://github.com/greenled). + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client + description: Bash script to deploy/update/undeploy Docker stacks in a Portainer instance from a docker-compose yaml file. - url: https://github.com/marcuslonnberg/sbt-docker name: marcuslonnberg/sbt-docker status: inactive stars: 733 - forks: 112 + forks: 113 last_push: 2024-12-12T15:18:45Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > API Client + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > API Client description: Create Docker images directly from sbt. - url: https://github.com/harbur/captain name: harbur/captain @@ -2352,96 +1708,76 @@ entries: forks: 48 last_push: 2025-05-25T00:09:20Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > CI/CD description: Convert your Git workflow to Docker containers ready for Continuous Delivery. - - url: https://github.com/caicloud/cyclone - name: caicloud/cyclone - status: stale - stars: 1073 - forks: 171 - last_push: 2023-10-24T12:08:27Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD - description: Powerful workflow engine and end-to-end pipeline solutions implemented with native Kubernetes resources. - url: https://github.com/DefangLabs/defang name: DefangLabs/defang status: healthy - stars: 146 - forks: 24 - last_push: 2026-03-08T06:20:54Z + stars: 152 + forks: 25 + last_push: 2026-05-18T07:27:39Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > CI/CD description: Deploy Docker Compose to your favorite cloud in minutes. - url: https://github.com/crazy-max/diun name: crazy-max/diun status: healthy - stars: 4457 - forks: 143 - last_push: 2026-03-08T17:42:13Z + stars: 4664 + forks: 148 + last_push: 2026-05-16T11:01:06Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD - description: Receive notifications when an image or repository is updated on a Docker registry by [crazy-max]. + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > CI/CD + description: Receive notifications when an image or repository is updated on a Docker registry. - url: https://github.com/mag37/dockcheck name: mag37/dockcheck status: healthy - stars: 2237 - forks: 80 - last_push: 2026-03-05T18:27:54Z + stars: 2328 + forks: 85 + last_push: 2026-05-15T12:20:42Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > CI/CD description: A script checking updates for docker images without pulling then auto-update selected/all containers. With notifications, pruning and more. - url: https://github.com/jenkinsci/docker-plugin name: jenkinsci/docker-plugin status: healthy - stars: 499 + stars: 498 forks: 325 - last_push: 2026-02-28T10:00:57Z + last_push: 2026-05-01T19:56:24Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z + checked_at: 2026-05-18T21:29:20.484404Z - url: https://github.com/drone/drone name: drone/drone status: healthy - stars: 33861 - forks: 2896 - last_push: 2026-03-07T12:23:43Z + stars: 35900 + forks: 3131 + last_push: 2026-05-18T09:23:18Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > CI/CD description: Continuous integration server built on Docker and configured using YAML files. - - url: https://github.com/CodesWhat/drydock - name: CodesWhat/drydock - status: healthy - stars: 111 - forks: 5 - last_push: 2026-03-08T18:03:39Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD - description: Open-source container update monitoring with web dashboard, 15 registries, 16 notification triggers, and security scanning. Drop-in WUD replacement. By [CodesWhat](https://github.com/CodesWhat). - url: https://github.com/shizunge/gantry name: shizunge/gantry status: healthy - stars: 84 + stars: 88 forks: 4 - last_push: 2026-03-06T03:39:21Z + last_push: 2026-05-12T22:46:38Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > CI/CD description: Automatically update selected Docker swarm services. - url: https://github.com/theSage21/jaypore_ci name: theSage21/jaypore_ci status: healthy - stars: 38 + stars: 37 forks: 4 last_push: 2026-03-07T17:18:09Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > CI/CD description: Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. - url: https://github.com/Kraken-CI/kraken name: Kraken-CI/kraken @@ -2450,177 +1786,49 @@ entries: forks: 20 last_push: 2026-01-15T13:00:32Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > CI/CD description: Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed. - - url: https://github.com/francescou/docker-continuous-deployment - name: francescou/docker-continuous-deployment - status: stale - stars: 145 - forks: 38 - last_push: 2017-08-01T17:25:15Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD - description: Continuous deployment of a microservices application. - - url: https://github.com/stelligent/mu - name: stelligent/mu - status: stale - stars: 965 - forks: 133 - last_push: 2020-06-18T14:09:29Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD - description: Tool to configure CI/CD of your container applications via AWS CodePipeline, CodeBuild and ECS [Stelligent](https://github.com/stelligent). - - url: https://github.com/systemslab/popper - name: systemslab/popper - status: stale - stars: 307 - forks: 62 - last_push: 2022-03-29T22:02:27Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD - description: Github actions workflow (HCL syntax) execution engine. - url: https://github.com/Stratoscale/skipper name: Stratoscale/skipper status: healthy - stars: 50 + stars: 49 forks: 22 - last_push: 2025-05-13T13:33:39Z + last_push: 2026-05-17T10:55:56Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > CI/CD description: Easily dockerize your Git repository. - - url: https://github.com/ghostsquad/swarmci - name: ghostsquad/swarmci - status: stale - stars: 58 - forks: 6 - last_push: 2017-02-24T02:14:18Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > CI/CD - description: Create a distributed, isolated task pipeline in your Docker Swarm. - - url: https://github.com/binci/binci - name: binci/binci - status: stale - stars: 673 - forks: 24 - last_push: 2022-12-06T20:24:40Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Containerize your development workflow. (formerly DevLab by [TechnologyAdvice](https://github.com/TechnologyAdvice)). - url: https://github.com/coder/coder name: coder/coder status: healthy - stars: 12417 - forks: 1194 - last_push: 2026-03-08T17:58:52Z + stars: 13236 + forks: 1296 + last_push: 2026-05-18T21:21:02Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Development Environment description: Remote development machines powered by Terraform or Docker. - - url: https://github.com/lstephen/construi - name: lstephen/construi - status: stale - stars: 24 - forks: 5 - last_push: 2022-12-08T06:36:04Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Run your builds inside a Docker defined environment. - url: https://github.com/whatwedo/dde name: whatwedo/dde status: healthy - stars: 46 + stars: 45 forks: 9 - last_push: 2026-02-20T12:25:04Z + last_push: 2026-05-18T21:23:46Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Local development environment toolset based on Docker. By [whatwedo](https://github.com/whatwedo). + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Development Environment + description: Local development environment toolset based on Docker. - url: https://github.com/bibendi/dip name: bibendi/dip - status: inactive - stars: 1324 - forks: 50 - last_push: 2024-12-25T09:38:57Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. By [bibendi](https://github.com/bibendi). - - url: https://github.com/dnephin/dobi - name: dnephin/dobi - status: stale - stars: 315 - forks: 34 - last_push: 2023-11-10T06:32:19Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: A build automation tool for Docker applications. By [dnephin](https://github.com/dnephin). - - url: https://github.com/nandoquintana/docker-missing-tools - name: nandoquintana/docker-missing-tools - status: stale - stars: 30 - forks: 6 - last_push: 2018-05-01T13:10:10Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: A set of bash commands to shortcut typical docker dev-ops. An alternative to creating typical helper scripts like "build.sh" and "deploy.sh" inside code repositories. By [NandoQuintana](https://github.com/nandoquintana). - - url: https://github.com/Ph3nol/Docker-Arch - name: Ph3nol/Docker-Arch - status: stale - stars: 31 - forks: 2 - last_push: 2018-09-24T06:43:08Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Generate Web/CLI projects Dockerized development environments, from 1 simple YAML file. By [Ph3nol](https://github.com/ph3nol). - - url: https://github.com/EugenMayer/docker-sync - name: EugenMayer/docker-sync - status: healthy - stars: 3564 - forks: 285 - last_push: 2025-11-30T20:06:16Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Drastically improves performance ([50-70x](https://github.com/EugenMayer/docker-sync/wiki/4.-Performance)) when using Docker for development on Mac OS X/Windows and Linux while sharing code to the container. By [EugenMayer](https://github.com/EugenMayer). - - url: https://github.com/shyiko/docker-vm - name: shyiko/docker-vm - status: stale - stars: 43 - forks: 8 - last_push: 2016-09-24T17:45:47Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Simple and transparent alternative to boot2docker (backed by Vagrant). - - url: https://github.com/matifali/dockerdl - name: matifali/dockerdl - status: healthy - stars: 86 - forks: 11 - last_push: 2025-12-29T19:27:19Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Deep Learning Docker Images. Don't waste time setting up a deep learning env when you can get a deep learning environment with everything pre-installed. - - url: https://github.com/eclipse/che - name: eclipse/che status: healthy - stars: 7129 - forks: 1200 - last_push: 2026-03-06T15:10:49Z + stars: 1332 + forks: 50 + last_push: 2026-05-18T17:40:08Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Developer workspace server with Docker runtimes, cloud IDE, next-generation Eclipse IDE. + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Development Environment + description: CLI utility for straightforward provisioning and interacting with an application configured by docker-compose. - url: https://github.com/EnvCLI/EnvCLI name: EnvCLI/EnvCLI status: healthy @@ -2628,296 +1836,127 @@ entries: forks: 4 last_push: 2025-06-16T20:36:16Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Replace your local installation of Node, Go, ... with project-specific docker containers. By [EnvCLI](https://github.com/EnvCLI). - - url: https://github.com/hpsaturn/esp32s3-linux - name: hpsaturn/esp32s3-linux - status: healthy - stars: 78 - forks: 9 - last_push: 2025-04-05T08:38:16Z - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Container solution to compile Linux and develop it for ESP32 microcontrollers - By [Hpsaturn](https://github.com/hpsaturn). + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Development Environment + description: Replace your local installation of Node, Go, ... with project-specific docker containers. - url: https://github.com/moshebe/gebug name: moshebe/gebug status: healthy - stars: 634 + stars: 633 forks: 17 - last_push: 2026-03-06T21:42:46Z + last_push: 2026-05-08T06:15:40Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Development Environment description: A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly. - - url: https://github.com/senges/kitt - name: senges/kitt - status: stale - stars: 20 - forks: 1 - last_push: 2023-02-23T14:01:05Z + - url: https://github.com/potterwhite/HarborPilot + name: potterwhite/HarborPilot + status: healthy + stars: 2 + last_push: 2026-05-18T01:14:58Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: A portable and disposable Shell environment, based on Docker and Nix. By [senges](https://github.com/senges). + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Development Environment + description: Automated multi-platform Docker image builder for embedded Linux development (RK3588, RV1126, RK3568). Features three-layer config inheritance, PORT_SLOT-based port allocation, and cross-version Ubuntu support (20.04/22.04/24.04). - url: https://github.com/lando/lando name: lando/lando status: healthy - stars: 4222 - forks: 527 - last_push: 2026-02-24T21:10:02Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. By [Tandem](https://www.thinktandem.io/). - - url: https://github.com/Peco602/rust-universal-compiler - name: Peco602/rust-universal-compiler - status: stale - stars: 33 - forks: 2 - last_push: 2023-04-30T17:04:02Z + stars: 4232 + forks: 520 + last_push: 2026-04-28T22:30:42Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Container solution to compile Rust projects for Linux, macOS and Windows. By [Peco602][peco602]. + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Development Environment + description: Lando is for developers who want to quickly specify and painlessly spin up the services and tools needed to develop their projects. - url: https://github.com/uniget-org/cli name: uniget-org/cli status: healthy stars: 20 - last_push: 2026-02-12T08:35:24Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). By [nicholasdille](https://github.com/nicholasdille). - - url: https://github.com/tailhook/vagga - name: tailhook/vagga - status: stale - stars: 1896 - forks: 96 - last_push: 2023-03-31T06:13:55Z + last_push: 2026-05-12T14:55:25Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Vagga is a containerisation tool without daemons. It is a fully-userspace container engine inspired by Vagrant and Docker, specialized for development environments. + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Development Environment + description: Uni(versal)get, the installer and updater for container tools and beyond (formerly docker-setup). - url: https://github.com/deluan/zsh-in-docker name: deluan/zsh-in-docker status: inactive - stars: 1096 - forks: 119 + stars: 1106 + forks: 122 last_push: 2024-09-30T19:07:49Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Development Environment - description: Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line! By [Deluan](https://www.deluan.com). - - url: https://github.com/tjamet/caduc - name: tjamet/caduc - status: stale - stars: 21 - forks: 1 - last_push: 2019-01-07T16:07:50Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Garbage Collection - description: A docker garbage collector cleaning stuff you did not use recently. - - url: https://github.com/ZZROTDesign/docker-clean - name: ZZROTDesign/docker-clean - status: stale - stars: 1304 - forks: 90 - last_push: 2018-01-16T16:29:41Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Garbage Collection - description: A script that cleans Docker containers, images and volumes. - - url: https://github.com/Yelp/docker-custodian - name: Yelp/docker-custodian - status: inactive - stars: 374 - forks: 49 - last_push: 2024-08-14T08:08:10Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Garbage Collection - description: Keep docker hosts tidy. By [Yelp](https://github.com/Yelp). - - url: https://github.com/pdacity/docker_gc - name: pdacity/docker_gc - status: stale - stars: 128 - forks: 22 - last_push: 2024-02-09T17:50:47Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Garbage Collection - description: Image for automatic removing unused Docker Swarm objects. Also works just as Docker Service. - - url: https://github.com/stepchowfun/docuum - name: stepchowfun/docuum - status: healthy - stars: 684 - forks: 43 - last_push: 2026-03-07T22:59:03Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Garbage Collection - description: Least recently used (LRU) eviction of Docker images. + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Development Environment + description: Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line!. - url: https://github.com/apache/openwhisk name: apache/openwhisk status: healthy - stars: 6757 - forks: 1174 - last_push: 2026-01-24T05:17:06Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Serverless - description: A serverless, open source cloud platform that executes functions in response to events at any scale. By [apache](https://github.com/apache). - - url: https://github.com/bfirsh/funker-example-voting-app - name: bfirsh/funker-example-voting-app - status: stale - stars: 26 - forks: 8 - last_push: 2016-11-29T11:51:39Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Serverless - description: Functions as Docker containers example voting app. By [bfirsh](https://github.com/bfirsh). - - url: https://github.com/iron-io/functions - name: iron-io/functions - status: stale - stars: 3220 - forks: 224 - last_push: 2023-09-15T01:37:58Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Serverless - description: The serverless microservices platform FaaS (Functions as a Service) which uses Docker containers to run Any language or AWS Lambda functions. + stars: 6778 + forks: 1177 + last_push: 2026-05-07T14:42:56Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Serverless + description: A serverless, open source cloud platform that executes functions in response to events at any scale. - url: https://github.com/openfaas/faas name: openfaas/faas status: healthy - stars: 26105 - forks: 1970 - last_push: 2026-02-22T08:49:51Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Serverless - description: A complete serverless functions framework for Docker and Kubernetes. By [OpenFaaS](https://github.com/openfaas). - - url: https://github.com/grycap/scar - name: grycap/scar - status: stale - stars: 599 - forks: 47 - last_push: 2023-05-22T11:01:11Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Serverless - description: Serverless Container-aware Architectures (SCAR) is a serverless framework that allows easy deployment and execution of containers (e.g. Docker) in Serverless environments (e.g. Lambda). + stars: 26151 + forks: 1968 + last_push: 2026-04-01T14:03:53Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Serverless + description: A complete serverless functions framework for Docker and Kubernetes. - url: https://github.com/GoogleContainerTools/container-structure-test name: GoogleContainerTools/container-structure-test status: healthy - stars: 2462 - forks: 207 - last_push: 2026-02-20T23:41:16Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Testing - description: A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. By [GoogleContainerTools][googlecontainertools]. - - url: https://github.com/zuazo/dockerspec - name: zuazo/dockerspec - status: stale - stars: 181 - forks: 8 - last_push: 2017-08-30T20:40:57Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Testing - description: A small Ruby Gem to run RSpec and Serverspec, Infrataster and Capybara tests against Dockerfiles or Docker images easily. By [zuazo](https://github.com/zuazo). - - url: https://github.com/lynchborg/ezdc - name: lynchborg/ezdc - status: stale - stars: 12 - last_push: 2024-02-12T08:42:24Z + stars: 2477 + forks: 206 + last_push: 2026-04-15T19:06:22Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Testing - description: Golang test harness for easily setting up tests that rely on services in a docker-compose.yml. By [byrnedo]. + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Testing + description: A framework to validate the structure of an image by checking the outputs of commands or the contents of the filesystem. - url: https://github.com/kurtosis-tech/kurtosis name: kurtosis-tech/kurtosis status: healthy - stars: 526 - forks: 90 - last_push: 2026-03-06T11:06:13Z + stars: 539 + forks: 96 + last_push: 2026-05-18T19:15:12Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Testing - description: 'A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities. By [Kurtosis](https://www.kurtosis.com/).' + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Testing + description: 'A composable build system for multi-container test environments that provides developers with: a powerful Python-like SDK for environment configuration, a compile-time validator to verify environment behavior & setup, and a runtime for environment execution, monitoring, & debugging capabilities.' - url: https://github.com/alexei-led/pumba name: alexei-led/pumba status: healthy - stars: 3000 - forks: 201 - last_push: 2026-03-01T21:26:21Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Testing - description: Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. By [alexei-led](https://github.com/alexei-led). - - url: https://github.com/docker-exec/dexec - name: docker-exec/dexec - status: stale - stars: 332 - forks: 14 - last_push: 2021-05-13T06:04:19Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers - description: Command line interface written in Go for running code with Docker Exec images. - - url: https://github.com/benzaita/dockerized-cli - name: benzaita/dockerized-cli - status: stale - stars: 65 - forks: 5 - last_push: 2024-02-27T13:49:38Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers - description: Seamlessly execute commands in a container. - - url: https://github.com/CenturyLinkLabs/dray - name: CenturyLinkLabs/dray - status: stale - stars: 386 - forks: 37 - last_push: 2020-01-24T17:34:58Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers - description: An engine for managing the execution of container-based workflows. + stars: 3025 + forks: 204 + last_push: 2026-05-11T03:24:44Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Testing + description: Chaos testing tool for Docker. Can be deployed on kubernetes and CoreOS cluster. - url: https://github.com/artsy/hokusai name: artsy/hokusai status: healthy - stars: 98 + stars: 97 forks: 25 - last_push: 2026-03-06T10:57:58Z + last_push: 2026-03-23T08:23:07Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Wrappers description: A Docker + Kubernetes CLI for application developers; used to containerize an application and to manage its lifecycle throughout development, testing, and release cycles. From [artsy](https://github.com/artsy). - url: https://github.com/livecycle/preevy name: livecycle/preevy status: healthy - stars: 2191 - forks: 87 + stars: 2209 + forks: 89 last_push: 2026-02-06T07:38:46Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Wrappers description: Preview environments for Docker and Docker Compose projects. Test your changes and get feedback from devs and non-devs (Product/Design) by deploying pull requests to the your cloud provider as part of your CI pipeline. - - url: https://github.com/ianmiell/shutit - name: ianmiell/shutit - status: stale - stars: 2144 - forks: 110 - last_push: 2022-08-14T14:43:18Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers - description: Tool for building and maintaining complex Docker deployments. - url: https://github.com/subuser-security/subuser name: subuser-security/subuser status: inactive @@ -2925,86 +1964,124 @@ entries: forks: 63 last_push: 2025-02-23T11:31:31Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Wrappers description: Makes it easy to securely and portably run graphical desktop applications in Docker. - - url: https://github.com/christippett/terraform-cloudinit-container-server - name: christippett/terraform-cloudinit-container-server - status: stale - stars: 120 - forks: 30 - last_push: 2022-08-19T06:41:50Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers - description: Terraform module for deploying a single Docker image or `docker-compose.yaml` file to any Cloud™ VM. - - url: https://github.com/ramitsurana/turbo - name: ramitsurana/turbo - status: stale - stars: 27 - forks: 12 - last_push: 2021-12-22T19:03:53Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers - description: Simple and Powerful utility for docker. By [ramitsurana][ramitsurana]. - url: https://github.com/indigo-dc/udocker name: indigo-dc/udocker status: healthy - stars: 1709 - forks: 164 + stars: 1744 + forks: 167 last_push: 2025-08-13T17:21:57Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Development with Docker > Wrappers + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > Developer Workflow > Wrappers description: A tool to execute simple docker containers in batch or interactive systems without root privileges. - - url: https://github.com/Appdynamics/docker-monitoring-extension - name: Appdynamics/docker-monitoring-extension - status: inactive - stars: 5 + - url: https://github.com/iximiuz/cdebug + name: iximiuz/cdebug + status: healthy + stars: 1645 + forks: 67 + last_push: 2026-01-18T19:11:25Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > In-Container Tooling + description: Swiss-army knife for debugging running containers via ephemeral sidecars; works with Docker, containerd, and Kubernetes. + - url: https://github.com/nicomt/ckron + name: nicomt/ckron + status: healthy + stars: 56 forks: 6 - last_push: 2024-10-02T10:48:59Z + last_push: 2026-02-15T17:58:14Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Services based on Docker (mostly :heavy_dollar_sign:) > Monitoring Services - description: Docker Monitoring extension gathers metrics from the Docker Remote API, either using Unix Socket or TCP. - - url: https://github.com/sematext/sematext-agent-docker - name: sematext/sematext-agent-docker - status: stale - stars: 208 - forks: 32 - last_push: 2023-12-09T18:07:20Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Projects > Services based on Docker (mostly :heavy_dollar_sign:) > Monitoring Services - description: Monitoring of host and container metrics, Docker events and logs. Automatic log parser. Anomaly Detection and alerting for metrics and logs. [sematext](https://github.com/sematext). - - url: https://github.com/cicdops/awesome-ciandcd - name: cicdops/awesome-ciandcd - status: inactive - stars: 1987 - forks: 225 - last_push: 2024-04-01T18:08:23Z + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > In-Container Tooling + description: A cron-style job scheduler for docker,. + - url: https://github.com/jwilder/docker-gen + name: jwilder/docker-gen + status: healthy + stars: 4627 + forks: 613 + last_push: 2026-05-11T08:49:02Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > In-Container Tooling + description: Generate files from docker container meta-data. + - url: https://github.com/powerman/dockerize + name: powerman/dockerize + status: healthy + stars: 194 + forks: 18 + last_push: 2026-05-04T22:40:14Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > In-Container Tooling + description: Utility to simplify running applications in docker containers. + - url: https://github.com/tianon/gosu + name: tianon/gosu + status: healthy + stars: 4969 + forks: 358 + last_push: 2026-03-04T18:27:37Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > In-Container Tooling + description: Run this specific application as this specific user and get out of the pipeline (entrypoint script tool). + - url: https://github.com/sindresorhus/is-docker + name: sindresorhus/is-docker + status: healthy + stars: 233 + forks: 15 + last_push: 2025-09-15T21:04:10Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > In-Container Tooling + description: Check if the process is running inside a Docker container. + - url: https://github.com/tarampampam/microcheck + name: tarampampam/microcheck + status: healthy + stars: 142 + forks: 2 + last_push: 2026-05-08T09:33:51Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > In-Container Tooling + description: Lightweight health check utilities for Docker containers (75 KB instead of 9.3 MB for httpcheck versus cURL) in pure C - http(s), port checks, and parallel execution are included. + - url: https://github.com/mcuadros/ofelia + name: mcuadros/ofelia + status: healthy + stars: 3845 + forks: 203 + last_push: 2026-05-07T16:54:33Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + - url: https://github.com/ncopa/su-exec + name: ncopa/su-exec + status: healthy + stars: 1018 + forks: 103 + last_push: 2025-10-07T13:49:01Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Useful Resources > Awesome Lists - description: Not specific to docker but relevant. + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > In-Container Tooling + description: This is a simple tool that will simply execute a program with different privileges. The program will be executed directly and not run as a child, like su and sudo does, which avoids TTY and signal issues. Why reinvent gosu? This does more or less exactly the same thing as gosu but it is only 10kb instead of 1.8MB. + - url: https://github.com/aptible/supercronic + name: aptible/supercronic + status: healthy + stars: 2498 + forks: 141 + last_push: 2026-04-23T12:10:59Z + has_license: true + checked_at: 2026-05-18T21:29:20.484404Z + category: Projects > In-Container Tooling + description: Crontab-compatible job runner, designed specifically to run in containers. - url: https://github.com/docker/awesome-compose name: docker/awesome-compose status: healthy - stars: 44283 - forks: 8070 - last_push: 2026-03-05T09:59:09Z + stars: 45326 + forks: 8149 + last_push: 2026-05-09T12:17:01Z has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Useful Resources > Awesome Lists + checked_at: 2026-05-18T21:29:20.484404Z + category: Learning Resources > Awesome Lists description: Docker Compose samples. - - url: https://github.com/hexops/dockerfile - name: hexops/dockerfile - status: stale - stars: 4091 - forks: 155 - last_push: 2021-08-08T04:42:37Z - has_license: true - checked_at: 2026-03-08T18:26:00.233336Z - category: Useful Resources > Good Tips - description: This repository has best-practices for writing Dockerfiles. diff --git a/go.mod b/go.mod index 6e0b62df6..91f986c6f 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/veggiemonk/awesome-docker -go 1.26.0 +go 1.26.3 require ( charm.land/bubbletea/v2 v2.0.6 @@ -14,7 +14,7 @@ require ( require ( github.com/charmbracelet/colorprofile v0.4.3 // indirect - github.com/charmbracelet/ultraviolet v0.0.0-20260416155717-489999b90468 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20260511121909-c840852527f3 // indirect github.com/charmbracelet/x/ansi v0.11.7 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect github.com/charmbracelet/x/termios v0.1.1 // indirect @@ -30,5 +30,5 @@ require ( github.com/spf13/pflag v1.0.10 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect golang.org/x/sync v0.20.0 // indirect - golang.org/x/sys v0.43.0 // indirect + golang.org/x/sys v0.44.0 // indirect ) diff --git a/go.sum b/go.sum index ca28d99ff..d004ca357 100644 --- a/go.sum +++ b/go.sum @@ -8,6 +8,8 @@ github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q= github.com/charmbracelet/ultraviolet v0.0.0-20260416155717-489999b90468 h1:Q9fO0y1Zo5KB/5Vu8JZoLGm1N3RzF9bNj3Ao3xoR+Ac= github.com/charmbracelet/ultraviolet v0.0.0-20260416155717-489999b90468/go.mod h1:bAAz7dh/FTYfC+oiHavL4mX1tOIBZ0ZwYjSi3qE6ivM= +github.com/charmbracelet/ultraviolet v0.0.0-20260511121909-c840852527f3 h1:pxGjlWZFcRQMWAdtjRelpL3Gbu8iYIyuO3Eqbd037Ow= +github.com/charmbracelet/ultraviolet v0.0.0-20260511121909-c840852527f3/go.mod h1:SnKWaPaTnkTNXJgdgdquu66de12V8pW/b/qlTGaF9xg= github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI= github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ= github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA= @@ -56,6 +58,8 @@ golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= +golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/internal/builder/builder.go b/internal/builder/builder.go index 8e05d530e..20b180840 100644 --- a/internal/builder/builder.go +++ b/internal/builder/builder.go @@ -2,8 +2,10 @@ package builder import ( "bytes" + "errors" "fmt" "os" + "path/filepath" "strings" "github.com/yuin/goldmark" @@ -61,10 +63,13 @@ func Build(markdownPath, templatePath, outputPath string) error { } } if !replaced { - return fmt.Errorf("template missing supported markdown placeholder") + return errors.New("template missing supported markdown placeholder") } - if err := os.WriteFile(outputPath, []byte(output), 0o644); err != nil { + // outputPath is a CLI-provided destination for a generated website file; + // the user controls the destination by design, so the taint warning is expected. + //nolint:gosec // G306,G304: user-supplied output path is intentional for this CLI + if err := os.WriteFile(filepath.Clean(outputPath), []byte(output), 0o644); err != nil { return fmt.Errorf("write output: %w", err) } return nil diff --git a/internal/cache/cache.go b/internal/cache/cache.go index cd068d0bc..2ca5a20ba 100644 --- a/internal/cache/cache.go +++ b/internal/cache/cache.go @@ -38,17 +38,17 @@ func LoadExcludeList(path string) (*ExcludeList, error) { // HealthEntry stores metadata about a single entry. type HealthEntry struct { - URL string `yaml:"url"` - Name string `yaml:"name"` - Status string `yaml:"status"` // healthy, inactive, stale, archived, dead - Stars int `yaml:"stars,omitempty"` - Forks int `yaml:"forks,omitempty"` - LastPush time.Time `yaml:"last_push,omitempty"` - HasLicense bool `yaml:"has_license,omitempty"` - HasReadme bool `yaml:"has_readme,omitempty"` + LastPush time.Time `yaml:"last_push,omitempty"` CheckedAt time.Time `yaml:"checked_at"` + URL string `yaml:"url"` + Name string `yaml:"name"` + Status string `yaml:"status"` Category string `yaml:"category,omitempty"` Description string `yaml:"description,omitempty"` + Stars int `yaml:"stars,omitempty"` + Forks int `yaml:"forks,omitempty"` + HasLicense bool `yaml:"has_license,omitempty"` + HasReadme bool `yaml:"has_readme,omitempty"` } // HealthCache is the full YAML cache file. @@ -84,15 +84,17 @@ func SaveHealthCache(path string, hc *HealthCache) error { // Merge updates the cache with new entries, replacing existing ones by URL. func (hc *HealthCache) Merge(entries []HealthEntry) { index := make(map[string]int) - for i, e := range hc.Entries { + for i := range hc.Entries { + e := &hc.Entries[i] index[e.URL] = i } - for _, e := range entries { - if i, exists := index[e.URL]; exists { - hc.Entries[i] = e + for i := range entries { + e := &entries[i] + if j, exists := index[e.URL]; exists { + hc.Entries[j] = *e } else { index[e.URL] = len(hc.Entries) - hc.Entries = append(hc.Entries, e) + hc.Entries = append(hc.Entries, *e) } } } diff --git a/internal/checker/github.go b/internal/checker/github.go index a141286f9..385e6a597 100644 --- a/internal/checker/github.go +++ b/internal/checker/github.go @@ -13,15 +13,15 @@ import ( // RepoInfo holds metadata about a GitHub repository. type RepoInfo struct { + PushedAt time.Time Owner string Name string URL string + Stars int + Forks int IsArchived bool IsDisabled bool IsPrivate bool - PushedAt time.Time - Stars int - Forks int HasLicense bool } @@ -104,19 +104,17 @@ func NewGitHubChecker(token string) *GitHubChecker { func (gc *GitHubChecker) CheckRepo(ctx context.Context, owner, name string) (RepoInfo, error) { var query struct { Repository struct { - IsArchived bool - IsDisabled bool - IsPrivate bool PushedAt time.Time + LicenseInfo *struct{ Name string } StargazerCount int ForkCount int - LicenseInfo *struct { - Name string - } + IsArchived bool + IsDisabled bool + IsPrivate bool } `graphql:"repository(owner: $owner, name: $name)"` } - vars := map[string]interface{}{ + vars := map[string]any{ "owner": githubv4.String(owner), "name": githubv4.String(name), } diff --git a/internal/checker/github_test.go b/internal/checker/github_test.go index 9ed629484..6e3b4697a 100644 --- a/internal/checker/github_test.go +++ b/internal/checker/github_test.go @@ -34,7 +34,14 @@ func TestExtractGitHubRepo(t *testing.T) { } if ok { if owner != tt.owner || name != tt.name { - t.Errorf("ExtractGitHubRepo(%q) = (%q, %q), want (%q, %q)", tt.url, owner, name, tt.owner, tt.name) + t.Errorf( + "ExtractGitHubRepo(%q) = (%q, %q), want (%q, %q)", + tt.url, + owner, + name, + tt.owner, + tt.name, + ) } } } diff --git a/internal/checker/http.go b/internal/checker/http.go index 7aa0a824f..8b2a82e5d 100644 --- a/internal/checker/http.go +++ b/internal/checker/http.go @@ -18,11 +18,11 @@ const ( // LinkResult holds the result of checking a single URL. type LinkResult struct { URL string - OK bool - StatusCode int - Redirected bool RedirectURL string Error string + StatusCode int + OK bool + Redirected bool } func shouldFallbackToGET(statusCode int) bool { diff --git a/internal/linter/fixer.go b/internal/linter/fixer.go index f135c2c72..31ad419c0 100644 --- a/internal/linter/fixer.go +++ b/internal/linter/fixer.go @@ -15,7 +15,9 @@ import ( // by [@author](url), by [@author][ref], by @author // // Also handles "Created by", "Maintained by" etc. -var attributionRe = regexp.MustCompile(`\s+(?:(?:[Cc]reated|[Mm]aintained|[Bb]uilt)\s+)?by\s+\[@[^\]]+\](?:\([^)]*\)|\[[^\]]*\])\.?$`) +var attributionRe = regexp.MustCompile( + `\s+(?:(?:[Cc]reated|[Mm]aintained|[Bb]uilt)\s+)?by\s+\[@[^\]]+\](?:\([^)]*\)|\[[^\]]*\])\.?$`, +) // bareAttributionRe matches: by @author at end of line (no link). var bareAttributionRe = regexp.MustCompile(`\s+by\s+@\w+\.?$`) @@ -136,13 +138,19 @@ func FixFile(path string) (int, error) { w := bufio.NewWriter(out) for i, line := range lines { - w.WriteString(line) + if _, err := w.WriteString(line); err != nil { + return 0, err + } if i < len(lines)-1 { - w.WriteString("\n") + if _, err := w.WriteString("\n"); err != nil { + return 0, err + } } } // Preserve trailing newline if original had one - w.WriteString("\n") + if _, err := w.WriteString("\n"); err != nil { + return 0, err + } return fixCount, w.Flush() } @@ -218,11 +226,17 @@ func SortFile(path string) (int, error) { w := bufio.NewWriter(out) for i, line := range lines { - w.WriteString(line) + if _, err := w.WriteString(line); err != nil { + return 0, err + } if i < len(lines)-1 { - w.WriteString("\n") + if _, err := w.WriteString("\n"); err != nil { + return 0, err + } } } - w.WriteString("\n") + if _, err := w.WriteString("\n"); err != nil { + return 0, err + } return fixCount, w.Flush() } diff --git a/internal/linter/rules.go b/internal/linter/rules.go index 3cf8f5b60..13d41db74 100644 --- a/internal/linter/rules.go +++ b/internal/linter/rules.go @@ -30,9 +30,9 @@ const ( // Issue is a single lint problem found. type Issue struct { Rule Rule + Message string Severity Severity Line int - Message string } func (i Issue) String() string { @@ -79,7 +79,11 @@ func CheckSorted(entries []parser.Entry) []Issue { Rule: RuleSorted, Severity: SeverityError, Line: entries[i].Line, - Message: fmt.Sprintf("%q should come before %q (alphabetical order)", entries[i].Name, entries[i-1].Name), + Message: fmt.Sprintf( + "%q should come before %q (alphabetical order)", + entries[i].Name, + entries[i-1].Name, + ), }) } } diff --git a/internal/parser/parser_test.go b/internal/parser/parser_test.go index eda0bb938..f5d19cdd0 100644 --- a/internal/parser/parser_test.go +++ b/internal/parser/parser_test.go @@ -19,7 +19,11 @@ func TestParseEntry(t *testing.T) { t.Errorf("url = %q, want %q", entry.URL, "https://www.docker.com/products/docker-desktop/") } if entry.Description != "Official native app. Only for Windows and MacOS." { - t.Errorf("description = %q, want %q", entry.Description, "Official native app. Only for Windows and MacOS.") + t.Errorf( + "description = %q, want %q", + entry.Description, + "Official native app. Only for Windows and MacOS.", + ) } if len(entry.Markers) != 0 { t.Errorf("markers = %v, want empty", entry.Markers) diff --git a/internal/parser/types.go b/internal/parser/types.go index 54e5a486b..438136fdb 100644 --- a/internal/parser/types.go +++ b/internal/parser/types.go @@ -15,17 +15,17 @@ type Entry struct { Name string URL string Description string + Raw string Markers []Marker - Line int // 1-based line number in source - Raw string // original line text + Line int } // Section is a heading with optional entries and child sections. type Section struct { Title string - Level int // heading level: 1 = #, 2 = ##, etc. Entries []Entry Children []Section + Level int Line int } diff --git a/internal/pruner/pruner.go b/internal/pruner/pruner.go new file mode 100644 index 000000000..7a6bfe824 --- /dev/null +++ b/internal/pruner/pruner.go @@ -0,0 +1,221 @@ +// Package pruner owns the removal of README entries by health status. +// +// Why it exists: maintenance regularly produces a list of archived/stale +// projects (see scorer + cache). Pruner is the seam that translates that list +// into a concrete edit of README.md and config/health_cache.yaml, so the README +// stays in lockstep with the cache instead of drifting via ad-hoc edits. +package pruner + +import ( + "bufio" + "fmt" + "io" + "os" + "regexp" + "sort" + "strings" + + "github.com/veggiemonk/awesome-docker/internal/cache" + "github.com/veggiemonk/awesome-docker/internal/parser" +) + +// Removed describes a single entry removed from the README. +type Removed struct { + URL string + Name string + Status string + Line int +} + +// Result summarizes a prune run. +type Result struct { + Removed []Removed + // URLs in the target set that didn't appear in the README (already gone, + // non-GitHub indirection, or URL drift between cache and README). + NotFound []string +} + +// TargetURLs returns the URL set selected by the given statuses from the cache. +func TargetURLs(hc *cache.HealthCache, statuses []string) map[string]cache.HealthEntry { + want := make(map[string]bool, len(statuses)) + for _, s := range statuses { + want[strings.TrimSpace(strings.ToLower(s))] = true + } + out := make(map[string]cache.HealthEntry) + for i := range hc.Entries { + e := &hc.Entries[i] + if want[strings.ToLower(e.Status)] { + out[normalizeURL(e.URL)] = *e + } + } + return out +} + +// PruneREADME removes lines whose entry URL is in targets and writes the +// result back to path. If dryRun is true, the file is not modified. +func PruneREADME(path string, targets map[string]cache.HealthEntry, dryRun bool) (Result, error) { + f, err := os.Open(path) //nolint:gosec + if err != nil { + return Result{}, fmt.Errorf("open %s: %w", path, err) + } + lines, err := readLines(f) + f.Close() + if err != nil { + return Result{}, fmt.Errorf("read %s: %w", path, err) + } + + var ( + kept = make([]string, 0, len(lines)) + removed []Removed + hit = make(map[string]bool, len(targets)) + ) + + for i, line := range lines { + entry, perr := parser.ParseEntry(line, i+1) + if perr != nil { + kept = append(kept, line) + continue + } + key := normalizeURL(entry.URL) + meta, ok := targets[key] + if !ok { + kept = append(kept, line) + continue + } + hit[key] = true + removed = append(removed, Removed{ + URL: entry.URL, + Name: entry.Name, + Status: meta.Status, + Line: i + 1, + }) + } + + res := Result{Removed: removed} + for k := range targets { + if !hit[k] { + res.NotFound = append(res.NotFound, targets[k].URL) + } + } + sort.Strings(res.NotFound) + + if dryRun || len(removed) == 0 { + return res, nil + } + + if err := writeLines(path, kept); err != nil { + return res, fmt.Errorf("write %s: %w", path, err) + } + return res, nil +} + +// PruneCache drops entries whose normalized URL is in targets and writes the +// cache back to path. Safe to call when len(targets) == 0 (no-op). +func PruneCache(path string, hc *cache.HealthCache, targets map[string]cache.HealthEntry, dryRun bool) (int, error) { + if len(targets) == 0 { + return 0, nil + } + kept := hc.Entries[:0] + for i := range hc.Entries { + e := &hc.Entries[i] + if _, drop := targets[normalizeURL(e.URL)]; drop { + continue + } + kept = append(kept, *e) + } + dropped := len(hc.Entries) - len(kept) + hc.Entries = kept + if dryRun || dropped == 0 { + return dropped, nil + } + if err := cache.SaveHealthCache(path, hc); err != nil { + return dropped, err + } + return dropped, nil +} + +// reportSectionRe matches markdown health-report section headings: +// +// ## Archived (should mark :skull:) +// ## Stale (2+ years inactive) +// ## Inactive (1-2 years) +var reportSectionRe = regexp.MustCompile(`(?i)^##\s+(archived|stale|inactive|dead|healthy)\b`) + +// reportEntryRe matches: "- [name](url) - Stars: N - Last push: YYYY-MM-DD" +var reportEntryRe = regexp.MustCompile(`^-\s+\[([^\]]+)\]\((https?://[^)]+)\)`) + +// TargetsFromReport parses a markdown health report (same format as the +// `report` subcommand emits) and returns the URL set whose section heading +// matches one of the given statuses. +func TargetsFromReport(r io.Reader, statuses []string) (map[string]cache.HealthEntry, error) { + want := make(map[string]bool, len(statuses)) + for _, s := range statuses { + want[strings.TrimSpace(strings.ToLower(s))] = true + } + out := make(map[string]cache.HealthEntry) + sc := bufio.NewScanner(r) + sc.Buffer(make([]byte, 0, 64*1024), 1024*1024) + var current string + for sc.Scan() { + line := sc.Text() + if m := reportSectionRe.FindStringSubmatch(line); m != nil { + current = strings.ToLower(m[1]) + continue + } + if !want[current] { + continue + } + if m := reportEntryRe.FindStringSubmatch(line); m != nil { + url := strings.TrimSpace(m[2]) + out[normalizeURL(url)] = cache.HealthEntry{ + URL: url, + Name: m[1], + Status: current, + } + } + } + if err := sc.Err(); err != nil { + return nil, err + } + return out, nil +} + +func normalizeURL(u string) string { + u = strings.TrimSpace(u) + u = strings.TrimSuffix(u, "/") + u = strings.ToLower(u) + return u +} + +func readLines(r *os.File) ([]string, error) { + var lines []string + sc := bufio.NewScanner(r) + sc.Buffer(make([]byte, 0, 64*1024), 1024*1024) + for sc.Scan() { + lines = append(lines, sc.Text()) + } + return lines, sc.Err() +} + +func writeLines(path string, lines []string) error { + out, err := os.Create(path) //nolint:gosec + if err != nil { + return err + } + defer out.Close() + w := bufio.NewWriter(out) + for i, line := range lines { + if _, err := w.WriteString(line); err != nil { + return err + } + if i < len(lines)-1 { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + } + if err := w.WriteByte('\n'); err != nil { + return err + } + return w.Flush() +} diff --git a/internal/pruner/pruner_test.go b/internal/pruner/pruner_test.go new file mode 100644 index 000000000..703525041 --- /dev/null +++ b/internal/pruner/pruner_test.go @@ -0,0 +1,173 @@ +package pruner + +import ( + "os" + "path/filepath" + "strings" + "testing" + + "github.com/veggiemonk/awesome-docker/internal/cache" +) + +func TestTargetURLs(t *testing.T) { + hc := &cache.HealthCache{Entries: []cache.HealthEntry{ + {URL: "https://github.com/A/x", Status: "archived"}, + {URL: "https://github.com/B/y", Status: "stale"}, + {URL: "https://github.com/C/z", Status: "healthy"}, + {URL: "https://github.com/D/w", Status: "inactive"}, + }} + got := TargetURLs(hc, []string{"archived", "stale"}) + if len(got) != 2 { + t.Fatalf("want 2 targets, got %d", len(got)) + } + if _, ok := got["https://github.com/a/x"]; !ok { + t.Errorf("expected lowercased URL key for archived entry") + } +} + +func TestTargetsFromReport(t *testing.T) { + r := strings.NewReader(`# Health Report + +## Summary + +- Stale (2+ years): 2 + +## Archived (should mark :skull:) + +- [a/keep](https://github.com/A/Keep) - Stars: 1 - Last push: 2024-01-01 + +## Stale (2+ years inactive) + +- [b/drop](https://github.com/b/drop) - Stars: 2 - Last push: 2020-01-01 + +## Inactive (1-2 years) + +- [c/skip](https://github.com/c/skip) - Stars: 3 - Last push: 2025-01-01 +`) + targets, err := TargetsFromReport(r, []string{"archived", "stale"}) + if err != nil { + t.Fatal(err) + } + if len(targets) != 2 { + t.Fatalf("want 2, got %d: %v", len(targets), targets) + } + if _, ok := targets["https://github.com/a/keep"]; !ok { + t.Errorf("missing archived entry (case-insensitive)") + } + if _, ok := targets["https://github.com/b/drop"]; !ok { + t.Errorf("missing stale entry") + } + if _, ok := targets["https://github.com/c/skip"]; ok { + t.Errorf("inactive entry should not have been picked up") + } +} + +func TestPruneREADME(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "README.md") + content := `# Header + +## Tools + +- [keep](https://github.com/keep/me) - Healthy project. +- [drop](https://github.com/drop/me) - Stale project. +- [also-keep](https://github.com/also/keep) - Another one. +` + if err := os.WriteFile(path, []byte(content), 0o644); err != nil { + t.Fatal(err) + } + + targets := map[string]cache.HealthEntry{ + "https://github.com/drop/me": {URL: "https://github.com/drop/me", Status: "stale"}, + } + res, err := PruneREADME(path, targets, false) + if err != nil { + t.Fatal(err) + } + if len(res.Removed) != 1 { + t.Fatalf("want 1 removed, got %d", len(res.Removed)) + } + if res.Removed[0].URL != "https://github.com/drop/me" { + t.Errorf("unexpected removed URL: %s", res.Removed[0].URL) + } + + out, err := os.ReadFile(path) + if err != nil { + t.Fatal(err) + } + if strings.Contains(string(out), "drop/me") { + t.Errorf("expected drop/me to be removed from README, got:\n%s", out) + } + if !strings.Contains(string(out), "keep/me") || !strings.Contains(string(out), "also/keep") { + t.Errorf("expected other entries to be preserved, got:\n%s", out) + } +} + +func TestPruneREADMEDryRun(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "README.md") + content := "## X\n\n- [drop](https://github.com/drop/me) - Stale.\n" + if err := os.WriteFile(path, []byte(content), 0o644); err != nil { + t.Fatal(err) + } + targets := map[string]cache.HealthEntry{ + "https://github.com/drop/me": {URL: "https://github.com/drop/me", Status: "stale"}, + } + res, err := PruneREADME(path, targets, true) + if err != nil { + t.Fatal(err) + } + if len(res.Removed) != 1 { + t.Fatalf("want 1 removed (preview), got %d", len(res.Removed)) + } + got, _ := os.ReadFile(path) + if string(got) != content { + t.Errorf("dry-run modified file: %q", got) + } +} + +func TestPruneREADMENotFound(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "README.md") + if err := os.WriteFile(path, []byte("## X\n\n- [k](https://github.com/k/v) - Keep.\n"), 0o644); err != nil { + t.Fatal(err) + } + targets := map[string]cache.HealthEntry{ + "https://github.com/gone/missing": {URL: "https://github.com/gone/missing", Status: "stale"}, + } + res, err := PruneREADME(path, targets, false) + if err != nil { + t.Fatal(err) + } + if len(res.Removed) != 0 { + t.Errorf("want 0 removed, got %d", len(res.Removed)) + } + if len(res.NotFound) != 1 || res.NotFound[0] != "https://github.com/gone/missing" { + t.Errorf("want gone/missing in NotFound, got %v", res.NotFound) + } +} + +func TestPruneCache(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "cache.yaml") + hc := &cache.HealthCache{Entries: []cache.HealthEntry{ + {URL: "https://github.com/a/keep", Status: "healthy"}, + {URL: "https://github.com/b/drop", Status: "stale"}, + }} + if err := cache.SaveHealthCache(path, hc); err != nil { + t.Fatal(err) + } + targets := map[string]cache.HealthEntry{ + "https://github.com/b/drop": {URL: "https://github.com/b/drop", Status: "stale"}, + } + n, err := PruneCache(path, hc, targets, false) + if err != nil { + t.Fatal(err) + } + if n != 1 { + t.Errorf("want 1 dropped, got %d", n) + } + if len(hc.Entries) != 1 || hc.Entries[0].URL != "https://github.com/a/keep" { + t.Errorf("unexpected remaining entries: %v", hc.Entries) + } +} diff --git a/internal/scorer/scorer.go b/internal/scorer/scorer.go index 3aefa8971..d9e60887e 100644 --- a/internal/scorer/scorer.go +++ b/internal/scorer/scorer.go @@ -23,15 +23,15 @@ const ( // ScoredEntry is a repo with its computed health status. type ScoredEntry struct { + LastPush time.Time URL string Name string Status Status + Category string + Description string Stars int Forks int HasLicense bool - LastPush time.Time - Category string - Description string } // ReportSummary contains grouped status counts. @@ -46,10 +46,10 @@ type ReportSummary struct { // ReportData is the full machine-readable report model. type ReportData struct { GeneratedAt time.Time `json:"generated_at"` - Total int `json:"total"` - Summary ReportSummary `json:"summary"` - Entries []ScoredEntry `json:"entries"` ByStatus map[Status][]ScoredEntry `json:"by_status"` + Entries []ScoredEntry `json:"entries"` + Summary ReportSummary `json:"summary"` + Total int `json:"total"` } // Score computes the health status of a GitHub repo. @@ -94,7 +94,8 @@ func ScoreAll(infos []checker.RepoInfo) []ScoredEntry { func ToCacheEntries(scored []ScoredEntry) []cache.HealthEntry { entries := make([]cache.HealthEntry, len(scored)) now := time.Now().UTC() - for i, s := range scored { + for i := range scored { + s := &scored[i] entries[i] = cache.HealthEntry{ URL: s.URL, Name: s.Name, @@ -135,7 +136,8 @@ func GenerateReport(scored []ScoredEntry) string { return } fmt.Fprintf(&b, "## %s\n\n", title) - for _, e := range entries { + for i := range entries { + e := &entries[i] fmt.Fprintf(&b, "- [%s](%s) - Stars: %d - Last push: %s\n", e.Name, e.URL, e.Stars, e.LastPush.Format("2006-01-02")) } @@ -152,8 +154,9 @@ func GenerateReport(scored []ScoredEntry) string { // BuildReportData returns full report data for machine-readable and markdown rendering. func BuildReportData(scored []ScoredEntry) ReportData { groups := map[Status][]ScoredEntry{} - for _, s := range scored { - groups[s.Status] = append(groups[s.Status], s) + for i := range scored { + s := &scored[i] + groups[s.Status] = append(groups[s.Status], *s) } return ReportData{ diff --git a/internal/scorer/scorer_test.go b/internal/scorer/scorer_test.go index 1d3251522..89a96ec8e 100644 --- a/internal/scorer/scorer_test.go +++ b/internal/scorer/scorer_test.go @@ -70,7 +70,13 @@ func TestGenerateReport(t *testing.T) { results := []ScoredEntry{ {URL: "https://github.com/a/a", Name: "a/a", Status: StatusHealthy, Stars: 100, LastPush: time.Now()}, {URL: "https://github.com/b/b", Name: "b/b", Status: StatusArchived, Stars: 50, LastPush: time.Now()}, - {URL: "https://github.com/c/c", Name: "c/c", Status: StatusStale, Stars: 10, LastPush: time.Now().AddDate(-3, 0, 0)}, + { + URL: "https://github.com/c/c", + Name: "c/c", + Status: StatusStale, + Stars: 10, + LastPush: time.Now().AddDate(-3, 0, 0), + }, } report := GenerateReport(results) if !strings.Contains(report, "Healthy: 1") { @@ -85,8 +91,9 @@ func TestGenerateReport(t *testing.T) { } func TestGenerateReportShowsAllEntries(t *testing.T) { - var results []ScoredEntry - for i := 0; i < 55; i++ { + const entryCount = 55 + results := make([]ScoredEntry, 0, entryCount) + for i := range entryCount { results = append(results, ScoredEntry{ URL: fmt.Sprintf("https://github.com/stale/%d", i), Name: fmt.Sprintf("stale/%d", i), @@ -100,7 +107,7 @@ func TestGenerateReportShowsAllEntries(t *testing.T) { if strings.Contains(report, "... and") { t.Fatal("report should not be truncated") } - if !strings.Contains(report, "stale/54") { + if !strings.Contains(report, fmt.Sprintf("stale/%d", entryCount-1)) { t.Fatal("report should contain all entries") } } diff --git a/internal/tui/model.go b/internal/tui/model.go index 6836a869d..4611d0e9f 100644 --- a/internal/tui/model.go +++ b/internal/tui/model.go @@ -1,10 +1,12 @@ package tui import ( + "context" "fmt" "os/exec" "runtime" "strings" + "time" "unicode/utf8" tea "charm.land/bubbletea/v2" @@ -19,25 +21,25 @@ const ( panelList ) -const entryHeight = 5 // lines rendered per entry in the list panel -const scrollOff = 4 // minimum lines/entries kept visible above and below cursor +const ( + entryHeight = 5 // lines rendered per entry in the list panel + scrollOff = 4 // minimum lines/entries kept visible above and below cursor +) // Model is the top-level Bubbletea model. type Model struct { - roots []*TreeNode - flatTree []FlatNode - + filterText string + roots []*TreeNode + flatTree []FlatNode + currentEntries []cache.HealthEntry activePanel panel treeCursor int treeOffset int listCursor int listOffset int - currentEntries []cache.HealthEntry - - filtering bool - filterText string - - width, height int + width int + height int + filtering bool } // New creates a new Model from health cache entries. @@ -135,11 +137,13 @@ func (m *Model) applyFilter() { query := strings.ToLower(m.filterText) var filtered []cache.HealthEntry for _, root := range m.roots { - for _, e := range root.AllEntries() { + entries := root.AllEntries() + for i := range entries { + e := &entries[i] if strings.Contains(strings.ToLower(e.Name), query) || strings.Contains(strings.ToLower(e.Description), query) || strings.Contains(strings.ToLower(e.Category), query) { - filtered = append(filtered, e) + filtered = append(filtered, *e) } } } @@ -176,10 +180,7 @@ func (m Model) handleTreeKey(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { m.updateCurrentEntries() } case "ctrl+d", "pgdown": - half := m.treePanelHeight() / 2 - if half < 1 { - half = 1 - } + half := max(m.treePanelHeight()/2, 1) m.treeCursor += half if m.treeCursor >= len(m.flatTree) { m.treeCursor = len(m.flatTree) - 1 @@ -187,10 +188,7 @@ func (m Model) handleTreeKey(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { m.adjustTreeScroll() m.updateCurrentEntries() case "ctrl+u", "pgup": - half := m.treePanelHeight() / 2 - if half < 1 { - half = 1 - } + half := max(m.treePanelHeight()/2, 1) m.treeCursor -= half if m.treeCursor < 0 { m.treeCursor = 0 @@ -233,10 +231,7 @@ func (m Model) handleTreeKey(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { func (m *Model) adjustTreeScroll() { visible := m.treePanelHeight() - off := scrollOff - if off > visible/2 { - off = visible / 2 - } + off := min(scrollOff, visible/2) if m.treeCursor < m.treeOffset+off { m.treeOffset = m.treeCursor - off } @@ -249,10 +244,10 @@ func (m *Model) adjustTreeScroll() { } func (m Model) treePanelHeight() int { - h := m.height - 6 // header, footer, borders, title - if h < 1 { - h = 1 - } + h := max( + // header, footer, borders, title + m.height-6, 1, + ) return h } @@ -269,20 +264,14 @@ func (m Model) handleListKey(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { m.adjustListScroll() } case "ctrl+d", "pgdown": - half := m.visibleListEntries() / 2 - if half < 1 { - half = 1 - } + half := max(m.visibleListEntries()/2, 1) m.listCursor += half if m.listCursor >= len(m.currentEntries) { m.listCursor = len(m.currentEntries) - 1 } m.adjustListScroll() case "ctrl+u", "pgup": - half := m.visibleListEntries() / 2 - if half < 1 { - half = 1 - } + half := max(m.visibleListEntries()/2, 1) m.listCursor -= half if m.listCursor < 0 { m.listCursor = 0 @@ -328,10 +317,7 @@ func (m Model) visibleListEntries() int { func (m *Model) adjustListScroll() { visible := m.visibleListEntries() - off := scrollOff - if off > visible/2 { - off = visible / 2 - } + off := min(scrollOff, visible/2) if m.listCursor < m.listOffset+off { m.listOffset = m.listCursor - off } @@ -345,10 +331,7 @@ func (m *Model) adjustListScroll() { func (m Model) listPanelHeight() int { // height minus header, footer, borders - h := m.height - 4 - if h < 1 { - h = 1 - } + h := max(m.height-4, 1) return h } @@ -406,10 +389,7 @@ func (m Model) renderTree(width, height int) string { b.WriteString("\n\n") linesUsed := 2 - end := m.treeOffset + height - 2 - if end > len(m.flatTree) { - end = len(m.flatTree) - } + end := min(m.treeOffset+height-2, len(m.flatTree)) for i := m.treeOffset; i < end; i++ { fn := m.flatTree[i] if linesUsed >= height { @@ -466,16 +446,10 @@ func (m Model) renderList(width, height int) string { linesUsed := 2 - visible := (height - 2) / entryHeight - if visible < 1 { - visible = 1 - } + visible := max((height-2)/entryHeight, 1) start := m.listOffset - end := start + visible - if end > len(m.currentEntries) { - end = len(m.currentEntries) - } + end := min(start+visible, len(m.currentEntries)) for idx := start; idx < end; idx++ { if linesUsed+entryHeight > height { @@ -496,19 +470,16 @@ func (m Model) renderList(width, height int) string { } name := e.Name statsW := lipgloss.Width(stats) - maxName := safeWidth - statsW - 2 // 2 for minimum gap - if maxName < 4 { - maxName = 4 - } + maxName := max( + // 2 for minimum gap + safeWidth-statsW-2, 4, + ) if lipgloss.Width(name) > maxName { name = truncateToWidth(name, maxName-1) + "…" } nameStr := entryNameStyle.Render(name) statsStr := entryDescStyle.Render(stats) - padding := safeWidth - lipgloss.Width(nameStr) - lipgloss.Width(statsStr) - if padding < 1 { - padding = 1 - } + padding := max(safeWidth-lipgloss.Width(nameStr)-lipgloss.Width(statsStr), 1) line1 := nameStr + strings.Repeat(" ", padding) + statsStr // Line 2: URL @@ -529,15 +500,12 @@ func (m Model) renderList(width, height int) string { statusStr := statusStyle(e.Status).Render(e.Status) lastPush := "" if !e.LastPush.IsZero() { - lastPush = fmt.Sprintf(" Last push: %s", e.LastPush.Format("2006-01-02")) + lastPush = " Last push: " + e.LastPush.Format("2006-01-02") } line4 := statusStr + entryDescStyle.Render(lastPush) // Line 5: separator - sepWidth := safeWidth - if sepWidth < 1 { - sepWidth = 1 - } + sepWidth := max(safeWidth, 1) line5 := entryDescStyle.Render(strings.Repeat("─", sepWidth)) entry := fmt.Sprintf("%s\n%s\n%s\n%s\n%s", line1, line2, line3, line4, line5) @@ -573,14 +541,16 @@ type openURLMsg struct{ err error } func openURL(url string) tea.Cmd { return func() tea.Msg { + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() var cmd *exec.Cmd switch runtime.GOOS { case "darwin": - cmd = exec.Command("open", url) + cmd = exec.CommandContext(ctx, "open", url) case "windows": - cmd = exec.Command("cmd", "/c", "start", url) + cmd = exec.CommandContext(ctx, "cmd", "/c", "start", url) default: - cmd = exec.Command("xdg-open", url) + cmd = exec.CommandContext(ctx, "xdg-open", url) } return openURLMsg{err: cmd.Run()} } diff --git a/internal/tui/styles.go b/internal/tui/styles.go index 667055720..8abc31ec8 100644 --- a/internal/tui/styles.go +++ b/internal/tui/styles.go @@ -13,8 +13,11 @@ var ( BorderForeground(lipgloss.Color("#555555")) // Tree styles - treeSelectedStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#FF79C6")).Background(lipgloss.Color("#3B2D50")) - treeNormalStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#CCCCCC")) + treeSelectedStyle = lipgloss.NewStyle(). + Bold(true). + Foreground(lipgloss.Color("#FF79C6")). + Background(lipgloss.Color("#3B2D50")) + treeNormalStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("#CCCCCC")) // Entry styles entryNameStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("#50FA7B")) diff --git a/internal/tui/tree.go b/internal/tui/tree.go index 6394e669b..4e5ecc878 100644 --- a/internal/tui/tree.go +++ b/internal/tui/tree.go @@ -9,11 +9,11 @@ import ( // TreeNode represents a node in the category tree. type TreeNode struct { - Name string // display name (leaf segment, e.g. "Networking") - Path string // full path (e.g. "Container Operations > Networking") + Name string + Path string Children []*TreeNode - Expanded bool Entries []cache.HealthEntry + Expanded bool } // FlatNode is a visible tree node with its indentation depth. @@ -51,14 +51,15 @@ func BuildTree(entries []cache.HealthEntry) []*TreeNode { root := &TreeNode{Name: "root"} nodeMap := map[string]*TreeNode{} - for _, e := range entries { + for i := range entries { + e := &entries[i] cat := e.Category if cat == "" { cat = "Uncategorized" } node := ensureNode(root, nodeMap, cat) - node.Entries = append(node.Entries, e) + node.Entries = append(node.Entries, *e) } // Sort children at every level diff --git a/internal/tui/tree_test.go b/internal/tui/tree_test.go index 801223f9c..71c1fc01a 100644 --- a/internal/tui/tree_test.go +++ b/internal/tui/tree_test.go @@ -11,7 +11,12 @@ func TestBuildTree(t *testing.T) { {URL: "https://github.com/a/b", Name: "a/b", Category: "Projects > Networking", Description: "desc1"}, {URL: "https://github.com/c/d", Name: "c/d", Category: "Projects > Networking", Description: "desc2"}, {URL: "https://github.com/e/f", Name: "e/f", Category: "Projects > Security", Description: "desc3"}, - {URL: "https://github.com/g/h", Name: "g/h", Category: "Docker Images > Base Tools", Description: "desc4"}, + { + URL: "https://github.com/g/h", + Name: "g/h", + Category: "Docker Images > Base Tools", + Description: "desc4", + }, {URL: "https://github.com/i/j", Name: "i/j", Category: "", Description: "no category"}, } From dc2e5ecd01dc4476d167343f49e86b1408bf2856 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2026 10:57:04 +0200 Subject: [PATCH 306/327] chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 (#1460) Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...df4cb1c069e1874edd31b4311f1884172cec0e10) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index bbd17a003..72dce54b8 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -18,7 +18,7 @@ jobs: issues: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # ratchet:actions/checkout@v6 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index c447b2a4c..386b232e3 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # ratchet:actions/checkout@v6 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index fdc40be5d..fadcaffac 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -18,7 +18,7 @@ jobs: issues: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # ratchet:actions/checkout@v6 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 8e9bfb80f..1369ede6e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,7 +11,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # ratchet:actions/checkout@v6 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: From 1032fa425d0100bcb3d5881abe1ee944b0022e38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2026 10:57:28 +0200 Subject: [PATCH 307/327] chore(deps): bump charm.land/bubbletea/v2 from 2.0.6 to 2.0.7 (#1461) Bumps [charm.land/bubbletea/v2](https://github.com/charmbracelet/bubbletea) from 2.0.6 to 2.0.7. - [Release notes](https://github.com/charmbracelet/bubbletea/releases) - [Commits](https://github.com/charmbracelet/bubbletea/compare/v2.0.6...v2.0.7) --- updated-dependencies: - dependency-name: charm.land/bubbletea/v2 dependency-version: 2.0.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 16 ++++++---------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 91f986c6f..53e1cf056 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/veggiemonk/awesome-docker go 1.26.3 require ( - charm.land/bubbletea/v2 v2.0.6 + charm.land/bubbletea/v2 v2.0.7 charm.land/lipgloss/v2 v2.0.3 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 @@ -14,7 +14,7 @@ require ( require ( github.com/charmbracelet/colorprofile v0.4.3 // indirect - github.com/charmbracelet/ultraviolet v0.0.0-20260511121909-c840852527f3 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20260525132238-948f4557a654 // indirect github.com/charmbracelet/x/ansi v0.11.7 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect github.com/charmbracelet/x/termios v0.1.1 // indirect @@ -30,5 +30,5 @@ require ( github.com/spf13/pflag v1.0.10 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect golang.org/x/sync v0.20.0 // indirect - golang.org/x/sys v0.44.0 // indirect + golang.org/x/sys v0.45.0 // indirect ) diff --git a/go.sum b/go.sum index d004ca357..beab9ac04 100644 --- a/go.sum +++ b/go.sum @@ -1,15 +1,13 @@ -charm.land/bubbletea/v2 v2.0.6 h1:UHN/91OyuhaOFGSrBXQ/hMZD8IO1Uc4BvHlgHXL2WJo= -charm.land/bubbletea/v2 v2.0.6/go.mod h1:MH/D8ZLlN3op37vQvijKuU29g3rqTp+aQapURFonF9g= +charm.land/bubbletea/v2 v2.0.7 h1:7qw2tTAVar7m7klOPBYfTB0mniv/RuexsYwMRNxSeL0= +charm.land/bubbletea/v2 v2.0.7/go.mod h1:DGW2q8gvzHnOpMpZTORs0aySVHCox5C+2Svk0fci1qs= charm.land/lipgloss/v2 v2.0.3 h1:yM2zJ4Cf5Y51b7RHIwioil4ApI/aypFXXVHSwlM6RzU= charm.land/lipgloss/v2 v2.0.3/go.mod h1:7myLU9iG/3xluAWzpY/fSxYYHCgoKTie7laxk6ATwXA= github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= github.com/aymanbagabas/go-udiff v0.4.1/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q= -github.com/charmbracelet/ultraviolet v0.0.0-20260416155717-489999b90468 h1:Q9fO0y1Zo5KB/5Vu8JZoLGm1N3RzF9bNj3Ao3xoR+Ac= -github.com/charmbracelet/ultraviolet v0.0.0-20260416155717-489999b90468/go.mod h1:bAAz7dh/FTYfC+oiHavL4mX1tOIBZ0ZwYjSi3qE6ivM= -github.com/charmbracelet/ultraviolet v0.0.0-20260511121909-c840852527f3 h1:pxGjlWZFcRQMWAdtjRelpL3Gbu8iYIyuO3Eqbd037Ow= -github.com/charmbracelet/ultraviolet v0.0.0-20260511121909-c840852527f3/go.mod h1:SnKWaPaTnkTNXJgdgdquu66de12V8pW/b/qlTGaF9xg= +github.com/charmbracelet/ultraviolet v0.0.0-20260525132238-948f4557a654 h1:FpSYhY28ucg9ZRr+2wj67FAQ0Ey5yiK0072PmRDJNek= +github.com/charmbracelet/ultraviolet v0.0.0-20260525132238-948f4557a654/go.mod h1:hFpumms29Smx3LStRfku8vcCTBe1Kq8aCXtHUJa3mjY= github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI= github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ= github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA= @@ -56,10 +54,8 @@ golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= -golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= From bd365540255d012f962739a4a7db7190bb12ec5d Mon Sep 17 00:00:00 2001 From: Chris Richner Date: Sun, 14 Jun 2026 11:44:52 +0200 Subject: [PATCH 308/327] Add doco-cd to deployment tools list in README (#1471) * Add doco-cd to deployment tools list in README --------- Co-authored-by: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 325684c18..9361f188d 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,7 @@ Self-hosted and managed cloud platforms (PaaS/CaaS, deployment automation). Comm - [Cloud Run Compose](https://docs.cloud.google.com/run/docs/deploy-run-compose) - :yen: Deploy `docker-compose.yaml` files directly to Google Cloud Run as a managed service. - [Convox Rack](https://github.com/convox/rack) - Convox Rack is open source PaaS built on top of expert infrastructure automation and devops best practices. - [docker-to-iac](https://github.com/deploystackio/docker-to-iac) - Translate docker run and commit into Infrastructure as Code templates for AWS, Render.com and DigitalOcean. +- [doco-cd](https://github.com/kimdre/doco-cd) - Lightweight GitOps and Continuous Deployment tool to deploy Docker Compose projects and Swarm stacks using polling and webhooks. - [Dokku](https://github.com/dokku/dokku) - Docker powered mini-Heroku that helps you build and manage the lifecycle of applications. - [Exoframe](https://github.com/exoframejs/exoframe) - A self-hosted tool that allows simple one-command deployments using Docker. - [Giant Swarm](https://www.giantswarm.io/) - :yen: Simple microservice infrastructure. Deploy your containers in seconds. From 224f956e4aa79a86675f2e2facd828c18c672582 Mon Sep 17 00:00:00 2001 From: strmax195-hue Date: Mon, 15 Jun 2026 20:15:03 +0500 Subject: [PATCH 309/327] Add DockTUI to terminal tools (#1472) Co-authored-by: strmax195-hue --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9361f188d..b4fbc5206 100644 --- a/README.md +++ b/README.md @@ -384,6 +384,7 @@ TUIs, CLI tools, and shell integrations for Docker. - [dockly](https://github.com/lirantal/dockly) - An interactive shell UI for managing Docker containers. - [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface,. - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker. +- [DockTUI](https://github.com/strmax195-hue/docktui) - Fast, zero-dependency terminal dashboard for Docker and Compose. - [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers. - [easydocker](https://github.com/joao-zanutto/easydocker) - A Terminal UI highly inpired by k9s levaraging beatiful BubbleTea graphics. From f28dae9520209d87a1c374aef8e135ebecd4f21c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jun 2026 13:09:47 +0200 Subject: [PATCH 310/327] chore(deps): bump charm.land/lipgloss/v2 from 2.0.3 to 2.0.4 (#1475) Bumps [charm.land/lipgloss/v2](https://github.com/charmbracelet/lipgloss) from 2.0.3 to 2.0.4. - [Release notes](https://github.com/charmbracelet/lipgloss/releases) - [Commits](https://github.com/charmbracelet/lipgloss/compare/v2.0.3...v2.0.4) --- updated-dependencies: - dependency-name: charm.land/lipgloss/v2 dependency-version: 2.0.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 53e1cf056..e9aa5373e 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.26.3 require ( charm.land/bubbletea/v2 v2.0.7 - charm.land/lipgloss/v2 v2.0.3 + charm.land/lipgloss/v2 v2.0.4 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 github.com/yuin/goldmark v1.8.2 diff --git a/go.sum b/go.sum index beab9ac04..cdaa5e81c 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ charm.land/bubbletea/v2 v2.0.7 h1:7qw2tTAVar7m7klOPBYfTB0mniv/RuexsYwMRNxSeL0= charm.land/bubbletea/v2 v2.0.7/go.mod h1:DGW2q8gvzHnOpMpZTORs0aySVHCox5C+2Svk0fci1qs= -charm.land/lipgloss/v2 v2.0.3 h1:yM2zJ4Cf5Y51b7RHIwioil4ApI/aypFXXVHSwlM6RzU= -charm.land/lipgloss/v2 v2.0.3/go.mod h1:7myLU9iG/3xluAWzpY/fSxYYHCgoKTie7laxk6ATwXA= +charm.land/lipgloss/v2 v2.0.4 h1:lcPeVtcp23SNra7lHy8iYE4UC2aIipVQ47sbGyyxR5Q= +charm.land/lipgloss/v2 v2.0.4/go.mod h1:0653x8epbZSzdDfO/XPS1a/uYPOBeSsCssOpJOqDzik= github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= github.com/aymanbagabas/go-udiff v0.4.1/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= From dd56a5bdb9bdb1fedb1e758525e01addb7d5b9f4 Mon Sep 17 00:00:00 2001 From: Yu <125102186+imnotyu@users.noreply.github.com> Date: Mon, 22 Jun 2026 17:37:53 +0200 Subject: [PATCH 311/327] remove private videos (#1476) removed 3 links to videos that are now private or unavailable --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index b4fbc5206..c3d8dc360 100644 --- a/README.md +++ b/README.md @@ -611,9 +611,7 @@ Tools and applications that are either installed inside containers or designed t ## Videos -- [Contributing to Docker by Andrew "Tianon" Page (InfoSiftr)](https://www.youtube.com/watch?v=1jwo8-1HYYg) (34:31) - [Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic](https://www.youtube.com/watch?v=GpHMTR7P2Ms) (3:11:06) -- [Docker and SELinux by Daniel Walsh from Red Hat](https://www.youtube.com/watch?v=zWGFqMuEHdw) (40:23) - [Docker Course](https://www.youtube.com/watch?v=UZpyvK6UGFo) (Spanish) - [Docker for Developers](https://www.youtube.com/watch?v=FdkNAjjO5yQ) (54:26) - [Docker from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxD-btrjrqdEfQHbkZnQrmqE) (1:22:01) @@ -624,7 +622,6 @@ Tools and applications that are either installed inside containers or designed t - [Docker Swarm from scratch](https://www.youtube.com/playlist?list=PLLhEJK7fQIxAY4gZd1Wl-GsLvg-e9Ap1e) (1:41:28) - [Extending Docker with Plugins](https://vimeo.com/110835013) (15:21) - [From Local Docker Development to Production Deployments](https://www.youtube.com/watch?v=7CZFpHUPqXw) -- [Immutable Infrastructure with Docker and EC2 by Michael Bryzek (Gilt)](https://www.youtube.com/watch?v=GaHzdqFithc) (42:04) - [Introduction to Docker and containers](https://www.youtube.com/watch?v=ZVaRK10HBjo) (3:09:00) - [Logging on Docker: What You Need to Know](https://vimeo.com/123341629) (51:27) - [Performance Analysis of Docker - Jeremy Eder](https://www.youtube.com/watch?v=6f2E6PKYb0w) (1:36:58) From 7c2fa6b4a54f8c840e76574dbd01d9ffe1a3e97d Mon Sep 17 00:00:00 2001 From: Manuel Schmid <9307310+mashb1t@users.noreply.github.com> Date: Mon, 22 Jun 2026 17:45:47 +0200 Subject: [PATCH 312/327] feat: add resq to category storage (#1473) * feat: add resq to category storage also cleanup entries to restore alphabetical sort order * refactor: reword resq entry Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Julien Bisconti --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c3d8dc360..1fe067340 100644 --- a/README.md +++ b/README.md @@ -303,11 +303,12 @@ Container-aware reverse proxies, ingress, and TLS-terminating front-ends with au ## Storage & Data -- [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. - [Docker Volume Backup](https://github.com/offen/docker-volume-backup) Backup Docker volumes locally or to any S3 compatible storage. +- [Label Backup](https://github.com/resulgg/label-backup) - A lightweight, Docker-aware backup agent that automatically discovers and backs up containerized databases (PostgreSQL, MySQL, MongoDB, Redis) based on Docker labels. Supports local storage and S3-compatible destinations with flexible scheduling via cron expressions. - [Netshare](https://github.com/ContainX/docker-volume-netshare) Docker NFS, AWS EFS, Ceph & Samba/CIFS Volume Plugin. - [portworx](https://portworx.com) - :yen: Decentralized storage solution for persistent, shared and replicated volumes. - [quobyte](https://www.quobyte.com/) - :yen: Fully fault-tolerant distributed file system with a docker volume driver. +- [resq](https://github.com/mashb1t/resq) - Restic-powered Docker backups for volumes, databases, and .env files, with or without stopping containers. Works with local, SSH, or any S3 compatible storage. - [REX-Ray](https://github.com/rexray/rexray) provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos. ## Observability From d6b57005e061ebdc8639c72989bd13b9498fb876 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 18:10:51 +0200 Subject: [PATCH 313/327] chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 (#1478) Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index 72dce54b8..f40928b47 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -18,7 +18,7 @@ jobs: issues: write steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # ratchet:actions/checkout@v6 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 386b232e3..27dcde04d 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # ratchet:actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index fadcaffac..0f49c70da 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -18,7 +18,7 @@ jobs: issues: write steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # ratchet:actions/checkout@v6 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 1369ede6e..e67984f37 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,7 +11,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # ratchet:actions/checkout@v6 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 with: From db6c71f771161532dd78290b396b37833249d811 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 18:14:51 +0200 Subject: [PATCH 314/327] chore(deps): bump actions/setup-go from 6.4.0 to 6.5.0 (#1479) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.4.0 to 6.5.0. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/4a3601121dd01d1626a1e23e37211e3254c1c06c...924ae3a1cded613372ab5595356fb5720e22ba16) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: 6.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/broken_links.yml | 2 +- .github/workflows/deploy-pages.yml | 2 +- .github/workflows/health_report.yml | 2 +- .github/workflows/pull_request.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken_links.yml b/.github/workflows/broken_links.yml index f40928b47..74b5b2dc5 100644 --- a/.github/workflows/broken_links.yml +++ b/.github/workflows/broken_links.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 + - uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # ratchet:actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 27dcde04d..1c75a1354 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -22,7 +22,7 @@ jobs: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 + - uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # ratchet:actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/health_report.yml b/.github/workflows/health_report.yml index 0f49c70da..44e26d5ae 100644 --- a/.github/workflows/health_report.yml +++ b/.github/workflows/health_report.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 + - uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # ratchet:actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index e67984f37..7224e4071 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # ratchet:actions/setup-go@v6 + - uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # ratchet:actions/setup-go@v6 with: go-version-file: go.mod From 8e4a83535d440d1283edd3ae57a9d1a9079224fb Mon Sep 17 00:00:00 2001 From: Youssef Bourourou Date: Thu, 2 Jul 2026 17:03:55 +0100 Subject: [PATCH 315/327] Add self-hosted-runner to CI/CD section (#1440) * Add self-hosted-runner to CI/CD section * Remove By XXX on self hosted runner --------- Co-authored-by: Youssef Bourourou Co-authored-by: Julien Bisconti --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1fe067340..4d7f56986 100644 --- a/README.md +++ b/README.md @@ -456,6 +456,7 @@ Self-hosted CI engines, build accelerators, and hosted services that target Dock - [Jaypore CI](https://github.com/theSage21/jaypore_ci) - Simple, very flexible, powerful CI / CD / automation system configured in Python. Offline and local first. - [Kraken CI](https://github.com/Kraken-CI/kraken) - Modern CI/CD, open-source, on-premise system that is highly scalable and focused on testing. One of its executors is Docker. Developed. - [Screwdriver](https://screwdriver.cd/) - :yen: Yahoo's OpenSource buildplatform designed for Continous Delivery. +- [Self Hosted Runner](https://github.com/youssefbrr/self-hosted-runner) - Dockerized solution for setting up a self-hosted GitHub Actions runner with support for Linux, macOS, and Windows. - [Semaphore CI](https://semaphore.io/) - :yen: High-performance cloud CI that builds, tests and ships containers to production. - [Skipper](https://github.com/Stratoscale/skipper) - Easily dockerize your Git repository. - [Tekton CD](https://tekton.dev/) - A cloud-native pipeline resource. From 261463463330a13005ff926d7f3fe6c8b0387e8a Mon Sep 17 00:00:00 2001 From: MOHAMMED HANAN M T P <91409429+hanu-14@users.noreply.github.com> Date: Sat, 18 Jul 2026 15:26:02 +0530 Subject: [PATCH 316/327] fix: upgrade http:// to https:// in README (#1505) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4d7f56986..ad2e603d6 100644 --- a/README.md +++ b/README.md @@ -582,11 +582,11 @@ Tools and applications that are either installed inside containers or designed t ## Good Tips -- [Docker Caveats](http://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016). +- [Docker Caveats](https://docker-saigon.github.io/post/Docker-Caveats/) What You Should Know About Running Docker In Production (written 11 APRIL 2016). - [Docker Containers on the Desktop](https://blog.jessfraz.com/post/docker-containers-on-the-desktop/) - [Docker vs. VMs? Combining Both for Cloud Portability Nirvana](https://www.flexera.com/blog/finops/) - [Don't Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files](https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd) -- [GUI Apps with Docker](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) +- [GUI Apps with Docker](https://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/) ## Raspberry Pi & ARM From 0910a534e1e51a45f24d20326d93807f4f8e6eb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 11:58:16 +0200 Subject: [PATCH 317/327] chore(deps): bump charm.land/bubbletea/v2 from 2.0.7 to 2.0.8 (#1492) Bumps [charm.land/bubbletea/v2](https://github.com/charmbracelet/bubbletea) from 2.0.7 to 2.0.8. - [Release notes](https://github.com/charmbracelet/bubbletea/releases) - [Commits](https://github.com/charmbracelet/bubbletea/compare/v2.0.7...v2.0.8) --- updated-dependencies: - dependency-name: charm.land/bubbletea/v2 dependency-version: 2.0.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andreas Gebhardt --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index e9aa5373e..8e4bdd1d8 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/veggiemonk/awesome-docker go 1.26.3 require ( - charm.land/bubbletea/v2 v2.0.7 + charm.land/bubbletea/v2 v2.0.8 charm.land/lipgloss/v2 v2.0.4 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 @@ -14,7 +14,7 @@ require ( require ( github.com/charmbracelet/colorprofile v0.4.3 // indirect - github.com/charmbracelet/ultraviolet v0.0.0-20260525132238-948f4557a654 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20260703014108-f5a850f9c2b7 // indirect github.com/charmbracelet/x/ansi v0.11.7 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect github.com/charmbracelet/x/termios v0.1.1 // indirect @@ -29,6 +29,6 @@ require ( github.com/shurcooL/graphql v0.0.0-20240915155400-7ee5256398cf // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - golang.org/x/sync v0.20.0 // indirect - golang.org/x/sys v0.45.0 // indirect + golang.org/x/sync v0.21.0 // indirect + golang.org/x/sys v0.46.0 // indirect ) diff --git a/go.sum b/go.sum index cdaa5e81c..b6df3d84b 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,13 @@ -charm.land/bubbletea/v2 v2.0.7 h1:7qw2tTAVar7m7klOPBYfTB0mniv/RuexsYwMRNxSeL0= -charm.land/bubbletea/v2 v2.0.7/go.mod h1:DGW2q8gvzHnOpMpZTORs0aySVHCox5C+2Svk0fci1qs= +charm.land/bubbletea/v2 v2.0.8 h1:SxTJMhCAI3lbPmy4SgX5LWZ24AdINr4I6UEqzZvYJuY= +charm.land/bubbletea/v2 v2.0.8/go.mod h1:2SkdgoTXluXJHOUwAoRlRXF/28vklb1rFl6GcgV1/ss= charm.land/lipgloss/v2 v2.0.4 h1:lcPeVtcp23SNra7lHy8iYE4UC2aIipVQ47sbGyyxR5Q= charm.land/lipgloss/v2 v2.0.4/go.mod h1:0653x8epbZSzdDfO/XPS1a/uYPOBeSsCssOpJOqDzik= github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= github.com/aymanbagabas/go-udiff v0.4.1/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q= -github.com/charmbracelet/ultraviolet v0.0.0-20260525132238-948f4557a654 h1:FpSYhY28ucg9ZRr+2wj67FAQ0Ey5yiK0072PmRDJNek= -github.com/charmbracelet/ultraviolet v0.0.0-20260525132238-948f4557a654/go.mod h1:hFpumms29Smx3LStRfku8vcCTBe1Kq8aCXtHUJa3mjY= +github.com/charmbracelet/ultraviolet v0.0.0-20260703014108-f5a850f9c2b7 h1:3FmWoGNWK4STvqg0O0Aeav2T7rodWJAPeF0QpH+8gFw= +github.com/charmbracelet/ultraviolet v0.0.0-20260703014108-f5a850f9c2b7/go.mod h1:f/jRa757WUmaOZrbPspXymbg/GnbF+rwe4OLsG7aXYo= github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI= github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ= github.com/charmbracelet/x/exp/golden v0.0.0-20250806222409-83e3a29d542f h1:pk6gmGpCE7F3FcjaOEKYriCvpmIN4+6OS/RD0vm4uIA= @@ -52,10 +52,10 @@ golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= -golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= +golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= +golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= From 967377356cfae6195627ea13341f00446d33318d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 12:06:13 +0200 Subject: [PATCH 318/327] chore(deps): bump charm.land/lipgloss/v2 from 2.0.4 to 2.0.5 (#1493) Bumps [charm.land/lipgloss/v2](https://github.com/charmbracelet/lipgloss) from 2.0.4 to 2.0.5. - [Release notes](https://github.com/charmbracelet/lipgloss/releases) - [Commits](https://github.com/charmbracelet/lipgloss/compare/v2.0.4...v2.0.5) --- updated-dependencies: - dependency-name: charm.land/lipgloss/v2 dependency-version: 2.0.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8e4bdd1d8..89c408311 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.26.3 require ( charm.land/bubbletea/v2 v2.0.8 - charm.land/lipgloss/v2 v2.0.4 + charm.land/lipgloss/v2 v2.0.5 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 github.com/yuin/goldmark v1.8.2 diff --git a/go.sum b/go.sum index b6df3d84b..8592fc23f 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ charm.land/bubbletea/v2 v2.0.8 h1:SxTJMhCAI3lbPmy4SgX5LWZ24AdINr4I6UEqzZvYJuY= charm.land/bubbletea/v2 v2.0.8/go.mod h1:2SkdgoTXluXJHOUwAoRlRXF/28vklb1rFl6GcgV1/ss= -charm.land/lipgloss/v2 v2.0.4 h1:lcPeVtcp23SNra7lHy8iYE4UC2aIipVQ47sbGyyxR5Q= -charm.land/lipgloss/v2 v2.0.4/go.mod h1:0653x8epbZSzdDfO/XPS1a/uYPOBeSsCssOpJOqDzik= +charm.land/lipgloss/v2 v2.0.5 h1:kbNxgeeUOYv5J0YdpxFjfvf3dFvqH8Aci4zB6xqFtrY= +charm.land/lipgloss/v2 v2.0.5/go.mod h1:9oqhxt4yxIMe6q5A4kHr44DremZk7J9UNh74GlWa5nc= github.com/aymanbagabas/go-udiff v0.4.1 h1:OEIrQ8maEeDBXQDoGCbbTTXYJMYRCRO1fnodZ12Gv5o= github.com/aymanbagabas/go-udiff v0.4.1/go.mod h1:0L9PGwj20lrtmEMeyw4WKJ/TMyDtvAoK9bf2u/mNo3w= github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= From c312087f3f27c441fa517e012378de0488322631 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 12:10:04 +0200 Subject: [PATCH 319/327] chore(deps): bump github.com/yuin/goldmark from 1.8.2 to 1.8.4 (#1501) Bumps [github.com/yuin/goldmark](https://github.com/yuin/goldmark) from 1.8.2 to 1.8.4. - [Release notes](https://github.com/yuin/goldmark/releases) - [Commits](https://github.com/yuin/goldmark/compare/v1.8.2...v1.8.4) --- updated-dependencies: - dependency-name: github.com/yuin/goldmark dependency-version: 1.8.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andreas Gebhardt --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 89c408311..de1b0de72 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( charm.land/lipgloss/v2 v2.0.5 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 - github.com/yuin/goldmark v1.8.2 + github.com/yuin/goldmark v1.8.4 golang.org/x/oauth2 v0.36.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 8592fc23f..7f0c53e61 100644 --- a/go.sum +++ b/go.sum @@ -45,8 +45,8 @@ github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= -github.com/yuin/goldmark v1.8.2 h1:kEGpgqJXdgbkhcOgBxkC0X0PmoPG1ZyoZ117rDVp4zE= -github.com/yuin/goldmark v1.8.2/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= +github.com/yuin/goldmark v1.8.4 h1:oat/nd3U6NeQqFEL3xpEJq7d7c86NI+DbSNGAs4xnjA= +github.com/yuin/goldmark v1.8.4/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= From c3285c715c3e4cbab185cc7b283f1dd1fc04b0bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Mej=C3=ADa?= Date: Tue, 21 Jul 2026 23:14:30 +0200 Subject: [PATCH 320/327] Add pglayers to Base Images section (#1488) Pre-built PostgreSQL extensions as composable Docker layers. Assisted-by: GitHub Copilot:claude-opus-4.6 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad2e603d6..510c6f839 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,7 @@ Minimal, hardened, or purpose-built container base images. - [Chainguard Images](https://github.com/chainguard-images/images) - Minimal, signed, SBOM-attested container images built on Wolfi. - [distroless](https://github.com/GoogleContainerTools/distroless) - Language focused docker images, minus the operating system. - [melange](https://github.com/chainguard-dev/melange) - Build apk packages from declarative YAML for use with apko. +- [pglayers](https://github.com/pglayers/pglayers) - Pre-built PostgreSQL extensions as composable Docker layers. 50+ extensions, ready-to-use combined images (full, Azure-compatible). - [Wolfi](https://github.com/wolfi-dev/os) - Undistro Linux designed for containers; glibc-based, signed, daily SBOMs. From 8972f2ddc0b274656c685b83ad40fbd7668e3db8 Mon Sep 17 00:00:00 2001 From: Thomas DA ROCHA Date: Tue, 21 Jul 2026 23:14:41 +0200 Subject: [PATCH 321/327] Add Dofigen to Dockerfile list (#1487) Added Dofigen to the list of Dockerfile generators. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 510c6f839..2dc23e5b7 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ Minimal, hardened, or purpose-built container base images. - [Dockerfile Generator](https://github.com/ozankasikci/dockerfile-generator) `dfg` is both a Go library and an executable that produces valid Dockerfiles using various input channels. - [Dockershelf](https://github.com/Dockershelf/dockershelf) - A repository that serves as a collector for docker recipes that are universal, efficient and slim. Images are updated, tested and published daily via a Travis cron job. +- [Dofigen](https://github.com/lenra-io/dofigen) - A Dockerfile generator using a simplified description in YAML or JSON format. - [Trsuted Builds](https://dockerfile.github.io/) - Trusted Automated Docker Builds. Dockerfile Project maintains a central repository of Dockerfile for various popular open source software services runnable on a Docker container. ### Linter From 3d9585f39382125cbade5ae7638d04d9243b71ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20S=C3=A9rgio=20Amaral?= Date: Wed, 22 Jul 2026 06:14:50 +0900 Subject: [PATCH 322/327] Add dockup (#1484) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2dc23e5b7..c77bdd3ca 100644 --- a/README.md +++ b/README.md @@ -388,6 +388,7 @@ TUIs, CLI tools, and shell integrations for Docker. - [DockMate](https://github.com/shubh-io/dockmate) - Lightweight terminal-based Docker and Podman manager with a text-based user interface,. - [DockSTARTer](https://github.com/GhostWriters/DockSTARTer) - DockSTARTer helps you get started with home server apps running in Docker. - [DockTUI](https://github.com/strmax195-hue/docktui) - Fast, zero-dependency terminal dashboard for Docker and Compose. +- [dockup](https://github.com/paulo-amaral/dockup) - TUI to install, harden and maintain container runtimes: Docker Engine + Compose v2, NVIDIA Container Toolkit, Podman and Apple container, with a CIS-inspired security audit. - [dprs](https://github.com/durableprogramming/dprs) - A developer-focused TUI for managing Docker containers with real-time log streaming and container management. - [dry](https://github.com/moncho/dry) - An interactive CLI for Docker containers. - [easydocker](https://github.com/joao-zanutto/easydocker) - A Terminal UI highly inpired by k9s levaraging beatiful BubbleTea graphics. From 098a85c44efc4f541ac4b09b6254062fb92764eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Haksung=20Jang=20=28=EC=9E=A5=ED=95=99=EC=84=B1=29?= Date: Wed, 22 Jul 2026 06:14:57 +0900 Subject: [PATCH 323/327] Add BomLens to Image Scanning & SBOM (#1481) * Add BomLens to Image Scanning & SBOM Signed-off-by: Haksung Jang * docs: point BomLens link to renamed repo sktelecom/bomlens The repository was renamed from sktelecom/sbom-tools to sktelecom/bomlens. --------- Signed-off-by: Haksung Jang --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c77bdd3ca..0405e6202 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,7 @@ Image vulnerability scanners, SBOM generators, and digest pinning tools. Commerc - [Anchor](https://github.com/SongStitch/anchor/) - A tool to ensure reproducible builds by pinning dependencies inside your Dockerfiles. - [Anchor Enterprise](https://anchore.com/) - :yen: Analyze images for CVE vulnerabilities and against custom security policies. +- [BomLens](https://github.com/sktelecom/bomlens) - Scan container images (plus source, binaries, and firmware) into CycloneDX SBOMs with vulnerability, license, and notice reports. Ships as a single Docker image with a web UI. - [Clair](https://github.com/quay/clair) - Clair is an open source project for the static analysis of vulnerabilities in appc and docker containers. - [Docker Scout](https://github.com/docker/scout-cli) - Official Docker CLI for SBOM generation, vulnerability analysis, and policy evaluation. - [Grype](https://github.com/anchore/grype) - A vulnerability scanner for container images, filesystems and SBOMs. From 68c7b550a40a4efb7e9bb5ec223ab0701ce73342 Mon Sep 17 00:00:00 2001 From: Todd Matens Date: Tue, 21 Jul 2026 16:15:04 -0500 Subject: [PATCH 324/327] Add compose-lint to Security (#1466) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0405e6202..43ef4d438 100644 --- a/README.md +++ b/README.md @@ -349,6 +349,7 @@ Container hardening, runtime security, policy, compliance, and forensics. Self-h - [buildcage](https://github.com/dash14/buildcage) - Restricts outbound network access during Docker builds to prevent supply chain attacks, working as a drop-in BuildKit remote driver for Docker Buildx, with ready-to-use GitHub Actions. - [CetusGuard](https://github.com/hectorm/cetusguard) - CetusGuard is a tool that protects the Docker daemon socket by filtering calls to its API endpoints. - [Checkov](https://github.com/bridgecrewio/checkov) - Static analysis for infrastructure as code manifests (Terraform, Kubernetes, Cloudformation, Helm, Dockerfile, Kustomize) find security misconfiguration and fix them. +- [compose-lint](https://github.com/tmatens/compose-lint) - Lints Docker Compose files for security misconfigurations — privileged containers, unpinned images, Docker socket mounts, plaintext credentials — grounded in OWASP and the CIS Docker Benchmark. - [container-explorer](https://github.com/google/container-explorer) - Forensic utility to explore Docker and containerd container details from mounted disk images. - [Deepfence Threat Mapper](https://github.com/deepfence/ThreatMapper) - Powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. - [Den](https://github.com/us/den) - Self-hosted sandbox runtime for AI agents with Docker containers, security hardening, REST API and WebSocket support. From be32576c7a984d2494d27d6faa8c0a3c2ea4bc9e Mon Sep 17 00:00:00 2001 From: Ajay Kidave <130696958+akclace@users.noreply.github.com> Date: Tue, 21 Jul 2026 14:15:11 -0700 Subject: [PATCH 325/327] Added OpenRun to Deployment & Platforms (#1459) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 43ef4d438..2931280ff 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,7 @@ Self-hosted and managed cloud platforms (PaaS/CaaS, deployment automation). Comm - [Google Container Engine](https://docs.cloud.google.com/kubernetes-engine/docs) - :yen: Docker containers on Google Cloud Computing powered by [Kubernetes][kubernetes]. - [Grafeas](https://github.com/grafeas/grafeas) - A common API for metadata about containers, from image and build details to security vulnerabilities. - [Mesosphere DC/OS Platform](https://d2iq.com/products/dcos) - :yen: Integrated platform for data and containers built on Apache Mesos. +- [OpenRun](https://github.com/openrundev/openrun) - Builds, deploys, proxies, authenticates and auto-pauses web apps with Docker or Kubernetes. - [OpenShift][openshift] - An open source PaaS built on [Kubernetes][kubernetes] and optimized for Dockerized app development and deployment by [Red Hat](https://www.redhat.com/en) - [Red Hat OpenShift Dedicated](https://www.redhat.com/en/technologies/cloud-computing/openshift/dedicated) - :yen: Fully-managed Red Hat® OpenShift® service on Amazon Web Services and Google Cloud. - [swarm-ansible](https://github.com/LombardiDaniel/swarm-ansible?tab=readme-ov-file) - Swarm-Ansible bootstraps a production-ready swarm cluster using ansible. Comes with tools to automate CI, help monitoring and traefik pre-configured for SSL certificates and simple-auth. Comes with a private registry and more!. From 4e451dd40a5c7b1d058dc9230c8641c126fd8471 Mon Sep 17 00:00:00 2001 From: Rishi Baghel <100260148+rishibaghel25@users.noreply.github.com> Date: Wed, 22 Jul 2026 02:45:18 +0530 Subject: [PATCH 326/327] feat: add InfraCanvas to Observability (#1455) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2931280ff..19a400472 100644 --- a/README.md +++ b/README.md @@ -336,6 +336,7 @@ Monitor Docker hosts, containers, and the services running inside them. Self-hos - [Drydock](https://github.com/CodesWhat/drydock) - Container update monitoring with web dashboard, 23 registry providers, 20 notification triggers, and distributed agent architecture. - [Dynatrace](https://docs.dynatrace.com/docs/observe/infrastructure-observability/container-platform-monitoring) - :yen: Monitor containerized applications without installing agents or modifying your Run commands. - [Grafana Docker Dashboard Template](https://grafana.com/grafana/dashboards/179-docker-prometheus-monitoring/) - A template for your Docker, Grafana and Prometheus stack. +- [InfraCanvas](https://github.com/bytestrix/InfraCanvas) - Live visual map of containers, pods, volumes, and networks on any Linux server. Single binary, WebSocket-powered live updates. - [Maintenant](https://github.com/kolapsis/maintenant) - Self-discovering infrastructure monitoring for Docker and Kubernetes. Auto-detects containers via labels, with endpoint monitoring, heartbeats, TLS certificates, resource metrics, update intelligence, and a built-in status page. Single binary with embedded SPA. - [Middleware](https://middleware.io/) - :yen: Monitor Docker hosts, containers, logs, and application performance from a unified observability platform. - [Site24x7](https://www.site24x7.com/docker-monitoring.html) - :yen: Docker Monitoring for DevOps and IT, SaaS Pay-per-Host model. From 3a32c0f3903d364ae19ace52bb8ed96ceb7864fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jul 2026 00:24:31 +0200 Subject: [PATCH 327/327] chore(deps): bump github.com/yuin/goldmark from 1.8.4 to 1.8.5 (#1515) Bumps [github.com/yuin/goldmark](https://github.com/yuin/goldmark) from 1.8.4 to 1.8.5. - [Release notes](https://github.com/yuin/goldmark/releases) - [Commits](https://github.com/yuin/goldmark/compare/v1.8.4...v1.8.5) --- updated-dependencies: - dependency-name: github.com/yuin/goldmark dependency-version: 1.8.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index de1b0de72..2f7d4f108 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( charm.land/lipgloss/v2 v2.0.5 github.com/shurcooL/githubv4 v0.0.0-20260209031235-2402fdf4a9ed github.com/spf13/cobra v1.10.2 - github.com/yuin/goldmark v1.8.4 + github.com/yuin/goldmark v1.8.5 golang.org/x/oauth2 v0.36.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/go.sum b/go.sum index 7f0c53e61..cce82ccae 100644 --- a/go.sum +++ b/go.sum @@ -45,8 +45,8 @@ github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= -github.com/yuin/goldmark v1.8.4 h1:oat/nd3U6NeQqFEL3xpEJq7d7c86NI+DbSNGAs4xnjA= -github.com/yuin/goldmark v1.8.4/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= +github.com/yuin/goldmark v1.8.5 h1:r6N5afV5qj/5S4UTch8agZHJ8UxNCMwX7WjkkJam2NA= +github.com/yuin/goldmark v1.8.5/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=