Add category runtime

This commit is contained in:
Julien Bisconti 2020-04-13 19:59:09 +02:00
parent 7be832fc35
commit 78eb16540b
No known key found for this signature in database
GPG Key ID: 62772C6698F736CB
2 changed files with 38 additions and 18 deletions

View File

@ -1,4 +1,4 @@
# Awesome Docker [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Netlify Status](https://api.netlify.com/api/v1/badges/8ca86717-11ba-46d4-9d0a-700d8527f13b/deploy-status)](https://app.netlify.com/sites/awesome-docker/deploys) ![Travis Status](https://travis-ci.org/veggiemonk/awesome-docker.svg?branch=master) <!-- omit in toc --> # 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) ![Travis Status](https://travis-ci.org/veggiemonk/awesome-docker.svg?branch=master) <!-- omit in toc -->
> A curated list of Docker resources and projects > A curated list of Docker resources and projects
> Inspired by [@sindresorhus](https://github.com/sindresorhus)' [awesome][sindresorhus] and improved by these **[amazing contributors](https://github.com/veggiemonk/awesome-docker/graphs/contributors)**. > Inspired by [@sindresorhus](https://github.com/sindresorhus)' [awesome][sindresorhus] and improved by these **[amazing contributors](https://github.com/veggiemonk/awesome-docker/graphs/contributors)**.
@ -159,6 +159,7 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker)
- [kompose](https://github.com/kubernetes/kompose) - Go from Docker Compose to Kubernetes - [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 mulitiple Docker containers as single unit by [@tascanini](https://github.com/toscanini) - [Maestro](https://github.com/toscanini/maestro) :skull: - Maestro provides the ability to easily launch, orchestrate and manage mulitiple 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) - [percheron](https://github.com/ashmckenzie/percheron) :skull: - Organise your Docker containers with muscle and intelligence by [@ashmckenzie](https://github.com/ashmckenzie)
- [podman-compose](https://github.com/containers/podman-compose) - a script to run docker-compose.yml using podman by [@containers][containers]
- [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside docker. - [plash](https://github.com/ihucos/plash) - A container run and build engine - runs inside 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-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](https://github.com/grammarly). - [rocker](https://github.com/grammarly/rocker) :skull: - Extended Dockerfile builder. Supports multiple FROMs, MOUNTS, templates, etc. by [grammarly](https://github.com/grammarly).
@ -268,6 +269,14 @@ _Source:_ [What is Docker](https://www.docker.com/why-docker)
- [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://twitter.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) - [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
- [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 ### Security
- [Anchor Engine](https://github.com/anchore/anchore) - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore) - [Anchor Engine](https://github.com/anchore/anchore) - Analyze images for CVE vulnerabilities and against custom security policies by [@Anchor](https://github.com/anchore)
@ -346,6 +355,7 @@ Native desktop applications for managing and montoring docker hosts and clusters
- [reg](https://github.com/genuinetools/reg) - Docker registry v2 command line client by [@genuinetools][genuinetools] - [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) - [scuba](https://github.com/JonathonReinhart/scuba) - Transparently use Docker containers to encapsulate software build environments, by [@JonathonReinhart](https://github.com/JonathonReinhart)
- [sen](https://github.com/TomasTomecek/sen) - Terminal user interface for docker engine, by [@TomasTomecek](https://github.com/TomasTomecek) - [sen](https://github.com/TomasTomecek/sen) - Terminal user interface for docker engine, by [@TomasTomecek](https://github.com/TomasTomecek)
- [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) - [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) - [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) - Autocompletion and syntax highlighting for Docker commands. by [@j-bennet](https://github.com/j-bennet)
@ -397,7 +407,7 @@ Tools and applications that are either installed inside containers or designed t
Applications designed to help or simplify building **new** images Applications designed to help or simplify building **new** images
- [buildah](https://github.com/containers/buildah) - A tool that facilitates building OCI images by [@containers](https://github.com/containers) - [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) - [BuildKit](https://github.com/moby/buildkit) - Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit by [@moby project](https://github.com/moby)
- [container-diff](https://github.com/GoogleContainerTools/container-diff) - An image tool for comparing and analzying container images by [@GoogleContainerTools][googlecontainertools] - [container-diff](https://github.com/GoogleContainerTools/container-diff) - An image tool for comparing and analzying 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) - [container-factory](https://github.com/mutable/container-factory) - Produces Docker images from tarballs of application source code by [@mutable](https://github.com/mutable)
@ -753,6 +763,7 @@ Services to securely store your Docker images.
[calico]: https://github.com/projectcalico/calicoctl [calico]: https://github.com/projectcalico/calicoctl
[centurylinklabs]: https://github.com/CenturyLinkLabs [centurylinklabs]: https://github.com/CenturyLinkLabs
[containx]: https://github.com/ContainX [containx]: https://github.com/ContainX
[containers]: https://github.com/containers
[coreos]: https://github.com/coreos [coreos]: https://github.com/coreos
[cncf]: https://www.cncf.io [cncf]: https://www.cncf.io
[crazy-max]: https://github.com/crazy-max [crazy-max]: https://github.com/crazy-max

View File

@ -68,7 +68,7 @@ const find_duplicates = (arr) => {
const dup = []; const dup = [];
arr.forEach((e) => { arr.forEach((e) => {
if (hm[e]) dup.push(e); if (hm[e]) dup.push(e);
else hm[e] = null; else hm[e] = true;
}); });
return dup; return dup;
}; };
@ -93,9 +93,9 @@ async function batch_fetch({ arr, get, post_filter_func, BATCH_SIZE = 8 }) {
/* eslint-disable no-await-in-loop */ /* eslint-disable no-await-in-loop */
for (let i = 0; i < arr.length; i += BATCH_SIZE) { for (let i = 0; i < arr.length; i += BATCH_SIZE) {
const batch = arr.slice(i, i + BATCH_SIZE); const batch = arr.slice(i, i + BATCH_SIZE);
LOG.debug({ batch }); LOG.debug_string({ batch });
let res = await Promise.all(batch.map(get)); let res = await Promise.all(batch.map(get));
LOG.debug('batch fetched...'); console.log(`batch fetched...${i + BATCH_SIZE}`);
res = post_filter_func ? res.filter(post_filter_func) : res; res = post_filter_func ? res.filter(post_filter_func) : res;
LOG.debug_string({ res }); LOG.debug_string({ res });
result.push(...res); result.push(...res);
@ -159,48 +159,57 @@ async function main() {
let links = extract_all_links(markdown); let links = extract_all_links(markdown);
links = links.filter((l) => !exclude_from_list(l)); // exclude websites links = links.filter((l) => !exclude_from_list(l)); // exclude websites
LOG.debug_string({ links }); LOG.debug_string({ links });
console.log(`total links to check ${links.length}`);
console.log('checking for duplicates links...');
const duplicates = find_duplicates(links); const duplicates = find_duplicates(links);
if (duplicates.length > 0) { if (duplicates.length > 0) {
has_error.show = true; has_error.show = true;
has_error.duplicates = duplicates; has_error.duplicates = duplicates;
} }
const [github_links, other_links] = partition(links, (link) => LOG.debug_string({ duplicates });
const [github_links, external_links] = partition(links, (link) =>
link.startsWith('https://github.com'), link.startsWith('https://github.com'),
); );
const other_links_error = await batch_fetch({ console.log(`checking ${external_links.length} external links...`);
arr: other_links,
const external_links_error = await batch_fetch({
arr: external_links,
get: fetch_link, get: fetch_link,
post_filter_func: (x) => !x[1].ok, post_filter_func: (x) => !x[1].ok,
BATCH_SIZE: 8, BATCH_SIZE: 8,
}); });
if (other_links_error.length > 0) { if (external_links_error.length > 0) {
has_error.show = true; has_error.show = true;
has_error.other_links_error = other_links_error; has_error.other_links_error = external_links_error;
} }
console.log(`checking ${github_links.length} GitHub repositories...`);
const repos = extract_repos(github_links); const repos = extract_repos(github_links);
const query = generate_GQL_query(repos); const query = generate_GQL_query(repos);
const options = make_GQL_options(query); const options = make_GQL_options(query);
const gql_response = await fetch(GITHUB_GQL_API, options).then((r) => const gql_response = await fetch(GITHUB_GQL_API, options).then((r) =>
r.json(), r.json(),
); );
const { data } = gql_response;
if (gql_response.errors) { if (gql_response.errors) {
has_error.show = true; has_error.show = true;
has_error.github_repos = gql_response.errors; has_error.github_repos = gql_response.errors;
} }
console.log({
TEST_PASSED: has_error.show,
GITHUB_REPOSITORY: github_links.length,
EXTERNAL_LINKS: external_links.length,
});
if (has_error.show) { if (has_error.show) {
LOG.error_string(has_error); LOG.error_string(has_error);
process.exit(1); process.exit(1);
} }
// const repos_fetched = Object.entries(data)
// .map(([, /* k , */ v]) => v.nameWithOwner)
// .sort((a, b) => b - a);
console.log({ repos_fetched: data.length });
} }
console.log('starting...'); console.log('starting...');