Showing preview only (784K chars total). Download the full file or copy to clipboard to get everything.
Repository: docker-library/official-images
Branch: master
Commit: 65d4f89f3360
Files: 365
Total size: 705.8 KB
Directory structure:
gitextract_zs_h73wn/
├── .buildkit-build-contexts.sh
├── .external-pins/
│ ├── docker/
│ │ └── scout-sbom-indexer___1
│ ├── file.sh
│ ├── list.sh
│ ├── mcr.microsoft.com/
│ │ └── windows/
│ │ ├── nanoserver___ltsc2022
│ │ ├── nanoserver___ltsc2025
│ │ ├── servercore___ltsc2022
│ │ └── servercore___ltsc2025
│ ├── redhat/
│ │ ├── ubi10-minimal___latest
│ │ ├── ubi10___latest
│ │ ├── ubi8-minimal___latest
│ │ ├── ubi8___latest
│ │ ├── ubi9-minimal___latest
│ │ └── ubi9___latest
│ ├── tag.sh
│ ├── tianon/
│ │ └── buildkit___0.16
│ └── update.sh
├── .gitattributes
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE.md
│ └── workflows/
│ ├── .bashbrew/
│ │ └── action.yml
│ ├── generate.sh
│ ├── munge-pr.yml
│ ├── naughty.sh
│ └── test-pr.yml
├── .gitignore
├── CODE-OF-CONDUCT.md
├── Dockerfile
├── LICENSE
├── MAINTAINERS
├── NEW-IMAGE-CHECKLIST.md
├── README.md
├── SECURITY.md
├── _bashbrew-cat-sorted.sh
├── diff-pr.sh
├── library/
│ ├── adminer
│ ├── aerospike
│ ├── almalinux
│ ├── alpine
│ ├── alt
│ ├── amazoncorretto
│ ├── amazonlinux
│ ├── api-firewall
│ ├── arangodb
│ ├── archlinux
│ ├── azul-zulu
│ ├── backdrop
│ ├── bash
│ ├── bonita
│ ├── buildpack-deps
│ ├── busybox
│ ├── caddy
│ ├── cassandra
│ ├── chronograf
│ ├── cirros
│ ├── clearlinux
│ ├── clefos
│ ├── clickhouse
│ ├── clojure
│ ├── composer
│ ├── convertigo
│ ├── couchbase
│ ├── couchdb
│ ├── crate
│ ├── dart
│ ├── debian
│ ├── docker
│ ├── drupal
│ ├── eclipse-mosquitto
│ ├── eclipse-temurin
│ ├── eggdrop
│ ├── elasticsearch
│ ├── elixir
│ ├── emqx
│ ├── erlang
│ ├── fedora
│ ├── flink
│ ├── fluentd
│ ├── friendica
│ ├── gazebo
│ ├── gcc
│ ├── geonetwork
│ ├── ghost
│ ├── golang
│ ├── gradle
│ ├── groovy
│ ├── haproxy
│ ├── haskell
│ ├── haxe
│ ├── hello-world
│ ├── hitch
│ ├── httpd
│ ├── hylang
│ ├── ibm-semeru-runtimes
│ ├── ibmjava
│ ├── influxdb
│ ├── irssi
│ ├── jetty
│ ├── joomla
│ ├── jruby
│ ├── julia
│ ├── kapacitor
│ ├── kibana
│ ├── kong
│ ├── krakend
│ ├── lightstreamer
│ ├── liquibase
│ ├── logstash
│ ├── mageia
│ ├── mariadb
│ ├── matomo
│ ├── maven
│ ├── mediawiki
│ ├── memcached
│ ├── mongo
│ ├── mongo-express
│ ├── monica
│ ├── mysql
│ ├── nats
│ ├── neo4j
│ ├── neurodebian
│ ├── nextcloud
│ ├── nginx
│ ├── node
│ ├── notary
│ ├── odoo
│ ├── open-liberty
│ ├── openjdk
│ ├── oraclelinux
│ ├── orientdb
│ ├── percona
│ ├── perl
│ ├── photon
│ ├── php
│ ├── php-zendserver
│ ├── phpmyadmin
│ ├── plone
│ ├── postfixadmin
│ ├── postgres
│ ├── pypy
│ ├── python
│ ├── r-base
│ ├── rabbitmq
│ ├── rakudo-star
│ ├── redis
│ ├── redmine
│ ├── registry
│ ├── rethinkdb
│ ├── rocket.chat
│ ├── rockylinux
│ ├── ros
│ ├── ruby
│ ├── rust
│ ├── sapmachine
│ ├── satosa
│ ├── silverpeas
│ ├── solr
│ ├── sonarqube
│ ├── spark
│ ├── spiped
│ ├── storm
│ ├── swift
│ ├── swipl
│ ├── teamspeak
│ ├── telegraf
│ ├── tomcat
│ ├── tomee
│ ├── traefik
│ ├── ubuntu
│ ├── unit
│ ├── varnish
│ ├── websphere-liberty
│ ├── wordpress
│ ├── xwiki
│ ├── yourls
│ ├── znc
│ └── zookeeper
├── naughty-commits.sh
├── naughty-constraints.sh
├── naughty-from.sh
├── naughty-sharedtags.sh
├── pr-urls.sh
├── test/
│ ├── README.md
│ ├── clean.sh
│ ├── config.sh
│ ├── retry.sh
│ ├── run.sh
│ └── tests/
│ ├── cassandra-basics/
│ │ └── run.sh
│ ├── cheeky-retries.sh
│ ├── composer/
│ │ ├── composer.json
│ │ └── container.sh
│ ├── convertigo-hello-world/
│ │ └── run.sh
│ ├── dart-hello-world/
│ │ ├── container.dart
│ │ └── expected-std-out.txt
│ ├── debian-apt-get/
│ │ ├── container.sh
│ │ └── expected-std-out.txt
│ ├── docker-build.sh
│ ├── docker-dind/
│ │ └── run.sh
│ ├── docker-registry-push-pull/
│ │ └── run.sh
│ ├── eclipse-mosquitto-basics/
│ │ ├── mosquitto.conf
│ │ └── run.sh
│ ├── elixir-hello-world/
│ │ ├── container.exs
│ │ └── expected-std-out.txt
│ ├── erlang-hello-world/
│ │ ├── container.erl
│ │ └── expected-std-out.txt
│ ├── gcc-c-hello-world/
│ │ ├── container.c
│ │ └── expected-std-out.txt
│ ├── gcc-cpp-hello-world/
│ │ ├── container.cpp
│ │ └── expected-std-out.txt
│ ├── ghost-basics/
│ │ └── run.sh
│ ├── golang-hello-world/
│ │ ├── container.go
│ │ ├── expected-std-out.txt
│ │ └── run.sh
│ ├── haproxy-basics/
│ │ ├── haproxy.cfg
│ │ └── run.sh
│ ├── haskell-cabal/
│ │ └── container.sh
│ ├── haskell-ghci/
│ │ └── container.sh
│ ├── haskell-runhaskell/
│ │ ├── container.hs
│ │ └── expected-std-out.txt
│ ├── haskell-stack/
│ │ └── container.sh
│ ├── haxe-haxelib-install/
│ │ └── Container.hx
│ ├── haxe-hello-world/
│ │ ├── Container.hx
│ │ └── expected-std-out.txt
│ ├── hylang-hello-world/
│ │ ├── container.hy
│ │ └── expected-std-out.txt
│ ├── hylang-sh/
│ │ ├── container.hy
│ │ └── expected-std-out.txt
│ ├── image-name.sh
│ ├── java-ca-certificates/
│ │ └── container.java
│ ├── java-hello-world/
│ │ ├── container.java
│ │ └── expected-std-out.txt
│ ├── java-uimanager-font/
│ │ └── container.java
│ ├── jetty-hello-web/
│ │ ├── index.jsp
│ │ └── run.sh
│ ├── julia-downloads/
│ │ └── container.jl
│ ├── julia-hello-world/
│ │ ├── container.jl
│ │ └── expected-std-out.txt
│ ├── logstash-basics/
│ │ └── run.sh
│ ├── matomo-apache-run/
│ │ └── run.sh
│ ├── matomo-fpm-run/
│ │ └── run.sh
│ ├── memcached-basics/
│ │ └── run.sh
│ ├── mongo-basics/
│ │ └── run.sh
│ ├── mongo-express-run/
│ │ └── run.sh
│ ├── monica-apache-run/
│ │ └── run.sh
│ ├── monica-cli/
│ │ └── run.sh
│ ├── monica-cli-mariadb10/
│ │ └── run.sh
│ ├── monica-cli-mysql8/
│ │ └── run.sh
│ ├── monica-fpm-run/
│ │ └── run.sh
│ ├── mysql-basics/
│ │ └── run.sh
│ ├── mysql-initdb/
│ │ ├── initdb.sql
│ │ └── run.sh
│ ├── mysql-log-bin/
│ │ └── run.sh
│ ├── nextcloud-apache-run/
│ │ └── real-run.sh
│ ├── nextcloud-cli/
│ │ └── run.sh
│ ├── nextcloud-cli-mysql/
│ │ └── run.sh
│ ├── nextcloud-cli-postgres/
│ │ └── run.sh
│ ├── nextcloud-cli-sqlite/
│ │ └── run.sh
│ ├── nextcloud-fpm-run/
│ │ └── real-run.sh
│ ├── no-hard-coded-passwords/
│ │ └── run.sh
│ ├── node-hello-world/
│ │ ├── container.js
│ │ └── expected-std-out.txt
│ ├── nuxeo-basics/
│ │ └── run.sh
│ ├── nuxeo-conf/
│ │ ├── expected-std-out.txt
│ │ └── run.sh
│ ├── open-liberty-hello-world/
│ │ └── run.sh
│ ├── override-cmd/
│ │ └── run.sh
│ ├── percona-rocksdb/
│ │ └── run.sh
│ ├── percona-tokudb/
│ │ └── run.sh
│ ├── perl-cpanm/
│ │ └── container.sh
│ ├── perl-hello-world/
│ │ ├── container.pl
│ │ └── expected-std-out.txt
│ ├── php-apache-hello-web/
│ │ └── run.sh
│ ├── php-argon2/
│ │ └── container.php
│ ├── php-ext-install/
│ │ └── container.sh
│ ├── php-fpm-hello-web/
│ │ ├── index.php
│ │ └── run.sh
│ ├── php-hello-world/
│ │ ├── container.php
│ │ └── expected-std-out.txt
│ ├── plone-addons/
│ │ ├── expected-std-out.txt
│ │ └── run.sh
│ ├── plone-basics/
│ │ └── run.sh
│ ├── plone-cors/
│ │ ├── expected-std-out.txt
│ │ └── run.sh
│ ├── plone-versions/
│ │ ├── expected-std-out.txt
│ │ └── run.sh
│ ├── plone-zeoclient/
│ │ └── run.sh
│ ├── plone-zeosite/
│ │ ├── expected-std-out.txt
│ │ └── run.sh
│ ├── postfixadmin-apache-run/
│ │ └── run.sh
│ ├── postfixadmin-fpm-run/
│ │ └── run.sh
│ ├── postgres-basics/
│ │ └── run.sh
│ ├── postgres-initdb/
│ │ ├── initdb.sql
│ │ └── run.sh
│ ├── python-imports/
│ │ └── container.py
│ ├── python-no-pyc/
│ │ ├── container.cmd
│ │ └── container.sh
│ ├── python-pip-requests-ssl/
│ │ └── container.py
│ ├── python-sqlite3/
│ │ └── container.py
│ ├── python-stack-size/
│ │ └── container.py
│ ├── rabbitmq-basics/
│ │ ├── receive.py
│ │ ├── run.sh
│ │ ├── send.py
│ │ └── testconn.py
│ ├── rabbitmq-tls/
│ │ ├── inet-dist-tls.config
│ │ ├── rabbitmq-env.conf
│ │ ├── rabbitmq.conf
│ │ └── run.sh
│ ├── redis-basics/
│ │ └── run.sh
│ ├── redis-basics-config/
│ │ └── run.sh
│ ├── redis-basics-persistent/
│ │ └── run.sh
│ ├── redmine-basics/
│ │ └── run.sh
│ ├── ruby-binstubs/
│ │ ├── Gemfile
│ │ └── container.sh
│ ├── ruby-bundler/
│ │ ├── Gemfile
│ │ └── container.sh
│ ├── ruby-gems/
│ │ └── container.sh
│ ├── ruby-hello-world/
│ │ ├── container.rb
│ │ └── expected-std-out.txt
│ ├── ruby-native-extension/
│ │ ├── expected-std-out.txt
│ │ └── run.sh
│ ├── ruby-nonroot/
│ │ ├── Gemfile
│ │ └── run.sh
│ ├── ruby-standard-libs/
│ │ ├── container.rb
│ │ └── expected-std-out.txt
│ ├── run-bash-in-container.sh
│ ├── run-dart-in-container.sh
│ ├── run-elixir-in-container.sh
│ ├── run-erlang-in-container.sh
│ ├── run-g++-in-container.sh
│ ├── run-gcc-in-container.sh
│ ├── run-go-in-container.sh
│ ├── run-haskell-in-container.sh
│ ├── run-haxe-in-container.sh
│ ├── run-hy-in-container.sh
│ ├── run-in-container.sh
│ ├── run-java-in-container.sh
│ ├── run-julia-in-container.sh
│ ├── run-node-in-container.sh
│ ├── run-perl-in-container.sh
│ ├── run-php-in-container.sh
│ ├── run-python-in-container.sh
│ ├── run-ruby-in-container.sh
│ ├── run-rust-in-container.sh
│ ├── run-sh-in-container.sh
│ ├── run-swift-in-container.sh
│ ├── run-swipl-in-container.sh
│ ├── rust-hello-world/
│ │ ├── container/
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── main.rs
│ │ └── expected-std-out.txt
│ ├── silverpeas-basics/
│ │ └── run.sh
│ ├── spiped-basics/
│ │ └── run.sh
│ ├── swift-hello-world/
│ │ ├── container.swift
│ │ └── expected-std-out.txt
│ ├── swipl-modules/
│ │ ├── container.pl
│ │ └── expected-std-out.txt
│ ├── tomcat-hello-world/
│ │ ├── index.jsp
│ │ └── run.sh
│ ├── utc/
│ │ ├── expected-std-out.txt
│ │ └── run.sh
│ ├── varnish/
│ │ └── run.sh
│ ├── wordpress-apache-run/
│ │ └── run.sh
│ ├── wordpress-fpm-run/
│ │ └── run.sh
│ ├── znc-basics/
│ │ └── run.sh
│ └── zookeeper-basics/
│ └── run.sh
└── toc.sh
================================================
FILE CONTENTS
================================================
================================================
FILE: .buildkit-build-contexts.sh
================================================
#!/usr/bin/env bash
set -Eeuo pipefail
# given a list of image references, returns an appropriate list of "ref=docker-image://foo@sha256:xxx" for the current architecture
dir="$(dirname "$BASH_SOURCE")"
[ -n "$BASHBREW_ARCH" ]
archNamespace=
die() {
echo >&2 "error: $*"
exit 1
}
for img; do
lookup=
case "$img" in
*@sha256:*)
lookup="$img"
;;
*/*)
file="$("$dir/.external-pins/file.sh" "$img")" || die "'$img': failed to look up external pin file"
digest="$(< "$file")" || die "'$img': failed to read external pin file ('$file')"
[ -n "$digest" ] || die "'$img': empty external pin file ('$file')"
lookup="${img%@*}@$digest" # img should never have an @ in it here, but just in case
;;
*)
[ -n "$BASHBREW_ARCH_NAMESPACES" ] || die 'missing BASHBREW_ARCH_NAMESPACES'
archNamespace="${archNamespace:-$(bashbrew cat --format '{{ archNamespace arch }}' "$dir/library/hello-world")}"
[ -n "$archNamespace" ] || die "failed to get arch namespace for '$BASHBREW_ARCH'"
lookup="$archNamespace/$img"
;;
esac
[ -n "$lookup" ] || die "'$img': failed to determine what image to query"
json="$(bashbrew remote arches --json "$lookup" || die "'$img': failed lookup ('$lookup')")"
digests="$(jq <<<"$json" -r '.arches[env.BASHBREW_ARCH] // [] | map(.digest | @sh) | join(" ")')"
eval "digests=( $digests )"
if [ "${#digests[@]}" -gt 1 ]; then
echo >&2 "warning: '$lookup' has ${#digests[@]} images for '$BASHBREW_ARCH'; returning only the first"
fi
for digest in "${digests[@]}"; do
echo "$img=docker-image://${lookup%@*}@$digest"
continue 2
done
digest="$(jq <<<"$json" -r '.desc.digest')"
arches="$(jq <<<"$json" -r '.arches | keys | join(" ")')"
die "'$img': no appropriate digest for '$BASHBREW_ARCH' found in '$lookup' ('$digest'; arches '$arches')"
done
================================================
FILE: .external-pins/docker/scout-sbom-indexer___1
================================================
sha256:13c89fb6085aceb41f9556825c59d957917a3be670e3493598bd1f7f2a49f2fe
================================================
FILE: .external-pins/file.sh
================================================
#!/usr/bin/env bash
set -Eeuo pipefail
# given an image (name:tag), return the appropriate filename
dir="$(dirname "$BASH_SOURCE")"
for img; do
if [[ "$img" != *:* ]]; then
echo >&2 "error: '$img' does not contain ':' -- this violates our assumptions! (did you mean '$img:latest' ?)"
exit 1
fi
imgFile="$dir/${img/:/___}" # see ".external-pins/list.sh"
echo "$imgFile"
done
================================================
FILE: .external-pins/list.sh
================================================
#!/usr/bin/env bash
set -Eeuo pipefail
dir="$(dirname "$BASH_SOURCE")"
find "$dir" -mindepth 2 -type f -printf '%P\n' | sed -e 's/___/:/' | sort
# assumptions which make the "___" -> ":" conversion ~safe (examples referencing "example.com/foo/bar:baz"):
#
# 1. we *always* specify a tag ("baz")
# 2. the domain ("example.com") cannot contain underscores
# 3. we do not pin to any registry with a non-443 port ("example.com:8443")
# 4. the repository ("foo/bar") can only contain singular or double underscores (never triple underscore), and only between alphanumerics (thus never right up next to ":")
# 5. we do *not* use the "g" regex modifier in our sed, which means only the first instance of triple underscore is replaced (in pure Bash, that's "${img/:/___}" or "${img/___/:}" depending on the conversion direction)
#
# see https://github.com/distribution/distribution/blob/411d6bcfd2580d7ebe6e346359fa16aceec109d5/reference/regexp.go
# (see also https://github.com/docker-library/perl-bashbrew/blob/6685582f7889ef4806f0544b93f10640c7608b1a/lib/Bashbrew/RemoteImageRef.pm#L9-L26 for a condensed version)
#
# see https://github.com/docker-library/official-images/issues/13608 for why we can't just use ":" as-is (even though Linux, macOS, and even Windows via MSYS / WSL2 don't have any issues with it)
================================================
FILE: .external-pins/mcr.microsoft.com/windows/nanoserver___ltsc2022
================================================
sha256:be41510eb214c55def9162ef1fb5e71f1b71ce4d64d91bc963199f2383e034ea
================================================
FILE: .external-pins/mcr.microsoft.com/windows/nanoserver___ltsc2025
================================================
sha256:8e76dda6e26aeee6dd741d9d92cd44f9965e209dcc30b7e90b58d37c63d37cd9
================================================
FILE: .external-pins/mcr.microsoft.com/windows/servercore___ltsc2022
================================================
sha256:d4c6d1a8a1a306b12691c3b2e5e3a8bfad786cbd6b7831cd74a9a6a99eab08ad
================================================
FILE: .external-pins/mcr.microsoft.com/windows/servercore___ltsc2025
================================================
sha256:a4d6cb8427e90fd15e39bef29e0e800465989793d2a0826d3b7ceba78af0fe34
================================================
FILE: .external-pins/redhat/ubi10-minimal___latest
================================================
sha256:fa956af586b367c3366ac4376c3ee42a1141792b482e77d57aefb813f740f04d
================================================
FILE: .external-pins/redhat/ubi10___latest
================================================
sha256:17296ded9ab581e9a9019a71e15576c0a99813d8870eb6758e32b5bf93c5ff71
================================================
FILE: .external-pins/redhat/ubi8-minimal___latest
================================================
sha256:1352e7792cd20b906b6f3326f2ce714ae9f2ccf6ba06e7132759afa5efe26e3b
================================================
FILE: .external-pins/redhat/ubi8___latest
================================================
sha256:28a85f76ad1ea0a46a81a934b02fff48d75541f77777be403d48b6bb99a363ad
================================================
FILE: .external-pins/redhat/ubi9-minimal___latest
================================================
sha256:83006d535923fcf1345067873524a3980316f51794f01d8655be55d6e9387183
================================================
FILE: .external-pins/redhat/ubi9___latest
================================================
sha256:05fa0100593c08b5e9dde684cd3eaa94b4d5d7b3cc09944f1f73924e49fde036
================================================
FILE: .external-pins/tag.sh
================================================
#!/usr/bin/env bash
set -Eeuo pipefail
# given a filename, return the appropriate image (name:tag)
origDir="$(dirname "$BASH_SOURCE")"
dir="$(readlink -ve "$origDir")"
for file; do
abs="$(readlink -vm "$file")"
rel="${abs#$dir/}"
rel="${rel##*.external-pins/}" # in case we weren't inside "$dir" but the path is legit
if [ "$rel" = "$abs" ]; then
echo >&2 "error: '$file' is not within '$origDir'"
echo >&2 "('$abs' vs '$dir')"
exit 1
fi
img="${rel/___/:}" # see ".external-pins/list.sh"
if [ "$img" = "$rel" ]; then
echo >&2 "error: '$file' does not contain ':' ('___') -- this violates our assumptions!"
exit 1
fi
echo "$img"
done
================================================
FILE: .external-pins/tianon/buildkit___0.16
================================================
sha256:cb0ffa514974dcb631ee9f0be10b6ead0c0625bf12524bca3a673fdd79a0b62e
================================================
FILE: .external-pins/update.sh
================================================
#!/usr/bin/env bash
set -Eeuo pipefail
dir="$(dirname "$BASH_SOURCE")"
if [ "$#" -eq 0 ]; then
images="$("$dir/list.sh")"
set -- $images
fi
for img; do
echo -n "$img -> "
if [[ "$img" != *:* ]]; then
echo >&2 "error: '$img' does not contain ':' -- this violates our assumptions! (did you mean '$img:latest' ?)"
exit 1
fi
digest="$(bashbrew remote arches --json "$img" | jq -r '.desc.digest')"
imgFile="$("$dir/file.sh" "$img")"
imgDir="$(dirname "$imgFile")"
mkdir -p "$imgDir"
echo "$digest" | tee "$imgFile"
done
================================================
FILE: .gitattributes
================================================
# https://github.com/actions/checkout/issues/135#issuecomment-613361104
* text eol=lf
================================================
FILE: .github/CODEOWNERS
================================================
* @docker-library/maintainers
# give Laurent a bit more responsibility / authority on images where he's comfortable and knowledgeable 🎉
/library/bash @LaurentGoderre @docker-library/maintainers
/library/docker @LaurentGoderre @docker-library/maintainers
/library/express-gateway @LaurentGoderre @docker-library/maintainers
/library/ghost @LaurentGoderre @docker-library/maintainers
/library/httpd @LaurentGoderre @docker-library/maintainers
/library/kong @LaurentGoderre @docker-library/maintainers
/library/mongo @LaurentGoderre @docker-library/maintainers
/library/mongo-express @LaurentGoderre @docker-library/maintainers
/library/nginx @LaurentGoderre @docker-library/maintainers
/library/node @LaurentGoderre @docker-library/maintainers
/library/oraclelinux @LaurentGoderre @docker-library/maintainers
/library/postgres @LaurentGoderre @docker-library/maintainers
/library/python @LaurentGoderre @docker-library/maintainers
/library/rabbitmq @LaurentGoderre @docker-library/maintainers
/library/redis @LaurentGoderre @docker-library/maintainers
/library/redmine @LaurentGoderre @docker-library/maintainers
/library/registry @LaurentGoderre @docker-library/maintainers
/library/ruby @LaurentGoderre @docker-library/maintainers
/library/traefik @LaurentGoderre @docker-library/maintainers
/library/ubuntu @LaurentGoderre @docker-library/maintainers
# make sure we check with Laurent before we update our SBOM indexer (he follows and is involved in those releases more closely than the rest of us) 👀
/.external-pins/docker/scout-sbom-indexer* @LaurentGoderre
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
<!--
WAIT! Before you file an issue here, please keep in mind that your issue is _probably_ more appropriately filed somewhere else.
Specifically, if your issue is in regards to the documentation of an image, it should be filed at https://github.com/docker-library/docs/issues
If your issue is in regards to a specific image, please see the "Issues" section of the relevant image's description on the Docker Hub for information about where to file issues for that image. For example, issues with the "python" image should be filed at https://github.com/docker-library/python/issues, NOT here.
-->
================================================
FILE: .github/workflows/.bashbrew/action.yml
================================================
# https://github.com/docker-library/official-images/pull/13556#issuecomment-1319181339 🙈
name: 'Shared Bashbrew Action'
description: 'Install the same version of Bashbrew consistently in all other GitHub Actions'
inputs:
build:
default: 'host' # or 'docker' or 'none'
runs:
using: 'composite'
steps:
# these two version numbers are intentionally as close together as I could possibly get them because no matter what I tried, GitHub will not allow me to DRY them (can't have any useful variables in `uses:` and can't even have YAML references to steal it in `env:` or something)
# https://github.com/docker-library/bashbrew/releases
- shell: 'bash -Eeuo pipefail -x {0}'
run: echo BASHBREW_VERSION=v0.1.14 >> "$GITHUB_ENV"
- uses: docker-library/bashbrew@v0.1.14
if: inputs.build == 'host'
- run: docker build --pull --tag oisupport/bashbrew:base "https://github.com/docker-library/bashbrew.git#$BASHBREW_VERSION"
shell: 'bash -Eeuo pipefail -x {0}'
if: inputs.build == 'docker'
================================================
FILE: .github/workflows/generate.sh
================================================
#!/usr/bin/env bash
set -Eeuo pipefail
#
# NOTE: this is *not* a good example for integrating these tests into your own repository!
# If you want that, check out https://github.com/docker-library/golang/blob/3f2c52653043f067156ce4f41182c2a758c4c857/.github/workflows/ci.yml instead.
#
[ -d "$BASHBREW_SCRIPTS/github-actions" ]
if [ "$#" -eq 0 ]; then
git fetch --quiet https://github.com/docker-library/official-images.git master
changes="$(git diff --no-renames --name-only --diff-filter='d' FETCH_HEAD...HEAD -- library/)"
repos="$(xargs -rn1 basename <<<"$changes")"
set -- $repos
fi
strategy='{}'
for repo; do
newStrategy="$(GITHUB_REPOSITORY="$repo" GENERATE_STACKBREW_LIBRARY='cat "library/$GITHUB_REPOSITORY"' "$BASHBREW_SCRIPTS/github-actions/generate.sh")"
newStrategy="$(jq -c --arg repo "$repo" '.matrix.include = [
.matrix.include[]
| ([ .meta.entries[].tags[0] ]) as $tags
| .name = ($tags | join(", "))
# replace "build" steps with something that uses "bashbrew" instead of "docker build"
# https://github.com/docker-library/bashbrew/blob/20b5a50a4eafee1e92fadca5f9cbbce6b16d80b1/scripts/github-actions/generate.sh#L79-L105
| .runs.build = (
(if .os | startswith("windows-") then "export BASHBREW_ARCH=windows-amd64 BASHBREW_CONSTRAINTS=" + ([ .meta.entries[].constraints[] ] | join(", ") | @sh) + "\n" else "" end)
+ "export BASHBREW_LIBRARY=\"$PWD/library\"\n"
+ ([ $tags[] | "bashbrew build " + @sh ] | join("\n"))
)
# use our local clone of official-images for running tests (so test changes can be tested too, if they live in the PR with the image change)
# https://github.com/docker-library/bashbrew/blob/a40a54d4d81b9fd2e39b4d7ba3fe203e8b022a67/scripts/github-actions/generate.sh#L95
| .runs.test |= gsub("[^\n\t ]+/run[.]sh "; "./test/run.sh ")
]' <<<"$newStrategy")"
jq -c . <<<"$newStrategy" > /dev/null # sanity check
strategy="$(jq -c '
# https://stackoverflow.com/a/53666584/433558
def meld(a; b):
if (a | type) == "object" and (b | type) == "object" then
# for some reason, "a" and "b" go out of scope for reduce??
a as $a | b as $b |
reduce (a + b | keys_unsorted[]) as $k
({}; .[$k] = meld($a[$k]; $b[$k]))
elif (a | type) == "array" and (b | type) == "array" then
a + b
elif b == null then
a
else
b
end;
meld(.[0]; .[1])
' <<<"[$strategy,$newStrategy]")"
done
jq -c . <<<"$strategy" > /dev/null # sanity check
if [ -t 1 ]; then
jq <<<"$strategy"
else
cat <<<"$strategy"
fi
================================================
FILE: .github/workflows/munge-pr.yml
================================================
name: Munge PR
on:
pull_request_target:
permissions:
contents: read
pull-requests: write
defaults:
run:
shell: 'bash -Eeuo pipefail -x {0}'
env:
# https://github.com/docker-library/bashbrew/issues/10
GIT_LFS_SKIP_SMUDGE: 1
# limit to one run at a time per pull request
# no cancel-in-progress so that the running diff comment can finish before the next since the old diff could be helpful for review
concurrency:
# this should use "github.ref", but:
# "For pull requests events except pull_request_target, it is refs/pull/<pr_number>/merge. pull_request_target events have the ref from the base branch." 🙃
# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#github-context
#group: ${{ github.workflow }}-${{ github.ref }}
# https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#pull_request_target
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: false
jobs:
gather:
name: Gather Metadata
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# ideally this would be "github.event.pull_request.merge_commit_sha" but according to https://docs.github.com/en/free-pro-team@latest/rest/reference/pulls#get-a-pull-request if "mergeable" is null (meaning there's a background job in-progress to check mergeability), that value is undefined...
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- id: gather
name: Affected Images
run: |
(set +x; echo "::stop-commands::$(echo -n ${{ github.token }} | sha256sum | head -c 64)")
git fetch --quiet https://github.com/docker-library/official-images.git master
externalPins="$(git diff --no-renames --name-only FETCH_HEAD...HEAD -- '.external-pins/*/**')"
externalPinTags="$(
if [ -n "$externalPins" ]; then
# doing backflips to run "tag.sh" from master instead of from the PR
git show FETCH_HEAD:.external-pins/tag.sh > ~/master-external-pins-tag.sh
chmod +x ~/master-external-pins-tag.sh
~/master-external-pins-tag.sh $externalPins
fi
)"
images="$(git diff --no-renames --name-only FETCH_HEAD...HEAD -- library/)"
if [ -n "$images" ]; then
new="$(git diff --no-renames --name-only --diff-filter=A FETCH_HEAD...HEAD -- $images)"
deleted="$(git diff --no-renames --name-only --diff-filter=D FETCH_HEAD...HEAD -- $images)"
else
new=
deleted=
fi
export images new deleted externalPins externalPinTags
images="$(jq -cn '
(env.images | rtrimstr("\n") | split("\n")) as $images
| (env.new | rtrimstr("\n") | split("\n")) as $new
| (env.deleted | rtrimstr("\n") | split("\n")) as $deleted
| (env.externalPins | rtrimstr("\n") | split("\n")) as $externalPins
| (env.externalPinTags | rtrimstr("\n") | split("\n")) as $externalPinTags
| {
images: $images,
count: ($images | length),
new: $new,
deleted: $deleted,
externalPins: $externalPins,
externalPinTags: $externalPinTags,
externalPinsCount: ($externalPins | length),
}
| .imagesAndExternalPinsCount = (.count + .externalPinsCount) # man, I *really* do not love GitHub Actions expressions...
')"
jq . <<<"$images"
set +x
echo "::$(echo -n ${{ github.token }} | sha256sum | head -c 64)::"
echo "images=$images" >> "$GITHUB_OUTPUT"
outputs:
images: '${{ steps.gather.outputs.images }}'
apply-labels:
name: Apply Labels
runs-on: ubuntu-latest
needs: gather
permissions:
contents: read
pull-requests: write
# "issues: write" is now needed to create new labels
# https://github.com/orgs/community/discussions/156181
# but documentation still shows that pull-requests write should be enough 😓
# https://docs.github.com/en/rest/issues/labels?apiVersion=2022-11-28#create-a-label
issues: write
if: fromJSON(needs.gather.outputs.images).imagesAndExternalPinsCount > 0
steps:
- name: Apply Labels
uses: actions/github-script@v7
env:
IMAGES: ${{ needs.gather.outputs.images }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const data = JSON.parse(process.env.IMAGES);
var labels = [
...data.images, // "library/debian", ...
...new Set(data.externalPinTags.map(x => 'external/' + x.replace(/:.+$/, ''))), // "external/mcr.microsoft.com/windows/servercore", ...
];
if (data.new.length > 0) {
labels.push('new-image');
}
console.log(labels);
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
labels: labels,
});
diff:
name: Diff Comment
runs-on: ubuntu-latest
needs: gather
if: fromJSON(needs.gather.outputs.images).imagesAndExternalPinsCount > 0
steps:
- uses: actions/checkout@v4
with:
# again, this would ideally be "github.event.pull_request.merge_commit_sha" but we might not have that yet when this runs, so we compromise by checkout out the latest code from the target branch (so we get the latest "diff-pr.sh" script to run)
ref: ${{ github.event.pull_request.base.ref }}
fetch-depth: 0
- uses: ./.github/workflows/.bashbrew
with:
build: 'docker'
- name: Prepare Environment
run: |
# this avoids running repo-local scripts (to avoid CVE-2020-15228 via the scripts being updated to write nasty things to $GITHUB_ENV)
docker build --tag oisupport/bashbrew:diff-pr .
- name: Gather Maintainers
env:
IMAGES: ${{ needs.gather.outputs.images }}
run: |
files="$(jq <<<"$IMAGES" -r '.images | map(@sh) | join(" ")')"
eval "set -- $files"
for f; do
if [ -s "$f" ]; then
docker run --rm --read-only --tmpfs /tmp oisupport/bashbrew:diff-pr \
bashbrew cat --format ' - `{{ $.RepoName }}`:{{ range .Manifest.Global.Maintainers }} @{{ .Handle }}{{ end }}' "$f"
fi
done | tee "$GITHUB_WORKSPACE/oi-pr.maint"
- name: Generate Diff
env:
GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
docker run --rm --read-only --tmpfs /tmp oisupport/bashbrew:diff-pr ./diff-pr.sh "$GITHUB_PR_NUMBER" | tee "$GITHUB_WORKSPACE/oi-pr.diff"
- name: Comment
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const commentText = 'Diff for ' + context.payload.pull_request.head.sha + ':';
const fs = require('fs');
const diff = fs.readFileSync(process.env.GITHUB_WORKSPACE + '/oi-pr.diff').toString().trimEnd();
var body = "<details>\n<summary>" + commentText + "</summary>\n\n```diff\n" + diff + "\n```\n\n</details>";
const maint = fs.readFileSync(process.env.GITHUB_WORKSPACE + '/oi-pr.maint').toString().trimEnd();
if (maint.length > 0) {
body += "\n\nRelevant Maintainers:\n\n" + maint;
}
fs.writeFileSync(process.env.GITHUB_STEP_SUMMARY, body);
// https://docs.github.com/en/graphql/reference/mutations#minimizecomment
const minimizeql = `
mutation($comment: ID!) {
minimizeComment(input: { classifier: OUTDATED, clientMutationId: "doi-munge-pr", subjectId: $comment }) {
clientMutationId
minimizedComment {
isMinimized
minimizedReason
}
}
}
`;
// https://docs.github.com/en/graphql/reference/mutations#unminimizecomment
const unminimizeql = `
mutation($comment: ID!) {
unminimizeComment(input: { clientMutationId: "doi-munge-pr", subjectId: $comment }) {
clientMutationId
unminimizedComment {
isMinimized
minimizedReason
}
}
}
`;
needNewComment = true;
console.log('Reviewing existing comments...');
for await (const { data: comments } of github.paginate.iterator(
github.rest.issues.listComments,
{
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
}
)) {
for (const comment of comments) {
if (comment.user.login === 'github-actions[bot]') {
if (needNewComment && comment.body.includes(commentText)) {
needNewComment = false;
console.log('Unhiding comment: ' + comment.id + ' (' + comment.node_id + ')');
const result = await github.graphql(unminimizeql, { comment: comment.node_id });
console.log('- result: ' + JSON.stringify(result));
} else {
console.log('Hiding comment: ' + comment.id + ' (' + comment.node_id + ')');
const result = await github.graphql(minimizeql, { comment: comment.node_id });
console.log('- result: ' + JSON.stringify(result));
}
}
}
}
if (needNewComment) {
console.log('Creating new comment...');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: body,
});
}
================================================
FILE: .github/workflows/naughty.sh
================================================
#!/usr/bin/env bash
set -Eeuo pipefail
if [ "$#" -eq 0 ]; then
git fetch --quiet https://github.com/docker-library/official-images.git master
changes="$(git diff --no-renames --name-only --diff-filter='d' FETCH_HEAD...HEAD -- library/)"
repos="$(xargs -rn1 basename <<<"$changes")"
set -- $repos
fi
if [ "$#" -eq 0 ]; then
echo >&2 'No library/ changes detected, skipping.'
exit
fi
export BASHBREW_LIBRARY="$PWD/library"
bashbrew from --uniq "$@" > /dev/null
numNaughty=0
if badTags="$(bashbrew list "$@" | grep -E ':.+latest.*|:.*latest.+')" && [ -n "$badTags" ]; then
echo >&2
echo >&2 "Incorrectly formatted 'latest' tags detected:"
echo >&2 ' ' $badTags
echo >&2
echo >&2 'Read https://github.com/docker-library/official-images#tags-and-aliases for more details.'
echo >&2
(( ++numNaughty ))
fi
naughtySharedTags="$(./naughty-sharedtags.sh "$@")"
if [ -n "$naughtySharedTags" ]; then
echo >&2
echo >&2 "Invalid 'SharedTags' combinations detected:"
echo >&2
echo >&2 "$naughtySharedTags"
echo >&2
echo >&2 'Read https://github.com/docker-library/faq#whats-the-difference-between-shared-and-simple-tags for more details.'
echo >&2
(( ++numNaughty ))
fi
naughtyFrom="$(./naughty-from.sh "$@")"
if [ -n "$naughtyFrom" ]; then
echo >&2
echo >&2 "Invalid 'FROM' + 'Architectures' combinations detected:"
echo >&2
echo >&2 "$naughtyFrom"
echo >&2
echo >&2 'Read https://github.com/docker-library/official-images#multiple-architectures for more details.'
echo >&2
(( ++numNaughty ))
fi
naughtyConstraints="$(./naughty-constraints.sh "$@")"
if [ -n "$naughtyConstraints" ]; then
echo >&2
echo >&2 "Invalid 'FROM' + 'Constraints' combinations detected:"
echo >&2
echo >&2 "$naughtyConstraints"
echo >&2
(( ++numNaughty ))
fi
naughtyCommits="$(./naughty-commits.sh "$@")"
if [ -n "$naughtyCommits" ]; then
echo >&2
echo >&2 "Unpleasant commits detected:"
echo >&2
echo >&2 "$naughtyCommits"
echo >&2
(( ++numNaughty ))
fi
exit "$numNaughty"
================================================
FILE: .github/workflows/test-pr.yml
================================================
name: Test PR
on:
pull_request:
defaults:
run:
shell: 'bash -Eeuo pipefail -x {0}'
env:
# https://github.com/docker-library/bashbrew/issues/10
GIT_LFS_SKIP_SMUDGE: 1
# cancel existing runs if user makes another push
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
permissions:
contents: read
jobs:
naughty:
name: Naughty
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/workflows/.bashbrew
- name: Check for Common Issues
run: .github/workflows/naughty.sh
generate-jobs:
name: Generate Jobs
runs-on: ubuntu-latest
outputs:
strategy: ${{ steps.generate-jobs.outputs.strategy }}
length: ${{ steps.generate-jobs.outputs.length }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/workflows/.bashbrew
- id: generate-jobs
name: Generate Jobs
run: |
strategy="$(.github/workflows/generate.sh)"
echo "strategy=$strategy" >> "$GITHUB_OUTPUT"
jq . <<<"$strategy" # sanity check / debugging aid
length="$(jq <<<"$strategy" -r '.matrix.include | length')"
echo "length=$length" >> "$GITHUB_OUTPUT"
test:
needs: generate-jobs
strategy: ${{ fromJSON(needs.generate-jobs.outputs.strategy) }}
if: needs.generate-jobs.outputs.length > 0
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
steps:
- name: Prepare Git
run: |
# enable symlinks on Windows (https://git-scm.com/docs/git-config#Documentation/git-config.txt-coresymlinks)
git config --global core.symlinks true
# also, make sure Windows symlinks are *real* symlinks (https://github.com/git-for-windows/git/pull/156)
echo 'MSYS=winsymlinks:nativestrict' >> "$GITHUB_ENV"
# https://github.com/docker-library/bashbrew/blob/a40a54d4d81b9fd2e39b4d7ba3fe203e8b022a67/scripts/github-actions/generate.sh#L146-L149
if: runner.os == 'Windows'
- uses: actions/checkout@v4
- uses: ./.github/workflows/.bashbrew
- name: Prepare Environment
run: ${{ matrix.runs.prepare }}
- name: Pull Dependencies
run: ${{ matrix.runs.pull }}
- name: Build ${{ matrix.name }}
run: ${{ matrix.runs.build }}
- name: History ${{ matrix.name }}
run: ${{ matrix.runs.history }}
- name: Test ${{ matrix.name }}
run: ${{ matrix.runs.test }}
- name: '"docker images"'
run: ${{ matrix.runs.images }}
================================================
FILE: .gitignore
================================================
.git
================================================
FILE: CODE-OF-CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
- Focusing on what is best not just for us as individuals, but for the overall community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement as listed in [the MAINTAINERS file](https://github.com/docker-library/official-images/blob/master/MAINTAINERS). All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.
================================================
FILE: Dockerfile
================================================
# FYI, this base image is built via ".github/workflows/.bashbrew/action.yml" (from https://github.com/docker-library/bashbrew/tree/master/Dockerfile)
FROM oisupport/bashbrew:base
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
# wget for downloading files (especially in tests, which run in this environment)
ca-certificates \
wget \
# git for cloning source code
git \
# gawk for diff-pr.sh
gawk \
# tar -tf in diff-pr.sh
bzip2 \
# jq for diff-pr.sh
jq \
; \
rm -rf /var/lib/apt/lists/*
ENV DIR /usr/src/official-images
ENV BASHBREW_LIBRARY $DIR/library
# crane for diff-pr.sh
# https://gcr.io/go-containerregistry/crane:latest
# https://explore.ggcr.dev/?image=gcr.io/go-containerregistry/crane:latest
COPY --from=gcr.io/go-containerregistry/crane@sha256:fc86bcad43a000c2a1ca926a1e167db26c053cebc3fa5d14285c72773fb8c11d /ko-app/crane /usr/local/bin/
WORKDIR $DIR
COPY . $DIR
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
Copyright 2014 Docker, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: MAINTAINERS
================================================
# This file lists the maintainers of the Official Images program at large, not necessarily the maintainers of any given image.
Tianon Gravi <admwiggin@gmail.com> (@tianon)
Joseph Ferguson <yosifkit@gmail.com> (@yosifkit)
# Emeritus: Talon Bowler <nolat301@gmail.com> (@daghack)
# Emeritus: Peter Salvatore <peter@psftw.com> (@psftw)
# To find the maintainers for a given image, see "library/IMAGENAME" in this repository, or see the "Maintained by:" section of the "Quick Reference" of the image description on Docker Hub (or in the "docs" repo at https://github.com/docker-library/docs).
================================================
FILE: NEW-IMAGE-CHECKLIST.md
================================================
# Checklist for Review
**NOTE:** This checklist is intended for the use of the Official Images maintainers both to track the status of your PR and to help inform you and others of where we're at. As such, please leave the "checking" of items to the repository maintainers. If there is a point below for which you would like to provide additional information or note completion, please do so by commenting on the PR. Thanks! (and thanks for staying patient with us :heart:)
- [ ] associated with or contacted upstream?
- [ ] available under [an OSI-approved license](https://opensource.org/licenses)?
- [ ] does it fit into one of the common categories? ("service", "language stack", "base distribution")
- [ ] is it reasonably popular, or does it solve a particular use case well?
- [ ] does a [documentation](https://github.com/docker-library/docs/blob/master/README.md) PR exist? (should be reviewed and merged at roughly the same time so that we don't have an empty image page on the Hub for very long)
- [ ] official-images maintainer dockerization review for best practices and cache gotchas/improvements (ala [the official review guidelines](https://github.com/docker-library/official-images/blob/master/README.md#review-guidelines))?
- [ ] 2+ official-images maintainer dockerization review?
- [ ] existing official images have been considered as a base? (ie, if `foobar` needs Node.js, has `FROM node:...` instead of grabbing `node` via other means been considered?)
- [ ] if `FROM scratch`, tarballs only exist in a single commit within the associated history?
- [ ] passes current tests? any simple new tests that might be appropriate to add, [assuming this image has any other images it might be interchangeable with](https://github.com/docker-library/official-images/tree/HEAD/test#what-tests-belong-here)?
================================================
FILE: README.md
================================================
# Docker Official Images
## Table of Contents
<!-- AUTOGENERATED TOC -->
1. [Docker Official Images](#docker-official-images)
1. [Table of Contents](#table-of-contents)
2. [What are "Official Images"?](#what-are-official-images)
3. [Architectures other than amd64?](#architectures-other-than-amd64)
4. [More FAQs?](#more-faqs)
5. [Contributing to the standard library](#contributing-to-the-standard-library)
1. [Review Guidelines](#review-guidelines)
1. [Maintainership](#maintainership)
2. [Repeatability](#repeatability)
3. [Consistency](#consistency)
4. [Clarity](#clarity)
5. [init](#init)
6. [Cacheability](#cacheability)
7. [Security](#security)
1. [Image Build](#image-build)
2. [Runtime Configuration](#runtime-configuration)
3. [Security Releases](#security-releases)
8. [Multiple Architectures](#multiple-architectures)
2. [Commitment](#commitment)
6. [Library definition files](#library-definition-files)
1. [Filenames](#filenames)
2. [Tags and aliases](#tags-and-aliases)
3. [Instruction format](#instruction-format)
4. [Creating a new repository](#creating-a-new-repository)
5. [Adding a new tag in an existing repository (that you're the maintainer of)](#adding-a-new-tag-in-an-existing-repository-that-youre-the-maintainer-of)
6. [Change to a tag in an existing repository (that you're the maintainer of)](#change-to-a-tag-in-an-existing-repository-that-youre-the-maintainer-of)
7. [Bashbrew](#bashbrew)
<!-- AUTOGENERATED TOC -->
## What are "Official Images"?
The Docker Official Images are curated images [hosted on Docker Hub](https://hub.docker.com/u/library). The main tenets are:
- Focus on [Free](https://www.debian.org/social_contract#guidelines) and [Open-Source](https://opensource.org/) Software
- Support [multiple architectures](#architectures-other-than-amd64)
- Exemplify [`Dockerfile` best practices](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/)
- [Actively rebuild](#library-definition-files) for updates and security fixes
- Adhere to upstream recommendations
- Add minimal quality-of-life behavior for the container environment where fit
See [Docker's documentation](https://docs.docker.com/docker-hub/official_repos/) for a good high-level overview of the program.
In essence we strive to heed upstream's recommendations on how they intend for their software to be consumed. Many images are maintained in collaboration with the relevant upstream project if not maintained directly by them. Additionally we aim to exemplify the best practices for Dockerfiles to serve as a reference when making or deriving your own images from them.
(If you are a representative of an upstream for which there exists an image and you would like to get involved, please see the [Maintainership](#maintainership) section below!)
## Architectures other than amd64?
Some images have been ported for other architectures, and many of these are officially supported (to various degrees).
- Architectures officially supported by Docker, Inc. for running Docker: (see [download.docker.com](https://download.docker.com/linux/))
- ARMv6 32-bit (`arm32v6`): https://hub.docker.com/u/arm32v6/
- ARMv7 32-bit (`arm32v7`): https://hub.docker.com/u/arm32v7/
- ARMv8 64-bit (`arm64v8`): https://hub.docker.com/u/arm64v8/
- Linux x86-64 (`amd64`): https://hub.docker.com/u/amd64/
- Windows x86-64 (`windows-amd64`): https://hub.docker.com/u/winamd64/
- Other architectures built by official images: (but *not* officially supported by Docker, Inc.)
- ARMv5 32-bit (`arm32v5`): https://hub.docker.com/u/arm32v5/
- IBM POWER8 (`ppc64le`): https://hub.docker.com/u/ppc64le/
- IBM z Systems (`s390x`): https://hub.docker.com/u/s390x/
- MIPS64 LE (`mips64le`): https://hub.docker.com/u/mips64le/
- RISC-V 64-bit (`riscv64`): https://hub.docker.com/u/riscv64/
- x86/i686 (`i386`): https://hub.docker.com/u/i386/
These other architectures are included under the non-prefixed images via [OCI "image indexes"](https://github.com/opencontainers/image-spec/blob/v1.1.1/image-index.md), such that, for example, `docker run hello-world` should run as-is on all supported platforms.
If you're curious about how these are built, head over to [our FAQ entry](https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what) to see an explanation of the process or visit [meta-scripts](https://github.com/docker-library/meta-scripts) to see the build process source files.
See the [multi-arch section](#multiple-architectures) below for recommendations in adding more architectures to an official image.
## More FAQs?
Yes! We have [a dedicated FAQ repository](https://github.com/docker-library/faq) where we try to collect other common questions (both about the program and about our practices).
## Contributing to the standard library
Thank you for your interest in the Docker official images project! We strive to make these instructions as simple and straightforward as possible, but if you find yourself lost, don't hesitate to seek us out on [Libera.Chat IRC](https://libera.chat) in channel `#docker-library` or by creating a GitHub issue here.
Be sure to familiarize yourself with [Official Repositories on Docker Hub](https://docs.docker.com/docker-hub/official_repos/) and the [Best practices for writing Dockerfiles](https://docs.docker.com/articles/dockerfile_best-practices/) in the Docker documentation. These will be the foundation of the review process performed by the official images maintainers. If you'd like the review process to go more smoothly, please ensure that your `Dockerfile`s adhere to all the points mentioned there, as well as [below](README.md#review-guidelines), before submitting a pull request.
Also, the Hub descriptions for these images are currently stored separately in the [`docker-library/docs` repository](https://github.com/docker-library/docs), whose [`README.md` file](https://github.com/docker-library/docs/blob/master/README.md) explains more about how it's structured and how to contribute to it. Please be prepared to submit a PR there as well, pending acceptance of your image here.
### Review Guidelines
Because the official images are intended to be learning tools for those new to Docker as well as the base images for advanced users to build their production releases, we review each proposed `Dockerfile` to ensure that it meets a minimum standard for quality and maintainability. While some of that standard is hard to define (due to subjectivity), as much as possible is defined here, while also adhering to the "Best Practices" where appropriate.
A checklist which may be used by the maintainers during review can be found in [`NEW-IMAGE-CHECKLIST.md`](NEW-IMAGE-CHECKLIST.md).
#### Maintainership
Version bumps and security fixes should be attended to in a timely manner.
If you do not represent upstream and upstream becomes interested in maintaining the image, steps should be taken to ensure a smooth transition of image maintainership over to upstream.
For upstreams interested in taking over maintainership of an existing repository, the first step is to get involved in the existing repository. Making comments on issues, proposing changes, and making yourself known within the "image community" (even if that "community" is just the current maintainer) are all important places to start to ensure that the transition is unsurprising to existing contributors and users.
When taking over an existing repository, please ensure that the entire Git history of the original repository is kept in the new upstream-maintained repository to make sure the review process isn't stalled during the transition. This is most easily accomplished by forking the new from the existing repository, but can also be accomplished by fetching the commits directly from the original and pushing them into the new repo (ie, `git fetch https://github.com/jsmith/example.git master`, `git rebase FETCH_HEAD`, `git push -f`). On GitHub, an alternative is to move ownership of the git repository. This can be accomplished without giving either group admin access to the other owner's repository:
- create temporary intermediary organization
- [docker-library-transitioner](https://github.com/docker-library-transitioner) is available for this purpose if you would like our help
- give old and new owners admin access to intermediary organization
- old owner transfers repo ownership to intermediary organization
- new owner transfers repo ownership to its new home
- recommend that old owner does not fork new repo back into the old organization to ensure that GitHub redirects will just work
#### Repeatability
Rebuilding the same `Dockerfile` should result in the same version of the image being packaged, even if the second build happens several versions later, or the build should fail outright, such that an inadvertent rebuild of a `Dockerfile` tagged as `0.1.0` doesn't end up containing `0.2.3`. For example, if using `apt` to install the main program for the image, be sure to pin it to a specific version (ex: `... apt-get install -y my-package=0.1.0 ...`). For dependent packages installed by `apt` there is not usually a need to pin them to a version.
No official images can be derived from, or depend on, non-official images (allowing the non-image [`scratch`](https://hub.docker.com/_/scratch/) and the intentionally limited exceptions pinned in [`.external-pins`](.external-pins) -- see also [`.external-pins/list.sh`](.external-pins/list.sh)).
#### Consistency
All official images should provide a consistent interface. A beginning user should be able to `docker run official-image bash` (or `sh`) without needing to learn about `--entrypoint`. It is also nice for advanced users to take advantage of entrypoint, so that they can `docker run official-image --arg1 --arg2` without having to specify the binary to execute.
1. If the startup process does not need arguments, just use `CMD`:
```Dockerfile
CMD ["irb"]
```
2. If there is initialization that needs to be done on start, like creating the initial database, use an `ENTRYPOINT` along with `CMD`:
```Dockerfile
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["postgres"]
```
1. Ensure that `docker run official-image bash` (or `sh`) works too. The easiest way is to check for the expected command and if it is something else, just `exec "$@"` (run whatever was passed, properly keeping the arguments escaped).
```sh
#!/bin/sh
set -e
# this if will check if the first argument is a flag
# but only works if all arguments require a hyphenated flag
# -v; -SL; -f arg; etc will work, but not arg1 arg2
if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
set -- mongod "$@"
fi
# check for the expected command
if [ "$1" = 'mongod' ]; then
# init db stuff....
# use gosu (or su-exec) to drop to a non-root user
exec gosu mongod "$@"
fi
# else default to run whatever the user wanted like "bash" or "sh"
exec "$@"
```
3. If the image only contains the main executable and its linked libraries (ie no shell) then it is fine to use the executable as the `ENTRYPOINT`, since that is the only thing that can run:
```Dockerfile
ENTRYPOINT ["fully-static-binary"]
CMD ["--help"]
```
The most common indicator of whether this is appropriate is that the image `Dockerfile` starts with [`scratch`](https://registry.hub.docker.com/_/scratch/) (`FROM scratch`).
#### Clarity
Try to make the `Dockerfile` easy to understand/read. It may be tempting, for the sake of brevity, to put complicated initialization details into a standalone script and merely add a `RUN` command in the `Dockerfile`. However, this causes the resulting `Dockerfile` to be overly opaque, and such `Dockerfile`s are unlikely to pass review. Instead, it is recommended to put all the commands for initialization into the `Dockerfile` as appropriate `RUN` or `ENV` command combinations. To find good examples, look at the current official images.
Some examples at the time of writing:
- [php](https://github.com/docker-library/php/blob/b4aeb948e2e240c732d78890ff03285b16e8edda/5.6/Dockerfile)
- [python](https://github.com/docker-library/python/blob/3e5826ad0c6e29f07f6dc7ff8f30b4c54385d1bb/3.4/Dockerfile)
- [ruby:2.2](https://github.com/docker-library/ruby/blob/e34b201a0f0b49818fc8373f6a9148e13d546bdf/2.2/Dockerfile)
#### init
Following the Docker guidelines it is highly recommended that the resulting image be just one concern per container; predominantly this means just one process per container, so there is no need for a full init system. There are two situations where an init-like process would be helpful for the container. The first being signal handling. If the process launched does not handle `SIGTERM` by exiting, it will not be killed since it is PID 1 in the container (see "NOTE" at the end of the [Foreground section](https://docs.docker.com/engine/reference/run/#foreground) in the docker docs). The second situation would be zombie reaping. If the process spawns child processes and does not properly reap them it will lead to a full process table, which can prevent the whole system from spawning any new processes. For both of these concerns we recommend [tini](https://github.com/krallin/tini). It is incredibly small, has minimal external dependencies, fills each of these roles, and does only the necessary parts of reaping and signal forwarding.
Be sure to use tini in `CMD` or `ENTRYPOINT` as appropriate.
It is best to install tini from a distribution-provided package (ex. `apt-get install tini`). If tini is not available in your distribution or is too old, here is a snippet of a `Dockerfile` to add in tini:
```Dockerfile
# Install tini for signal processing and zombie killing
ENV TINI_VERSION v0.18.0
ENV TINI_SIGN_KEY 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7
RUN set -eux; \
wget -O /usr/local/bin/tini "https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini"; \
wget -O /usr/local/bin/tini.asc "https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini.asc"; \
export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$TINI_SIGN_KEY"; \
gpg --batch --verify /usr/local/bin/tini.asc /usr/local/bin/tini; \
command -v gpgconf && gpgconf --kill all || :; \
rm -r "$GNUPGHOME" /usr/local/bin/tini.asc; \
chmod +x /usr/local/bin/tini; \
tini --version
```
#### Cacheability
This is one place that experience ends up trumping documentation for the path to enlightenment, but the following tips might help:
- Avoid `COPY`/`ADD` whenever possible, but when necessary, be as specific as possible (ie, `COPY one-file.sh /somewhere/` instead of `COPY . /somewhere`).
The reason for this is that the cache for `COPY` instructions considers file `mtime` changes to be a cache bust, which can make the cache behavior of `COPY` unpredictable sometimes, especially when `.git` is part of what needs to be `COPY`ed (for example).
- Ensure that lines which are less likely to change come before lines that are more likely to change (with the caveat that each line should generate an image that still runs successfully without assumptions of later lines).
For example, the line that contains the software version number (`ENV MYSOFTWARE_VERSION 4.2`) should come after a line that sets up the APT repository `.list` file (`RUN echo 'deb http://example.com/mysoftware/debian some-suite main' > /etc/apt/sources.list.d/mysoftware.list`).
#### Security
##### Image Build
The `Dockerfile` should be written to help mitigate interception attacks during build. Our requirements focus on three main objectives: verifying the source, verifying author, and verifying the content; these are respectively accomplished by the following: using https where possible; importing PGP keys with the full fingerprint in the `Dockerfile` to check signatures; embedding checksums directly in the `Dockerfile`. All three should be used when possible. Just https and embedded checksum can be used when no signature is published. As a last resort, just an embedded checksum is acceptable if the site doesn't have https available and no signature.
The purpose in recommending the use of https for downloading needed artifacts is that it ensures that the download is from a trusted source which also happens to make interception much more difficult.
The purpose in recommending PGP signature verification is to ensure that only an authorized user published the given artifact. When importing PGP keys, please use the [the `keys.openpgp.org` service](https://keys.openpgp.org/about) when possible (preferring `keyserver.ubuntu.com` otherwise). See also the FAQ section on [keys and verification](https://github.com/docker-library/faq/#openpgp--gnupg-keys-and-verification).
The purpose in recommending checksum verification is to verify that the artifact is as expected. This ensures that when remote content changes, the Dockerfile also will change and provide a natural `docker build` cache bust. As a bonus, this also prevents accidentally downloading newer-than-expected artifacts on poorly versioned files.
Below are some examples:
- **Preferred**: *download over https, PGP key full fingerprint import and `asc` verification, embedded checksum verified.*
```Dockerfile
ENV PYTHON_DOWNLOAD_SHA512 (sha512-value-here)
RUN set -eux; \
curl -fL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz; \
curl -fL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc; \
export GNUPGHOME="$(mktemp -d)"; \
# gpg: key F73C700D: public key "Larry Hastings <larry@hastings.org>" imported
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 97FC712E4C024BBEA48A61ED3A5CA953F73C700D; \
gpg --batch --verify python.tar.xz.asc python.tar.xz; \
rm -r "$GNUPGHOME" python.tar.xz.asc; \
echo "$PYTHON_DOWNLOAD_SHA512 *python.tar.xz" | sha512sum --strict --check; \
# install
```
- **Alternate**: *full key fingerprint imported to apt which will check signatures and checksums when packages are downloaded and installed.*
```Dockerfile
RUN set -eux; \
key='A4A9406876FCBD3C456770C88C718D3B5072E1F5'; \
export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
gpg --batch --armor --export "$key" > /etc/apt/keyrings/mysql.asc; \
gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
apt-key list > /dev/null
RUN set -eux; \
echo "deb [ signed-by=/etc/apt/keyrings/mysql.asc ] http://repo.mysql.com/apt/debian/ bookworm mysql-${MYSQL_MAJOR}" > /etc/apt/sources.list.d/mysql.list; \
apt-get update; \
apt-get install -y mysql-community-client="${MYSQL_VERSION}" mysql-community-server-core="${MYSQL_VERSION}"; \
rm -rf /var/lib/apt/lists/*; \
# ...
```
(As a side note, `rm -rf /var/lib/apt/lists/*` is *roughly* the opposite of `apt-get update` -- it ensures that the layer doesn't include the extra ~8MB of APT package list data, and enforces [appropriate `apt-get update` usage](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#apt-get).)
- **Less Secure Alternate**: *embed the checksum into the `Dockerfile`.*
```Dockerfile
ENV RUBY_DOWNLOAD_SHA256 (sha256-value-here)
RUN set -eux; \
curl -fL -o ruby.tar.gz "https://cache.ruby-lang.org/pub/ruby/$RUBY_MAJOR/ruby-$RUBY_VERSION.tar.gz"; \
echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.gz" | sha256sum --strict --check; \
# install
```
- **Note:** the use of either SHA1 or MD5 should be considered a "checksum of last resort" as both are considered generally unsafe:
- ["Single-block collision for MD5" from 2012](https://marc-stevens.nl/research/md5-1block-collision/)
- ["Announcing the first SHA1 collision" from 2017](https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html)
- **Unacceptable**: *download the file over http(s) with no verification.*
```Dockerfile
RUN curl -fL "https://julialang.s3.amazonaws.com/bin/linux/x64/${JULIA_VERSION%[.-]*}/julia-${JULIA_VERSION}-linux-x86_64.tar.gz" | tar ... \
# install
```
##### Runtime Configuration
By default, Docker containers are executed with reduced privileges: whitelisted Linux capabilities, Control Groups, and a default Seccomp profile (1.10+ w/ host support). Software running in a container may require additional privileges in order to function correctly, and there are a number of command line options to customize container execution. See [`docker run` Reference](https://docs.docker.com/engine/reference/run/) and [Seccomp for Docker](https://docs.docker.com/engine/security/seccomp/) for reference.
Official Repositories that require additional privileges should specify the minimal set of command line options for the software to function, and may still be rejected if this introduces significant portability or security issues. In general, `--privileged` is not allowed, but a combination of `--cap-add` and `--device` options may be acceptable. Additionally, `--volume` can be tricky as there are many host filesystem locations that introduce portability/security issues (e.g. X11 socket).
##### Security Releases
For image updates which constitute a security fix, there are a few things we recommend to help ensure your update is merged, built, and released as quickly as possible:
1. [Send an email to `doi@docker.com`](mailto:doi@docker.com) a few (business) days in advance to give us a heads up and a timing estimate (so we can schedule time for the incoming update appropriately).
2. Include `[security]` in the title of your pull request (for example, `[security] Update FooBar to 1.2.5, 1.3.7, 2.0.1`).
3. Keep the pull request free of changes that are unrelated to the security fix -- we'll still be doing review of the update, but it will be expedited so this will help us help you.
4. Be active and responsive to comments on the pull request after it's opened (as usual, but even more so if the timing of the release is of importance).
#### Multiple Architectures
Each repo can specify multiple architectures for any and all tags. If no architecture is specified, images are built in Linux on `amd64` (aka x86-64). To specify more or different architectures, use the `Architectures` field (comma-delimited list, whitespace is trimmed). Valid architectures are found in [Bashbrew's `oci-platform.go` file](https://github.com/docker-library/bashbrew/blob/v0.1.2/architecture/oci-platform.go#L14-L27):
- `amd64`
- `arm32v6`
- `arm32v7`
- `arm64v8`
- `i386`
- `mips64le`
- `ppc64le`
- `riscv64`
- `s390x`
- `windows-amd64`
The `Architectures` of any given tag must be a strict subset of the `Architectures` of the tag it is `FROM`.
Images must have a single `Dockerfile` per entry in the library file that can be used for multiple architectures. This means that each supported architecture will have the same `FROM` line (e.g. `FROM debian:bookworm`). See [`golang`](https://github.com/docker-library/official-images/blob/master/library/golang), [`docker`](https://github.com/docker-library/official-images/blob/master/library/docker), [`haproxy`](https://github.com/docker-library/official-images/blob/master/library/haproxy), and [`php`](https://github.com/docker-library/official-images/blob/master/library/php) for examples of library files using one `Dockerfile` per entry and see their respective git repos for example `Dockerfile`s.
If different parts of the Dockerfile only happen in one architecture or another, use control flow (e.g.`if`/`case`) along with `dpkg --print-architecture` or `apk -print-arch` to detect the userspace architecture. Only use `uname` for architecture detection when more accurate tools cannot be installed. See [golang](https://github.com/docker-library/golang/blob/72bc141d781ae54ef20f71aa1105449cb6c2edc4/1.20/bookworm/Dockerfile#L26-L63) for an example where some architectures require building binaries from the upstream source packages and some merely download the binary release.
For base images like `debian` it will be necessary to have a different `Dockerfile` and build context in order to `ADD` architecture specific binaries and this is a valid exception to the above. Since these images use the same `Tags`, they need to be in the same entry. Use the architecture specific fields for `GitRepo`, `GitFetch`, `GitCommit`, and `Directory`, which are the architecture concatenated with hyphen (`-`) and the field (e.g. `arm32v7-GitCommit`). Any architecture that does not have an architecture-specific field will use the default field (e.g. no `arm32v7-Directory` means `Directory` will be used for `arm32v7`). See the [`debian`](https://github.com/docker-library/official-images/blob/master/library/debian) or [`ubuntu`](https://github.com/docker-library/official-images/blob/master/library/ubuntu) files in the library for examples. The following is an example for [`hello-world`](https://github.com/docker-library/official-images/blob/master/library/hello-world):
```
Maintainers: Tianon Gravi <admwiggin@gmail.com> (@tianon),
Joseph Ferguson <yosifkit@gmail.com> (@yosifkit)
GitRepo: https://github.com/docker-library/hello-world.git
GitCommit: 7d0ee592e4ed60e2da9d59331e16ecdcadc1ed87
Tags: latest
Architectures: amd64, arm32v5, arm32v7, arm64v8, ppc64le, s390x
# all the same commit; easy for us to generate this way since they could be different
amd64-GitCommit: 7d0ee592e4ed60e2da9d59331e16ecdcadc1ed87
amd64-Directory: amd64/hello-world
arm32v5-GitCommit: 7d0ee592e4ed60e2da9d59331e16ecdcadc1ed87
arm32v5-Directory: arm32v5/hello-world
arm32v7-GitCommit: 7d0ee592e4ed60e2da9d59331e16ecdcadc1ed87
arm32v7-Directory: arm32v7/hello-world
arm64v8-GitCommit: 7d0ee592e4ed60e2da9d59331e16ecdcadc1ed87
arm64v8-Directory: arm64v8/hello-world
ppc64le-GitCommit: 7d0ee592e4ed60e2da9d59331e16ecdcadc1ed87
ppc64le-Directory: ppc64le/hello-world
s390x-GitCommit: 7d0ee592e4ed60e2da9d59331e16ecdcadc1ed87
s390x-Directory: s390x/hello-world
Tags: nanoserver
Architectures: windows-amd64
# if there is only one architecture, you can use the unprefixed fields
Directory: amd64/hello-world/nanoserver
# or use the prefixed versions
windows-amd64-GitCommit: 7d0ee592e4ed60e2da9d59331e16ecdcadc1ed87
Constraints: nanoserver
```
See the [instruction format section](#instruction-format) for more information on the format of the library file.
### Commitment
Proposing a new official image should not be undertaken lightly. We expect and require a commitment to maintain your image (including and especially timely updates as appropriate, as noted above).
## Library definition files
The library definition files are plain text files found in the [`library/` directory of the `official-images` repository](https://github.com/docker-library/official-images/tree/master/library). Each library file controls the current "supported" set of image tags that appear on the Docker Hub description. Tags that are removed from a library file do not get removed from the Docker Hub, so that old versions can continue to be available for use, but are not maintained by upstream or the maintainer of the official image. Tags in the library file are only built through an update to that library file or as a result of its base image being updated (ie, an image `FROM debian:bookworm` would be rebuilt when `debian:bookworm` is built). Only what is in the library file will be rebuilt when a base has updates.
Given this policy, it is worth clarifying a few cases: backfilled versions, release candidates, and continuous integration builds. When a new repository is proposed, it is common to include some older unsupported versions in the initial pull request with the agreement to remove them right after acceptance. Don't confuse this with a comprehensive historical archive which is not the intention. Another common case where the term "supported" is stretched a bit is with release candidates. A release candidate is really just a naming convention for what are expected to be shorter-lived releases, so they are totally acceptable and encouraged. Unlike a release candidate, continuous integration builds which have a fully automated release cycle based on code commits or a regular schedule are not appropriate.
It is highly recommended that you browse some of the existing `library/` file contents (and history to get a feel for how they change over time) before creating a new one to become familiar with the prevailing conventions and further help streamline the review process (so that we can focus on content instead of esoteric formatting or tag usage/naming).
### Filenames
The filename of a definition file will determine the name of the image repository it creates on the Docker Hub. For example, the `library/ubuntu` file will create tags in the `ubuntu` repository.
### Tags and aliases
The tags of a repository should reflect upstream's versions or variations. For example, Ubuntu 14.04 is also known as Ubuntu Trusty Tahr, but often as simply Ubuntu Trusty (especially in usage), so `ubuntu:14.04` (version number) and `ubuntu:trusty` (version name) are appropriate aliases for the same image contents. In Docker, the `latest` tag is a special case, but it's a bit of a misnomer; `latest` really is the "default" tag. When one does `docker run xyz`, Docker interprets that to mean `docker run xyz:latest`. Given that background, no other tag ever contains the string `latest`, since it's not something users are expected or encouraged to actually type out (ie, `xyz:latest` should really be used as simply `xyz`). Put another way, having an alias for the "highest 2.2-series release of XYZ" should be `xyz:2.2`, not `xyz:2.2-latest`. Similarly, if there is an Alpine variant of `xyz:latest`, it should be aliased as `xyz:alpine`, not `xyz:alpine-latest` or `xyz:latest-alpine`.
It is strongly encouraged that version number tags be given aliases which make it easy for the user to stay on the "most recent" release of a particular series. For example, given currently supported XYZ Software versions of 2.3.7 and 2.2.4, suggested aliases would be `Tags: 2.3.7, 2.3, 2, latest` and `Tags: 2.2.4, 2.2`, respectively. In this example, the user can use `xyz:2.2` to easily use the most recent patch release of the 2.2 series, or `xyz:2` if less granularity is needed (Python is a good example of where that's most obviously useful -- `python:2` and `python:3` are very different, and can be thought of as the `latest` tag for each of the major release tracks of Python).
As described above, `latest` is really "default", so the image that it is an alias for should reflect which version or variation of the software users should use if they do not know or do not care which version they use. Using Ubuntu as an example, `ubuntu:latest` points to the most recent LTS release, given that it is what the majority of users should be using if they know they want Ubuntu but do not know or care which version (especially considering it will be the most "stable" and well-supported release at any given time).
### Instruction format
The manifest file format is officially based on [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt), and as such should be familiar to folks who are already familiar with the "headers" of many popular internet protocols/formats such as HTTP or email.
The primary additions are inspired by the way Debian commonly uses 2822 -- namely, lines starting with `#` are ignored and "entries" are separated by a blank line.
The first entry is the "global" metadata for the image. The only required field in the global entry is `Maintainers`, whose value is comma-separated in the format of `Name <email> (@github)` or `Name (@github)`. Any field specified in the global entry will be the default for the rest of the entries and can be overridden in an individual entry.
# this is a comment and will be ignored
Maintainers: John Smith <jsmith@example.com> (@example-jsmith),
Anne Smith <asmith@example.com> (@example-asmith)
GitRepo: https://github.com/example/docker-example.git
GitCommit: deadbeefdeadbeefdeadbeefdeadbeefdeadbeef
# this is also a comment, and will also be ignored
Tags: 1.2.3, 1.2, 1, latest
Directory: 1
Tags: 2.0-rc1, 2.0-rc, 2-rc, rc
GitRepo: https://github.com/example/docker-example-rc.git
GitFetch: refs/heads/2.0-pre-release
GitCommit: beefdeadbeefdeadbeefdeadbeefdeadbeefdead
Directory: 2
File: Dockerfile-to-use
Bashbrew will fetch code out of the Git repository (`GitRepo`) at the commit specified (`GitCommit`). If the commit referenced is not available by fetching `master` of the associated `GitRepo`, it becomes necessary to supply a value for `GitFetch` in order to tell Bashbrew what ref to fetch in order to get the commit necessary.
The built image will be tagged as `<manifest-filename>:<tag>` (ie, `library/golang` with a `Tags` value of `1.6, 1, latest` will create tags of `golang:1.6`, `golang:1`, and `golang:latest`).
Optionally, if `Directory` is present, Bashbrew will look for the `Dockerfile` inside the specified subdirectory instead of at the root (and `Directory` will be used as the ["context" for the build](https://docs.docker.com/reference/builder/) instead of the top-level of the repository). If `File` is present, the specified filename instead of `Dockerfile` will be used.
See the [multi-arch section](#multiple-architectures) for details on how to specify a different `GitRepo`, `GitFetch`, `GitCommit`, or `Directory` for a specific architecture.
### Creating a new repository
- Create a new file in the `library/` folder. Its name will be the name of your repository on the Hub.
- Add your tag definitions using the appropriate syntax (see above).
- Create a pull request adding the file from your forked repository to this one. Please be sure to add details as to what your repository does.
### Adding a new tag in an existing repository (that you're the maintainer of)
- Add your tag definition using the instruction format documented above.
- Create a pull request from your Git repository to this one. Please be sure to add details about what's new, if possible.
### Change to a tag in an existing repository (that you're the maintainer of)
- Update the relevant tag definition using the instruction format documented above.
- Create a pull request from your Git repository to this one. Please be sure to add details about what's changed, if possible.
## Bashbrew
Bashbrew (`bashbrew`) is a tool for cloning, building, tagging, and pushing the Docker official images. See [the Bashbrew `README`](https://github.com/docker-library/bashbrew#readme) for more information.
================================================
FILE: SECURITY.md
================================================
# Security Policy
If you have run a CVE/security scanner on an image and that is why you are here, you should read [our "Why does my security scanner show that an image has CVEs?" FAQ entry](https://github.com/docker-library/faq#why-does-my-security-scanner-show-that-an-image-has-cves).
If you believe you have found a net new security vulnerability, please make every effort to report it to the appropriate maintainers responsibly so that it can be fixed discreetly (also known as "embargo").
When the issue relates to a specific image, please make an effort to (privately) contact the maintainers of that specific image. Some maintainers publish/maintain a `SECRUITY.md` in their GitHub repository, for example, which can be a great place to find information about how to report an issue appropriately.
For issues related to anything maintained under [@docker-library on GitHub](https://github.com/docker-library) or associated infrastructure, please [send an email to `doi@docker.com`](mailto:doi@docker.com) or [use GitHub's security advisory feature](https://github.com/docker-library/official-images/security/advisories/new).
Image maintainers should also be aware of the ["Security Releases" section of the maintainer documentation](https://github.com/docker-library/official-images#security-releases) for pre-notifying the project maintainers of upcoming security-related releases.
================================================
FILE: _bashbrew-cat-sorted.sh
================================================
#!/usr/bin/env bash
set -Eeuo pipefail
# a mimic of "bashbrew cat" which should sort slightly more deterministically (so even full-order-changing PRs should have reasonable diffs)
images="$(
bashbrew list --repos --uniq "$@" \
| sort -uV
)"
set -- $images
declare -A seenGlobal=()
first=1
for img; do
if [ -n "$first" ]; then
first=
else
echo; echo
fi
if [ "$#" -gt 1 ]; then
echo "# $img"
fi
repo="${img%:*}"
if [ -z "${seenGlobal["$repo"]:-}" ]; then
bashbrew cat --format '{{ printf "%s\n" (.Manifest.Global.ClearDefaults defaults) }}' "$img"
seenGlobal["$repo"]="$img"
else
echo "# (see also ${seenGlobal["$repo"]} above)"
fi
bashbrew list --uniq "$img" \
| sort -V \
| xargs -r bashbrew cat --format '
{{- range $e := .TagEntries -}}
{{- printf "\n%s\n" ($e.ClearDefaults $.Manifest.Global) -}}
{{- end -}}
'
done
================================================
FILE: diff-pr.sh
================================================
#!/usr/bin/env bash
set -Eeuo pipefail
shopt -s dotglob
# make sure we can GTFO
trap 'echo >&2 Ctrl+C captured, exiting; exit 1' SIGINT
# if bashbrew is missing, bail early with a sane error
bashbrew --version > /dev/null
usage() {
cat <<-EOUSAGE
usage: $0 [PR number] [repo[:tag]]
ie: $0 1024
$0 9001 debian php django
EOUSAGE
}
# TODO flags parsing
allFiles=
listTarballContents=1
findCopies='20%'
uninterestingTarballContent=(
# "config_diff_2017_01_07.log"
'var/log/YaST2/'
# "ks-script-mqmz_080.log"
# "ks-script-ycfq606i.log"
'var/log/anaconda/'
# "2016-12-20/"
'var/lib/yum/history/'
'var/lib/dnf/history/'
# "a/f8c032d2be757e1a70f00336b55c434219fee230-acl-2.2.51-12.el7-x86_64/var_uuid"
'var/lib/yum/yumdb/'
'var/lib/dnf/yumdb/'
# "b42ff584.0"
'etc/pki/tls/rootcerts/'
# "09/401f736622f2c9258d14388ebd47900bbab126"
'usr/lib/.build-id/'
)
# prints "$2$1$3$1...$N"
join() {
local sep="$1"; shift
local out; printf -v out "${sep//%/%%}%s" "$@"
echo "${out#$sep}"
}
uninterestingTarballGrep="^([.]?/)?($(join '|' "${uninterestingTarballContent[@]}"))"
if [ "$#" -eq 0 ]; then
usage >&2
exit 1
fi
pull="$1" # PR number
shift
diffDir="$(readlink -f "$BASH_SOURCE")"
diffDir="$(dirname "$diffDir")"
tempDir="$(mktemp -d)"
trap "rm -rf '$tempDir'" EXIT
cd "$tempDir"
git clone --quiet \
https://github.com/docker-library/official-images.git \
oi
if [ "$pull" != '0' ]; then
git -C oi fetch --quiet \
origin "pull/$pull/merge":refs/heads/pull
else
git -C oi fetch --quiet --update-shallow \
"$diffDir" HEAD:refs/heads/pull
fi
externalPins=
if [ "$#" -eq 0 ]; then
externalPins="$(git -C oi/.external-pins diff --no-renames --name-only HEAD...pull -- '*/**')"
images="$(git -C oi/library diff --no-renames --name-only HEAD...pull -- .)"
if [ -z "$images" ] && [ -z "$externalPins" ]; then
exit 0
fi
images="$(xargs -rn1 basename <<<"$images")"
set -- $images
fi
export BASHBREW_LIBRARY="$PWD/oi/library"
: "${BASHBREW_ARCH:=amd64}" # TODO something smarter with arches
export BASHBREW_ARCH
# TODO something less hacky than "git archive" hackery, like a "bashbrew archive" or "bashbrew context" or something
template='
tempDir="$(mktemp -d)"
{{- "\n" -}}
{{- range $.Entries -}}
{{- $arch := .HasArchitecture arch | ternary arch (.Architectures | first) -}}
{{- /* cannot replace ArchDockerFroms with bashbrew fetch or the arch selector logic has to be duplicated 🥹*/ -}}
{{- $froms := $.ArchDockerFroms $arch . -}}
{{- $outDir := join "_" $.RepoName (.Tags | last) -}}
git -C "{{ gitCache }}" archive --format=tar
{{- " " -}}
{{- "--prefix=" -}}
{{- $outDir -}}
{{- "/" -}}
{{- " " -}}
{{- .ArchGitCommit $arch -}}
{{- ":" -}}
{{- $dir := .ArchDirectory $arch -}}
{{- (eq $dir ".") | ternary "" $dir -}}
{{- "\n" -}}
mkdir -p "$tempDir/{{- $outDir -}}" && echo "{{- .ArchBuilder $arch -}}" > "$tempDir/{{- $outDir -}}/.bashbrew-builder" && echo "{{- .ArchFile $arch -}}" > "$tempDir/{{- $outDir -}}/.bashbrew-file"
{{- "\n" -}}
{{- end -}}
tar -cC "$tempDir" . && rm -rf "$tempDir"
'
_tar-t() {
tar -t "$@" \
| grep -vE "$uninterestingTarballGrep" \
| sed -e 's!^[.]/!!' \
-r \
-e 's!([/.-]|^)((lib)?(c?python|py)-?)[0-9]+([.][0-9]+)?([/.-]|$)!\1\2XXX\6!g' \
| sort
}
_jq() {
if [ "$#" -eq 0 ]; then
set -- '.'
fi
jq --tab -S "$@"
}
copy-tar() {
local src="$1"; shift
local dst="$1"; shift
if [ -n "$allFiles" ]; then
mkdir -p "$dst"
cp -al "$src"/*/ "$dst/"
return
fi
local d indexes=() dockerfiles=()
for d in "$src"/*/.bashbrew-file; do
[ -f "$d" ] || continue
local bf; bf="$(< "$d")"
local dDir; dDir="$(dirname "$d")"
local builder; builder="$(< "$dDir/.bashbrew-builder")"
if [ "$builder" = 'oci-import' ]; then
indexes+=( "$dDir/$bf" )
else
dockerfiles+=( "$dDir/$bf" )
if [ "$bf" = 'Dockerfile' ]; then
# if "Dockerfile.builder" exists, let's check that too (busybox, hello-world)
if [ -f "$dDir/$bf.builder" ]; then
dockerfiles+=( "$dDir/$bf.builder" )
fi
fi
fi
rm "$d" "$dDir/.bashbrew-builder" # remove the ".bashbrew-*" files we created
done
# now that we're done with our globbing needs, let's disable globbing so it doesn't give us wrong answers
local -
set -o noglob
for i in "${indexes[@]}"; do
local iName; iName="$(basename "$i")"
local iDir; iDir="$(dirname "$i")"
local iDirName; iDirName="$(basename "$iDir")"
local iDst="$dst/$iDirName"
mkdir -p "$iDst"
_jq . "$i" > "$iDst/$iName"
local digest
digest="$(jq -r --arg name "$iName" '
if $name == "index.json" then
.manifests[0].digest
else
.digest
end
' "$i")"
local blob="blobs/${digest//://}"
local blobDir; blobDir="$(dirname "$blob")"
local manifest="$iDir/$blob"
mkdir -p "$iDst/$blobDir"
_jq . "$manifest" > "$iDst/$blob"
local configDigest; configDigest="$(jq -r '.config.digest' "$manifest")"
local blob="blobs/${configDigest//://}"
local blobDir; blobDir="$(dirname "$blob")"
local config="$iDir/$blob"
mkdir -p "$iDst/$blobDir"
_jq . "$config" > "$iDst/$blob"
local layers
layers="$(jq -r '[ .layers[].digest | @sh ] | join(" ")' "$manifest")"
eval "layers=( $layers )"
local layerDigest
for layerDigest in "${layers[@]}"; do
local blob="blobs/${layerDigest//://}"
local blobDir; blobDir="$(dirname "$blob")"
local layer="$iDir/$blob"
mkdir -p "$iDst/$blobDir"
_tar-t -f "$layer" > "$iDst/$blob 'tar -t'"
done
done
for d in "${dockerfiles[@]}"; do
local dDir; dDir="$(dirname "$d")"
local dDirName; dDirName="$(basename "$dDir")"
# TODO choke on "syntax" parser directive
# TODO handle "escape" parser directive reasonably
local flatDockerfile; flatDockerfile="$(
gawk '
BEGIN { line = "" }
/^[[:space:]]*#/ {
gsub(/^[[:space:]]+/, "")
print
next
}
{
if (match($0, /^(.*)(\\[[:space:]]*)$/, m)) {
line = line m[1]
next
}
print line $0
line = ""
}
' "$d"
)"
local IFS=$'\n'
local copyAddContext; copyAddContext="$(awk '
toupper($1) == "COPY" || toupper($1) == "ADD" {
for (i = 2; i < NF; i++) {
if ($i ~ /^--from=/) {
next
}
# COPY and ADD options
if ($i ~ /^--(chown|chmod|link|parents|exclude)=/) {
continue
}
# additional ADD options
if ($i ~ /^--(keep-git-dir|checksum)=/) {
continue
}
for ( ; i < NF; i++) {
print $i
}
}
}
' <<<"$flatDockerfile")"
local dBase; dBase="$(basename "$d")"
local files=(
"$dBase"
$copyAddContext
# some extra files which are likely interesting if they exist, but no big loss if they do not
' .dockerignore' # will be used automatically by "docker build"
' *.manifest' # debian/ubuntu "package versions" list
' *.ks' # fedora "kickstart" (rootfs build script)
' build*.txt' # ubuntu "build-info.txt", debian "build-command.txt"
# usefulness yet to be proven:
#' *.log'
#' {MD5,SHA1,SHA256}SUMS'
#' *.{md5,sha1,sha256}'
# (the space prefix is removed below and is used to ignore non-matching globs so that bad "Dockerfile" entries appropriately lead to failure)
)
unset IFS
mkdir -p "$dst/$dDirName"
local f origF failureMatters
for origF in "${files[@]}"; do
f="${origF# }" # trim off leading space (indicates we don't care about failure)
[ "$f" = "$origF" ] && failureMatters=1 || failureMatters=
local globbed
# "find: warning: -path ./xxx/ will not match anything because it ends with /."
local findGlobbedPath="${f%/}"
findGlobbedPath="${findGlobbedPath#./}"
local globbedStr; globbedStr="$(cd "$dDir" && find -path "./$findGlobbedPath")"
local -a globbed=( $globbedStr )
if [ "${#globbed[@]}" -eq 0 ]; then
globbed=( "$f" )
fi
local g
for g in "${globbed[@]}"; do
local srcG="$dDir/$g" dstG="$dst/$dDirName/$g"
if [ -z "$failureMatters" ] && [ ! -e "$srcG" ]; then
continue
fi
local gDir; gDir="$(dirname "$dstG")"
mkdir -p "$gDir"
cp -alT "$srcG" "$dstG"
if [ -n "$listTarballContents" ]; then
case "$g" in
*.tar.* | *.tgz)
if [ -s "$dstG" ]; then
_tar-t -f "$dstG" > "$dstG 'tar -t'"
fi
;;
esac
fi
done
done
done
}
# a "bashbrew cat" template that gives us the last / "least specific" tags for the arguments
# (in other words, this is "bashbrew list --uniq" but last instead of first)
templateLastTags='
{{- range .TagEntries -}}
{{- $.RepoName -}}
{{- ":" -}}
{{- .Tags | last -}}
{{- "\n" -}}
{{- end -}}
'
_metadata-files() {
if [ "$#" -gt 0 ]; then
bashbrew list "$@" 2>>temp/_bashbrew.err | sort -uV > temp/_bashbrew-list || :
bashbrew cat --format '{{ range .Entries }}{{ range .Architectures }}{{ . }}{{ "\n" }}{{ end }}{{ end }}' "$@" 2>>temp/_bashbrew.err | sort -u > temp/_bashbrew-arches || :
"$diffDir/_bashbrew-cat-sorted.sh" "$@" 2>>temp/_bashbrew.err > temp/_bashbrew-cat || :
# piping "bashbrew list" first so that .TagEntries is filled up (keeping "templateLastTags" simpler)
# sorting that by version number so it's ~stable
# then doing --build-order on that, which is a "stable sort"
# then redoing that list back into "templateLastTags" so we get the tags we want listed (not the tags "--uniq" chooses)
bashbrew list --uniq "$@" \
| xargs -r bashbrew cat --format "$templateLastTags" \
| sort -V \
| xargs -r bashbrew list --uniq --build-order 2>>temp/_bashbrew.err \
| xargs -r bashbrew cat --format "$templateLastTags" 2>>temp/_bashbrew.err \
> temp/_bashbrew-list-build-order || :
# oci images can't be fetched with ArchDockerFroms
# todo: use each first arch instead of current arch
bashbrew fetch --arch-filter "$@"
script="$(bashbrew cat --format "$template" "$@")"
mkdir tar
( eval "$script" | tar -xiC tar )
copy-tar tar temp
rm -rf tar
# TODO we should *also* validate that our lists ended up non-empty 😬
cat >&2 temp/_bashbrew.err
fi
if [ -n "$externalPins" ] && command -v crane &> /dev/null; then
local file
for file in $externalPins; do
[ -e "oi/$file" ] || continue
local pin digest dir
pin="$("$diffDir/.external-pins/tag.sh" "$file")"
digest="$(< "oi/$file")"
dir="temp/$file"
mkdir -p "$dir"
bashbrew remote arches --json "$pin@$digest" | _jq > "$dir/bashbrew.json"
local manifests manifest
manifests="$(jq -r '
[ (
.arches
| if has(env.BASHBREW_ARCH) then
.[env.BASHBREW_ARCH]
else
.[keys_unsorted | first]
end
)[].digest | @sh ]
| join(" ")
' "$dir/bashbrew.json")"
eval "manifests=( $manifests )"
for manifest in "${manifests[@]}"; do
crane manifest "$pin@$manifest" | _jq > "$dir/manifest-${manifest//:/_}.json"
local config
config="$(jq -r '.config.digest' "$dir/manifest-${manifest//:/_}.json")"
crane blob "$pin@$config" | _jq > "$dir/manifest-${manifest//:/_}-config.json"
done
done
fi
}
mkdir temp
git -C temp init --quiet
git -C temp config user.name 'Bogus'
git -C temp config user.email 'bogus@bogus'
# handle "new-image" PRs gracefully
for img; do touch "$BASHBREW_LIBRARY/$img"; [ -s "$BASHBREW_LIBRARY/$img" ] || echo 'Maintainers: New Image! :D (@docker-library-bot)' > "$BASHBREW_LIBRARY/$img"; done
_metadata-files "$@"
git -C temp add . || :
git -C temp commit --quiet --allow-empty -m 'initial' || :
git -C oi clean --quiet --force
git -C oi checkout --quiet pull
# handle "deleted-image" PRs gracefully :(
for img; do touch "$BASHBREW_LIBRARY/$img"; [ -s "$BASHBREW_LIBRARY/$img" ] || echo 'Maintainers: Deleted Image D: (@docker-library-bot)' > "$BASHBREW_LIBRARY/$img"; done
git -C temp rm --quiet -rf . || :
_metadata-files "$@"
git -C temp add .
git -C temp diff \
--find-copies-harder \
--find-copies="$findCopies" \
--find-renames="$findCopies" \
--ignore-blank-lines \
--ignore-space-at-eol \
--ignore-space-change \
--irreversible-delete \
--minimal \
--staged
================================================
FILE: library/adminer
================================================
# this file is generated via https://github.com/TimWolla/docker-adminer/blob/d05fa68d13a889364cf8c81884ecf1a11a37957f/generate-stackbrew-library.sh
Maintainers: Tim Düsterhus <tim@bastelstu.be> (@TimWolla)
GitRepo: https://github.com/TimWolla/docker-adminer.git
Tags: 5.4.2, 5, latest, 5.4.2-standalone, 5-standalone, standalone
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 1c484a27a9cc34ad306dfd63856db49ad7cb4bbe
Directory: 5
Tags: 5.4.2-fastcgi, 5-fastcgi, fastcgi
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 1c484a27a9cc34ad306dfd63856db49ad7cb4bbe
Directory: 5/fastcgi
Tags: 4.17.1, 4, 4.17.1-standalone, 4-standalone
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 0c0fd187e8646ad61fe592a80d66abec2c1dc951
Directory: 4
Tags: 4.17.1-fastcgi, 4-fastcgi
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 0c0fd187e8646ad61fe592a80d66abec2c1dc951
Directory: 4/fastcgi
================================================
FILE: library/aerospike
================================================
Maintainers: Lucien Volmar <lucien@aerospike.com> (@volmarl),
Michael Coberly <mcoberly@aerospike.com> (@mcoberly2),
Phuc Vinh <pvinh@aerospike.com> (@pvinh-spike),
Kevin Porter <kporter@aerospike.com> (@kportertx),
Thomas Huelbert <thuelbert@aerospike.com> (@thomasaerospike)
Tags: ee-8.1.1.1, ee-8.1.1.1_1
Architectures: amd64, arm64v8
GitRepo: https://github.com/aerospike/aerospike-server.docker.git
GitCommit: 8b5917e1d0dba5b3d7f7ea8839a6bbe74f609b1b
Directory: enterprise/ubuntu24.04
Tags: ce-8.1.1.1, ce-8.1.1.1_1
Architectures: amd64, arm64v8
GitRepo: https://github.com/aerospike/aerospike-server.docker.git
GitCommit: 8b5917e1d0dba5b3d7f7ea8839a6bbe74f609b1b
Directory: community/ubuntu24.04
================================================
FILE: library/almalinux
================================================
# This file was generated on https://github.com/AlmaLinux/container-images/actions/runs/22493082393
Maintainers: The AlmaLinux OS Foundation <cloud-infra@almalinux.org> (@AlmaLinux)
GitRepo: https://github.com/AlmaLinux/container-images.git
Tags: 10-kitten, 10-kitten-20260227
GitFetch: refs/heads/10-kitten
GitCommit: f03a0f177d767ab6a5745773d9c519d8e14e14a7
amd64-Directory: default/amd64/
arm64v8-Directory: default/arm64/
ppc64le-Directory: default/ppc64le/
s390x-Directory: default/s390x/
riscv64-Directory: default/riscv64/
Architectures: amd64, arm64v8, ppc64le, s390x, riscv64
Tags: 10-kitten-minimal, 10-kitten-minimal-20260227
GitFetch: refs/heads/10-kitten
GitCommit: f03a0f177d767ab6a5745773d9c519d8e14e14a7
amd64-Directory: minimal/amd64/
arm64v8-Directory: minimal/arm64/
ppc64le-Directory: minimal/ppc64le/
s390x-Directory: minimal/s390x/
riscv64-Directory: minimal/riscv64/
Architectures: amd64, arm64v8, ppc64le, s390x, riscv64
Tags: latest, 10, 10.1, 10.1-20260129
GitFetch: refs/heads/10
GitCommit: af233919d4574c14336c76f427d3aed477025828
amd64-Directory: default/amd64/
arm64v8-Directory: default/arm64/
ppc64le-Directory: default/ppc64le/
s390x-Directory: default/s390x/
Architectures: amd64, arm64v8, ppc64le, s390x
Tags: minimal, 10-minimal, 10.1-minimal, 10.1-minimal-20260129
GitFetch: refs/heads/10
GitCommit: af233919d4574c14336c76f427d3aed477025828
amd64-Directory: minimal/amd64/
arm64v8-Directory: minimal/arm64/
ppc64le-Directory: minimal/ppc64le/
s390x-Directory: minimal/s390x/
Architectures: amd64, arm64v8, ppc64le, s390x
Tags: 8, 8.10, 8.10-20260129
GitFetch: refs/heads/8
GitCommit: dd2f4548f9b440b794a379472aaef1a9aca1ef38
amd64-Directory: default/amd64/
arm64v8-Directory: default/arm64/
ppc64le-Directory: default/ppc64le/
s390x-Directory: default/s390x/
Architectures: amd64, arm64v8, ppc64le, s390x
Tags: 8-minimal, 8.10-minimal, 8.10-minimal-20260129
GitFetch: refs/heads/8
GitCommit: dd2f4548f9b440b794a379472aaef1a9aca1ef38
amd64-Directory: minimal/amd64/
arm64v8-Directory: minimal/arm64/
ppc64le-Directory: minimal/ppc64le/
s390x-Directory: minimal/s390x/
Architectures: amd64, arm64v8, ppc64le, s390x
Tags: 9, 9.7, 9.7-20260129
GitFetch: refs/heads/9
GitCommit: 12e644ec2f45dab879fa299bb3c08f300f9eeb35
amd64-Directory: default/amd64/
arm64v8-Directory: default/arm64/
ppc64le-Directory: default/ppc64le/
s390x-Directory: default/s390x/
Architectures: amd64, arm64v8, ppc64le, s390x
Tags: 9-minimal, 9.7-minimal, 9.7-minimal-20260129
GitFetch: refs/heads/9
GitCommit: 12e644ec2f45dab879fa299bb3c08f300f9eeb35
amd64-Directory: minimal/amd64/
arm64v8-Directory: minimal/arm64/
ppc64le-Directory: minimal/ppc64le/
s390x-Directory: minimal/s390x/
Architectures: amd64, arm64v8, ppc64le, s390x
================================================
FILE: library/alpine
================================================
Maintainers: Natanael Copa <ncopa@alpinelinux.org> (@ncopa)
GitRepo: https://github.com/alpinelinux/docker-alpine.git
Tags: 20260127, edge
Architectures: arm64v8, arm32v6, arm32v7, ppc64le, riscv64, s390x, i386, amd64
GitFetch: refs/heads/edge
GitCommit: c5f299db02fde44c146488e2161773e1daebe581
arm64v8-Directory: aarch64/
arm32v6-Directory: armhf/
arm32v7-Directory: armv7/
ppc64le-Directory: ppc64le/
riscv64-Directory: riscv64/
s390x-Directory: s390x/
i386-Directory: x86/
amd64-Directory: x86_64/
Tags: 3.23.3, 3.23, 3, latest
Architectures: arm64v8, arm32v6, arm32v7, ppc64le, riscv64, s390x, i386, amd64
GitFetch: refs/heads/v3.23
GitCommit: a037d70ba44f91b00dff940019d29a28f7ba1265
arm64v8-Directory: aarch64/
arm32v6-Directory: armhf/
arm32v7-Directory: armv7/
ppc64le-Directory: ppc64le/
riscv64-Directory: riscv64/
s390x-Directory: s390x/
i386-Directory: x86/
amd64-Directory: x86_64/
Tags: 3.22.3, 3.22
Architectures: arm64v8, arm32v6, arm32v7, ppc64le, riscv64, s390x, i386, amd64
GitFetch: refs/heads/v3.22
GitCommit: c65c121d664a527ec65e1fa4cecc9063fff656da
arm64v8-Directory: aarch64/
arm32v6-Directory: armhf/
arm32v7-Directory: armv7/
ppc64le-Directory: ppc64le/
riscv64-Directory: riscv64/
s390x-Directory: s390x/
i386-Directory: x86/
amd64-Directory: x86_64/
Tags: 3.21.6, 3.21
Architectures: arm64v8, arm32v6, arm32v7, ppc64le, riscv64, s390x, i386, amd64
GitFetch: refs/heads/v3.21
GitCommit: d9ff52957b2fe5361ffeb5d871db8c321e5605d8
arm64v8-Directory: aarch64/
arm32v6-Directory: armhf/
arm32v7-Directory: armv7/
ppc64le-Directory: ppc64le/
riscv64-Directory: riscv64/
s390x-Directory: s390x/
i386-Directory: x86/
amd64-Directory: x86_64/
Tags: 3.20.9, 3.20
Architectures: arm64v8, arm32v6, arm32v7, ppc64le, riscv64, s390x, i386, amd64
GitFetch: refs/heads/v3.20
GitCommit: b3f87708e5052e29737a251b2e9865e182dafe0c
arm64v8-Directory: aarch64/
arm32v6-Directory: armhf/
arm32v7-Directory: armv7/
ppc64le-Directory: ppc64le/
riscv64-Directory: riscv64/
s390x-Directory: s390x/
i386-Directory: x86/
amd64-Directory: x86_64/
================================================
FILE: library/alt
================================================
Maintainers: ALT Linux Team Cloud <alt-cloud@altlinux.org> (@alt-cloud),
Alexey Shabalin <shaba@altlinux.org> (@shaba),
Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org> (@glebfm),
Nadezhda Fedorova <fedor@altlunux.org> (@FNDenisovna)
GitRepo: https://github.com/alt-cloud/docker-brew-alt.git
Tags: p10
Architectures: amd64, i386, arm64v8
GitFetch: refs/heads/p10
GitCommit: 920886636db2d75287b93587f841b2fdb46ec711
amd64-Directory: x86_64/
i386-Directory: i586/
arm64v8-Directory: aarch64/
Tags: sisyphus
Architectures: amd64, i386, arm64v8, riscv64
GitFetch: refs/heads/sisyphus
GitCommit: a700dbea4a6d8aa769e1cfcf651bdf162494b518
amd64-Directory: x86_64/
arm64v8-Directory: aarch64/
i386-Directory: i586/
riscv64-Directory: riscv64/
Tags: p11, latest
Architectures: amd64, i386, arm64v8
GitFetch: refs/heads/p11
GitCommit: bf8979511d2508a410db13b840302df6ccbb59a6
amd64-Directory: x86_64/
arm64v8-Directory: aarch64/
i386-Directory: i586/
================================================
FILE: library/amazoncorretto
================================================
Maintainers: Amazon Corretto Team <corretto-team@amazon.com> (@corretto),
Dan Lutker <lutkerd@amazon.com> (@lutkerd),
Ben Taylor <benty@amazon.com> (@benty-amzn),
David Alvarez <alvdavi@amazon.com> (@alvdavi),
Rui Li <ruiamzn@amazon.com> (@rgithubli),
Sergey Bylokhov <bylokhov@amazon.com> (@mrserb),
Victor Rudometov <vicrud@amazon.com> (@Rudometov),
Elif Aslan <elifasln@amazon.com> (@elifaslan1),
Chad Rakoczy <chadrako@amazon.com> (@chadrako),
Ian Myers <ianrichr@amazon.com> (@ianrichr),
John Spurling <spurn@amazon.com> (@synecdoche),
Daniel Hu <costmuch@amazon.com> (@cost0much),
Michael De Vera <mldevera@amazon.com> (@midver),
Min Choi <minschoi@amazon.com> (@mmm-choi),
Satyen Subramaniam <satyenme@amazon.com> (@satyenme)
GitRepo: https://github.com/corretto/corretto-docker.git
GitFetch: refs/heads/main
GitCommit: b96e13a7da2cf50ccd332b3f18e280d2068dfbeb
Tags: 8, 8u482, 8u482-al2, 8-al2-full, 8-al2-jdk, 8-al2-generic, 8u482-al2-generic, 8-al2-generic-jdk, latest
Architectures: amd64, arm64v8
Directory: 8/jdk/al2-generic
Tags: 8-al2023, 8u482-al2023, 8-al2023-jdk
Architectures: amd64, arm64v8
Directory: 8/jdk/al2023
Tags: 8-al2023-jre, 8u482-al2023-jre
Architectures: amd64, arm64v8
Directory: 8/jdk/al2023
Tags: 8-al2-native-jre, 8u482-al2-native-jre
Architectures: amd64, arm64v8
Directory: 8/jre/al2
Tags: 8-al2-native-jdk, 8u482-al2-native-jdk
Architectures: amd64, arm64v8
Directory: 8/jdk/al2
Tags: 8-alpine3.20, 8u482-alpine3.20, 8-alpine3.20-full, 8-alpine3.20-jdk
Architectures: amd64, arm64v8
Directory: 8/jdk/alpine/3.20
Tags: 8-alpine3.20-jre, 8u482-alpine3.20-jre
Architectures: amd64, arm64v8
Directory: 8/jre/alpine/3.20
Tags: 8-alpine3.21, 8u482-alpine3.21, 8-alpine3.21-full, 8-alpine3.21-jdk
Architectures: amd64, arm64v8
Directory: 8/jdk/alpine/3.21
Tags: 8-alpine3.21-jre, 8u482-alpine3.21-jre
Architectures: amd64, arm64v8
Directory: 8/jre/alpine/3.21
Tags: 8-alpine3.22, 8u482-alpine3.22, 8-alpine3.22-full, 8-alpine3.22-jdk
Architectures: amd64, arm64v8
Directory: 8/jdk/alpine/3.22
Tags: 8-alpine3.22-jre, 8u482-alpine3.22-jre
Architectures: amd64, arm64v8
Directory: 8/jre/alpine/3.22
Tags: 8-alpine3.23, 8u482-alpine3.23, 8-alpine3.23-full, 8-alpine3.23-jdk, 8-alpine, 8u482-alpine, 8-alpine-full, 8-alpine-jdk
Architectures: amd64, arm64v8
Directory: 8/jdk/alpine/3.23
Tags: 8-alpine3.23-jre, 8u482-alpine3.23-jre, 8-alpine-jre, 8u482-alpine-jre
Architectures: amd64, arm64v8
Directory: 8/jre/alpine/3.23
Tags: 11, 11.0.30, 11.0.30-al2, 11-al2-full, 11-al2-jdk, 11-al2-generic, 11.0.30-al2-generic, 11-al2-generic-jdk
Architectures: amd64, arm64v8
Directory: 11/jdk/al2-generic
Tags: 11-al2023, 11.0.30-al2023, 11-al2023-jdk
Architectures: amd64, arm64v8
Directory: 11/jdk/al2023
Tags: 11-al2023-headless, 11.0.30-al2023-headless
Architectures: amd64, arm64v8
Directory: 11/headless/al2023
Tags: 11-al2023-headful, 11.0.30-al2023-headful
Architectures: amd64, arm64v8
Directory: 11/headful/al2023
Tags: 11-al2-native-headless, 11.0.30-al2-native-headless
Architectures: amd64, arm64v8
Directory: 11/headless/al2
Tags: 11-al2-native-jdk, 11.0.30-al2-native-jdk
Architectures: amd64, arm64v8
Directory: 11/jdk/al2
Tags: 11-alpine3.20, 11.0.30-alpine3.20, 11-alpine3.20-full, 11-alpine3.20-jdk
Architectures: amd64, arm64v8
Directory: 11/jdk/alpine/3.20
Tags: 11-alpine3.21, 11.0.30-alpine3.21, 11-alpine3.21-full, 11-alpine3.21-jdk
Architectures: amd64, arm64v8
Directory: 11/jdk/alpine/3.21
Tags: 11-alpine3.22, 11.0.30-alpine3.22, 11-alpine3.22-full, 11-alpine3.22-jdk
Architectures: amd64, arm64v8
Directory: 11/jdk/alpine/3.22
Tags: 11-alpine3.23, 11.0.30-alpine3.23, 11-alpine3.23-full, 11-alpine3.23-jdk, 11-alpine, 11.0.30-alpine, 11-alpine-full, 11-alpine-jdk
Architectures: amd64, arm64v8
Directory: 11/jdk/alpine/3.23
Tags: 17, 17.0.18, 17.0.18-al2, 17-al2-full, 17-al2-jdk, 17-al2-generic, 17.0.18-al2-generic, 17-al2-generic-jdk
Architectures: amd64, arm64v8
Directory: 17/jdk/al2-generic
Tags: 17-al2023, 17.0.18-al2023, 17-al2023-jdk
Architectures: amd64, arm64v8
Directory: 17/jdk/al2023
Tags: 17-al2023-headless, 17.0.18-al2023-headless
Architectures: amd64, arm64v8
Directory: 17/headless/al2023
Tags: 17-al2023-headful, 17.0.18-al2023-headful
Architectures: amd64, arm64v8
Directory: 17/headful/al2023
Tags: 17-al2-native-headless, 17.0.18-al2-native-headless
Architectures: amd64, arm64v8
Directory: 17/headless/al2
Tags: 17-al2-native-headful, 17.0.18-al2-native-headful
Architectures: amd64, arm64v8
Directory: 17/headful/al2
Tags: 17-al2-native-jdk, 17.0.18-al2-native-jdk
Architectures: amd64, arm64v8
Directory: 17/jdk/al2
Tags: 17-alpine3.20, 17.0.18-alpine3.20, 17-alpine3.20-full, 17-alpine3.20-jdk
Architectures: amd64, arm64v8
Directory: 17/jdk/alpine/3.20
Tags: 17-alpine3.21, 17.0.18-alpine3.21, 17-alpine3.21-full, 17-alpine3.21-jdk
Architectures: amd64, arm64v8
Directory: 17/jdk/alpine/3.21
Tags: 17-alpine3.22, 17.0.18-alpine3.22, 17-alpine3.22-full, 17-alpine3.22-jdk
Architectures: amd64, arm64v8
Directory: 17/jdk/alpine/3.22
Tags: 17-alpine3.23, 17.0.18-alpine3.23, 17-alpine3.23-full, 17-alpine3.23-jdk, 17-alpine, 17.0.18-alpine, 17-alpine-full, 17-alpine-jdk
Architectures: amd64, arm64v8
Directory: 17/jdk/alpine/3.23
Tags: 21, 21.0.10, 21.0.10-al2, 21-al2-full, 21-al2-jdk, 21-al2-generic, 21.0.10-al2-generic, 21-al2-generic-jdk
Architectures: amd64, arm64v8
Directory: 21/jdk/al2-generic
Tags: 21-al2023, 21.0.10-al2023, 21-al2023-jdk
Architectures: amd64, arm64v8
Directory: 21/jdk/al2023
Tags: 21-al2023-headless, 21.0.10-al2023-headless
Architectures: amd64, arm64v8
Directory: 21/headless/al2023
Tags: 21-al2023-headful, 21.0.10-al2023-headful
Architectures: amd64, arm64v8
Directory: 21/headful/al2023
Tags: 21-alpine3.20, 21.0.10-alpine3.20, 21-alpine3.20-full, 21-alpine3.20-jdk
Architectures: amd64, arm64v8
Directory: 21/jdk/alpine/3.20
Tags: 21-alpine3.21, 21.0.10-alpine3.21, 21-alpine3.21-full, 21-alpine3.21-jdk
Architectures: amd64, arm64v8
Directory: 21/jdk/alpine/3.21
Tags: 21-alpine3.22, 21.0.10-alpine3.22, 21-alpine3.22-full, 21-alpine3.22-jdk
Architectures: amd64, arm64v8
Directory: 21/jdk/alpine/3.22
Tags: 21-alpine3.23, 21.0.10-alpine3.23, 21-alpine3.23-full, 21-alpine3.23-jdk, 21-alpine, 21.0.10-alpine, 21-alpine-full, 21-alpine-jdk
Architectures: amd64, arm64v8
Directory: 21/jdk/alpine/3.23
Tags: 25-al2023, 25.0.2-al2023, 25-al2023-jdk, 25, 25-jdk, 25.0.2
Architectures: amd64, arm64v8
Directory: 25/jdk/al2023
Tags: 25-al2023-headless, 25.0.2-al2023-headless, 25-headless
Architectures: amd64, arm64v8
Directory: 25/headless/al2023
Tags: 25-al2023-headful, 25.0.2-al2023-headful, 25-headful
Architectures: amd64, arm64v8
Directory: 25/headful/al2023
Tags: 25-alpine3.20, 25.0.2-alpine3.20, 25-alpine3.20-full, 25-alpine3.20-jdk
Architectures: amd64, arm64v8
Directory: 25/jdk/alpine/3.20
Tags: 25-alpine3.21, 25.0.2-alpine3.21, 25-alpine3.21-full, 25-alpine3.21-jdk
Architectures: amd64, arm64v8
Directory: 25/jdk/alpine/3.21
Tags: 25-alpine3.22, 25.0.2-alpine3.22, 25-alpine3.22-full, 25-alpine3.22-jdk
Architectures: amd64, arm64v8
Directory: 25/jdk/alpine/3.22
Tags: 25-alpine3.23, 25.0.2-alpine3.23, 25-alpine3.23-full, 25-alpine3.23-jdk, 25-alpine, 25.0.2-alpine, 25-alpine-full, 25-alpine-jdk
Architectures: amd64, arm64v8
Directory: 25/jdk/alpine/3.23
Tags: 26-al2023, 26.0.0-al2023, 26-al2023-jdk, 26, 26-jdk, 26.0.0
Architectures: amd64, arm64v8
Directory: 26/jdk/al2023
Tags: 26-al2023-headless, 26.0.0-al2023-headless, 26-headless
Architectures: amd64, arm64v8
Directory: 26/headless/al2023
Tags: 26-al2023-headful, 26.0.0-al2023-headful, 26-headful
Architectures: amd64, arm64v8
Directory: 26/headful/al2023
Tags: 26-alpine3.20, 26.0.0-alpine3.20, 26-alpine3.20-full, 26-alpine3.20-jdk
Architectures: amd64, arm64v8
Directory: 26/jdk/alpine/3.20
Tags: 26-alpine3.21, 26.0.0-alpine3.21, 26-alpine3.21-full, 26-alpine3.21-jdk
Architectures: amd64, arm64v8
Directory: 26/jdk/alpine/3.21
Tags: 26-alpine3.22, 26.0.0-alpine3.22, 26-alpine3.22-full, 26-alpine3.22-jdk
Architectures: amd64, arm64v8
Directory: 26/jdk/alpine/3.22
Tags: 26-alpine3.23, 26.0.0-alpine3.23, 26-alpine3.23-full, 26-alpine3.23-jdk, 26-alpine, 26.0.0-alpine, 26-alpine-full, 26-alpine-jdk
Architectures: amd64, arm64v8
Directory: 26/jdk/alpine/3.23
================================================
FILE: library/amazonlinux
================================================
Maintainers: Amazon Linux <amazon-linux@amazon.com> (@amazonlinux),
Frédérick Lefebvre (@fred-lefebvre),
Stewart Smith (@stewartsmith),
Christopher Miller (@mysteriouspants),
Sumit Tomer (@sktomer),
Jason Jiannuo Pei (@peijiannuo),
Michael Mammo (@MichaelAbebaw),
Piyush Talreja (@piyush-talreja),
Akhila Katkuri (@Akhilark1202),
Neelkanth Poosa (@neelkanthpoosa),
Ishwar Thirunavukkarasu (@ishwartg)
GitRepo: https://github.com/amazonlinux/container-images.git
GitCommit: cc7a1876866f4056fa73a789a5b758358151c189
Tags: 2023, latest, 2023.10.20260302.1
Architectures: amd64, arm64v8
amd64-GitFetch: refs/heads/al2023
amd64-GitCommit: 067442068b2c915e7af7b61c6a58cf0cf422e470
arm64v8-GitFetch: refs/heads/al2023-arm64
arm64v8-GitCommit: f98d788e7b60d3eae932e1f69c5c1284a75269e5
Tags: 2, 2.0.20260302.0
Architectures: amd64, arm64v8
amd64-GitFetch: refs/heads/amzn2
amd64-GitCommit: 9925759ad43f2e78e58edf31f16dac11a51bee64
arm64v8-GitFetch: refs/heads/amzn2-arm64
arm64v8-GitCommit: 44b55b829fc1004c4da08cd9c2dd7e215921226f
Tags: 1, 2018.03, 2018.03.0.20231218.0
Architectures: amd64
amd64-GitFetch: refs/heads/2018.03
amd64-GitCommit: cfb41ad1c7624786ea10f60c15ce9c117c4da3b6
================================================
FILE: library/api-firewall
================================================
Maintainers: Ivan Novikov <in@wallarm.com> (@d0znpp),
Nikolay Tkachenko (@afr1ka)
GitRepo: https://github.com/wallarm/api-firewall-docker.git
Tags: 0.9.5, latest
Architectures: amd64, arm64v8, i386
GitCommit: f8ae1a56dccac4d1d8e918c0867b37f3cc40ffb2
GitFetch: refs/heads/main
Directory: 0.9.5
================================================
FILE: library/arangodb
================================================
Maintainers: Frank Celler <info@arangodb.com> (@fceller), Wilfried Goesgens <w.goesgens@arangodb.org> (@dothebart), Vadim Kondratev <vadim@arangodb.org> (@KVS85)
GitRepo: https://github.com/arangodb/arangodb-docker
GitFetch: refs/heads/official
Tags: 3.12, 3.12.8, latest
Architectures: amd64, arm64v8
GitCommit: 30ea7cc3dc73075d9b9f0c5295fd65e33803f197
Directory: alpine/3.12.8
================================================
FILE: library/archlinux
================================================
# https://gitlab.archlinux.org/archlinux/archlinux-docker
Maintainers: Santiago Torres-Arias <santiago@archlinux.org> (@SantiagoTorres),
Christian Rebischke <Chris.Rebischke@archlinux.org> (@shibumi),
Justin Kromlinger <hashworks@archlinux.org> (@hashworks)
GitRepo: https://gitlab.archlinux.org/archlinux/archlinux-docker.git
Tags: latest, base, base-20260315.0.500537
GitCommit: 0fc0a650d90bf036a88bb3cc188e981becce59ab
GitFetch: refs/tags/v20260315.0.500537
File: Dockerfile.base
Tags: base-devel, base-devel-20260315.0.500537
GitCommit: 0fc0a650d90bf036a88bb3cc188e981becce59ab
GitFetch: refs/tags/v20260315.0.500537
File: Dockerfile.base-devel
Tags: multilib-devel, multilib-devel-20260315.0.500537
GitCommit: 0fc0a650d90bf036a88bb3cc188e981becce59ab
GitFetch: refs/tags/v20260315.0.500537
File: Dockerfile.multilib-devel
================================================
FILE: library/azul-zulu
================================================
Maintainers: Azul Devops Team <devops@azul.com> (@azul-publisher),
Pavel Petroshenko <pavel@azul.com> (@ppetrosh),
Anton Kozlov <akozlov@azul.com> (@AntonKozlov),
Sergey Grinev <sergey.grinev@azul.com> (@sgrinev),
Daniel Sentivany <dsentivany@azul.com> (@dsent9),
Frank Delporte <fdelporte@azul.com> (@fdelporte),
Geertjan Wielenga <gwielenga@azul.com> (@geertjanw)
GitRepo: https://github.com/AzulSystems/azul-zulu-images.git
GitFetch: refs/heads/main
GitCommit: e8b7c6c813f173f44d5aab27ed399f8346a0763c
Tags: 8.92-8.0.482-jdk-debian13, 8, 8-jdk, 8-jdk-debian, 8-jdk-debian13
Architectures: amd64, arm64v8
Directory: 8/jdk/debian
Tags: 8.92-8.0.482-jdk-headless-debian13, 8-headless, 8-headless-debian, 8-headless-debian13
Architectures: amd64, arm64v8
Directory: 8/jdk-headless/debian
Tags: 8.92-8.0.482-jre-debian13, 8-jre, 8-jre-debian, 8-jre-debian13
Architectures: amd64, arm64v8
Directory: 8/jre/debian
Tags: 8.92-8.0.482-jre-headless-debian13, 8-jre-headless, 8-jre-headless-debian, 8-jre-headless-debian13
Architectures: amd64, arm64v8
Directory: 8/jre-headless/debian
Tags: 11.86-11.0.30-jdk-debian13, 11, 11-jdk, 11-jdk-debian, 11-jdk-debian13
Architectures: amd64, arm64v8
Directory: 11/jdk/debian
Tags: 11.86-11.0.30-jdk-headless-debian13, 11-headless, 11-headless-debian, 11-headless-debian13
Architectures: amd64, arm64v8
Directory: 11/jdk-headless/debian
Tags: 11.86-11.0.30-jre-debian13, 11-jre, 11-jre-debian, 11-jre-debian13
Architectures: amd64, arm64v8
Directory: 11/jre/debian
Tags: 11.86-11.0.30-jre-headless-debian13, 11-jre-headless, 11-jre-headless-debian, 11-jre-headless-debian13
Architectures: amd64, arm64v8
Directory: 11/jre-headless/debian
Tags: 17.64-17.0.18-jdk-debian13, 17, 17-jdk, 17-jdk-debian, 17-jdk-debian13
Architectures: amd64, arm64v8
Directory: 17/jdk/debian
Tags: 17.64-17.0.18-jdk-headless-debian13, 17-headless, 17-headless-debian, 17-headless-debian13
Architectures: amd64, arm64v8
Directory: 17/jdk-headless/debian
Tags: 17.64-17.0.18-jre-debian13, 17-jre, 17-jre-debian, 17-jre-debian13
Architectures: amd64, arm64v8
Directory: 17/jre/debian
Tags: 17.64-17.0.18-jre-headless-debian13, 17-jre-headless, 17-jre-headless-debian, 17-jre-headless-debian13
Architectures: amd64, arm64v8
Directory: 17/jre-headless/debian
Tags: 21.48-21.0.10-jdk-debian13, 21, 21-jdk, 21-jdk-debian, 21-jdk-debian13
Architectures: amd64, arm64v8
Directory: 21/jdk/debian
Tags: 21.48-21.0.10-jdk-headless-debian13, 21-headless, 21-headless-debian, 21-headless-debian13
Architectures: amd64, arm64v8
Directory: 21/jdk-headless/debian
Tags: 21.48-21.0.10-jre-debian13, 21-jre, 21-jre-debian, 21-jre-debian13
Architectures: amd64, arm64v8
Directory: 21/jre/debian
Tags: 21.48-21.0.10-jre-headless-debian13, 21-jre-headless, 21-jre-headless-debian, 21-jre-headless-debian13
Architectures: amd64, arm64v8
Directory: 21/jre-headless/debian
Tags: 25.32-25.0.2-jdk-debian13, 25, 25-jdk, 25-jdk-debian, 25-jdk-debian13
Architectures: amd64, arm64v8
Directory: 25/jdk/debian
Tags: 25.32-25.0.2-jdk-headless-debian13, 25-headless, 25-headless-debian, 25-headless-debian13
Architectures: amd64, arm64v8
Directory: 25/jdk-headless/debian
Tags: 25.32-25.0.2-jre-debian13, 25-jre, 25-jre-debian, 25-jre-debian13
Architectures: amd64, arm64v8
Directory: 25/jre/debian
Tags: 25.32-25.0.2-jre-headless-debian13, 25-jre-headless, 25-jre-headless-debian, 25-jre-headless-debian13
Architectures: amd64, arm64v8
Directory: 25/jre-headless/debian
Tags: 26.28-26.0.0-jdk-debian13, 26, 26-jdk, 26-jdk-debian, 26-jdk-debian13
Architectures: amd64, arm64v8
Directory: 26/jdk/debian
Tags: 26.28-26.0.0-jdk-headless-debian13, 26-headless, 26-headless-debian, 26-headless-debian13
Architectures: amd64, arm64v8
Directory: 26/jdk-headless/debian
Tags: 26.28-26.0.0-jre-debian13, 26-jre, 26-jre-debian, 26-jre-debian13
Architectures: amd64, arm64v8
Directory: 26/jre/debian
Tags: 26.28-26.0.0-jre-headless-debian13, 26-jre-headless, 26-jre-headless-debian, 26-jre-headless-debian13
Architectures: amd64, arm64v8
Directory: 26/jre-headless/debian
================================================
FILE: library/backdrop
================================================
Maintainers: Mike Pirog <mike@kalabox.io> (@pirog),
Geoff St. Pierre <serundeputy@gmail.com> (@serundeputy),
Jen Lampton <jen+docker@jeneration.com> (@jenlampton),
Greg Netsas <greg@userfriendly.tech> (@klonos)
GitRepo: https://github.com/backdrop-ops/backdrop-docker.git
Tags: 1.33.0, 1.33, 1, 1.33.0-apache, 1.33-apache, 1-apache, apache, latest
Architectures: amd64, arm64v8
GitCommit: 7507205f204226257a3686d581f2a44efa4c998c
Directory: 1/apache
Tags: 1.33.0-fpm, 1.33-fpm, 1-fpm, fpm
Architectures: amd64, arm64v8
GitCommit: 7507205f204226257a3686d581f2a44efa4c998c
Directory: 1/fpm
================================================
FILE: library/bash
================================================
# this file is generated via https://github.com/tianon/docker-bash/blob/59788c3224d1c11f14518f6c860ce6bccaf21d54/generate-stackbrew-library.sh
Maintainers: Tianon Gravi <admwiggin@gmail.com> (@tianon)
GitRepo: https://github.com/tianon/docker-bash.git
Tags: devel-20260309, devel, devel-20260309-alpine3.23, devel-alpine3.23
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 5b559e99a3edb62532ae3a1c4ed7de7ed7c0c10c
Directory: devel
Tags: 5.3.9, 5.3, 5, latest, 5.3.9-alpine3.23, 5.3-alpine3.23, 5-alpine3.23, alpine3.23
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 59999c513d9e7bddb3972d38aa112af045cb0e80
Directory: 5.3
Tags: 5.2.37, 5.2, 5.2.37-alpine3.22, 5.2-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 9fc164bd1a8e4bfe16c517623ce935dc821bbb08
Directory: 5.2
Tags: 5.1.16, 5.1, 5.1.16-alpine3.22, 5.1-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 8ba8423bc0d3339722d4ba2d1af1f53fd179f506
Directory: 5.1
Tags: 5.0.18, 5.0, 5.0.18-alpine3.22, 5.0-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 5f58d08f8ee4a558b8302ef22352af99d4beedfd
Directory: 5.0
Tags: 4.4.23, 4.4, 4, 4.4.23-alpine3.22, 4.4-alpine3.22, 4-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 099d6114cbdb9b016fb8c4beb653187df002f66f
Directory: 4.4
Tags: 4.3.48, 4.3, 4.3.48-alpine3.22, 4.3-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 099d6114cbdb9b016fb8c4beb653187df002f66f
Directory: 4.3
Tags: 4.2.53, 4.2, 4.2.53-alpine3.22, 4.2-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 8556e37dc74a044cfd6e8255acfd116a5bdb8588
Directory: 4.2
Tags: 4.1.17, 4.1, 4.1.17-alpine3.22, 4.1-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 099d6114cbdb9b016fb8c4beb653187df002f66f
Directory: 4.1
Tags: 4.0.44, 4.0, 4.0.44-alpine3.22, 4.0-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 099d6114cbdb9b016fb8c4beb653187df002f66f
Directory: 4.0
Tags: 3.2.57, 3.2, 3, 3.2.57-alpine3.22, 3.2-alpine3.22, 3-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 099d6114cbdb9b016fb8c4beb653187df002f66f
Directory: 3.2
Tags: 3.1.23, 3.1, 3.1.23-alpine3.22, 3.1-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 099d6114cbdb9b016fb8c4beb653187df002f66f
Directory: 3.1
Tags: 3.0.22, 3.0, 3.0.22-alpine3.22, 3.0-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 5ffa8349006e790fe3534d0a6c3100fd6d725407
Directory: 3.0
================================================
FILE: library/bonita
================================================
Maintainers: Emmanuel Duchastenier <emmanuel.duchastenier@bonitasoft.org> (@educhastenier),
Anthony Birembaut <anthony.birembaut@bonitasoft.org> (@abirembaut),
Romain Bioteau <romain.bioteau@bonitasoft.org> (@rbioteau),
Adrien Kantcheff <adrien.kantcheff@bonitasoft.org> (@akantcheff)
GitRepo: https://github.com/bonitasoft/bonita-distrib.git
Directory: docker
Tags: 2025.2-u5, 2025.2, 10.4.5, 10.4, latest
Architectures: amd64
GitFetch: refs/heads/docker/2025.2-u5
GitCommit: 502b96e7666b6690d948aef91d4f1ac641e47611
================================================
FILE: library/buildpack-deps
================================================
# this file is generated via https://github.com/docker-library/buildpack-deps/blob/abbc41715d6f92a6e5137a6a09b59400a6333606/generate-stackbrew-library.sh
Maintainers: Tianon Gravi <admwiggin@gmail.com> (@tianon),
Joseph Ferguson <yosifkit@gmail.com> (@yosifkit)
GitRepo: https://github.com/docker-library/buildpack-deps.git
Tags: bookworm-curl, oldstable-curl
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
GitCommit: 3e18c3af1f5dce6a48abf036857f9097b6bd79cc
Directory: debian/bookworm/curl
Tags: bookworm-scm, oldstable-scm
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
GitCommit: d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae
Directory: debian/bookworm/scm
Tags: bookworm, oldstable
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
GitCommit: d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae
Directory: debian/bookworm
Tags: bullseye-curl, oldoldstable-curl
Architectures: amd64, arm32v7, arm64v8, i386
GitCommit: 93d6db0797f91ab674535553b7e0e762941a02d0
Directory: debian/bullseye/curl
Tags: bullseye-scm, oldoldstable-scm
Architectures: amd64, arm32v7, arm64v8, i386
GitCommit: d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae
Directory: debian/bullseye/scm
Tags: bullseye, oldoldstable
Architectures: amd64, arm32v7, arm64v8, i386
GitCommit: d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae
Directory: debian/bullseye
Tags: forky-curl, testing-curl
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 6fbd1fd6aa17031b10f11a97c31b9da1ac09db76
Directory: debian/forky/curl
Tags: forky-scm, testing-scm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 6fbd1fd6aa17031b10f11a97c31b9da1ac09db76
Directory: debian/forky/scm
Tags: forky, testing
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 6fbd1fd6aa17031b10f11a97c31b9da1ac09db76
Directory: debian/forky
Tags: sid-curl, unstable-curl
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 2b3a8b7d1f8875865034be3bab98ddd737e37d5e
Directory: debian/sid/curl
Tags: sid-scm, unstable-scm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 2b3a8b7d1f8875865034be3bab98ddd737e37d5e
Directory: debian/sid/scm
Tags: sid, unstable
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 2b3a8b7d1f8875865034be3bab98ddd737e37d5e
Directory: debian/sid
Tags: trixie-curl, stable-curl, curl
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 1f4fe499c668d9a2e1578aa8db4f0b2d14482cf5
Directory: debian/trixie/curl
Tags: trixie-scm, stable-scm, scm
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 1f4fe499c668d9a2e1578aa8db4f0b2d14482cf5
Directory: debian/trixie/scm
Tags: trixie, stable, latest
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 1f4fe499c668d9a2e1578aa8db4f0b2d14482cf5
Directory: debian/trixie
Tags: jammy-curl, 22.04-curl
Architectures: amd64, arm32v7, arm64v8, ppc64le, riscv64, s390x
GitCommit: 93d6db0797f91ab674535553b7e0e762941a02d0
Directory: ubuntu/jammy/curl
Tags: jammy-scm, 22.04-scm
Architectures: amd64, arm32v7, arm64v8, ppc64le, riscv64, s390x
GitCommit: d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae
Directory: ubuntu/jammy/scm
Tags: jammy, 22.04
Architectures: amd64, arm32v7, arm64v8, ppc64le, riscv64, s390x
GitCommit: d0ecd4b7313e9bc6b00d9a4fe62ad5787bc197ae
Directory: ubuntu/jammy
Tags: noble-curl, 24.04-curl
Architectures: amd64, arm32v7, arm64v8, ppc64le, riscv64, s390x
GitCommit: 60dc5f9555c521de086b2f5770514faf69ee2cc4
Directory: ubuntu/noble/curl
Tags: noble-scm, 24.04-scm
Architectures: amd64, arm32v7, arm64v8, ppc64le, riscv64, s390x
GitCommit: 60dc5f9555c521de086b2f5770514faf69ee2cc4
Directory: ubuntu/noble/scm
Tags: noble, 24.04
Architectures: amd64, arm32v7, arm64v8, ppc64le, riscv64, s390x
GitCommit: 60dc5f9555c521de086b2f5770514faf69ee2cc4
Directory: ubuntu/noble
Tags: questing-curl, 25.10-curl
Architectures: amd64, arm32v7, arm64v8, ppc64le, s390x
GitCommit: 99e7dc24c50c0a7be371ea9e6aed6134ce4cbfeb
Directory: ubuntu/questing/curl
Tags: questing-scm, 25.10-scm
Architectures: amd64, arm32v7, arm64v8, ppc64le, s390x
GitCommit: 99e7dc24c50c0a7be371ea9e6aed6134ce4cbfeb
Directory: ubuntu/questing/scm
Tags: questing, 25.10
Architectures: amd64, arm32v7, arm64v8, ppc64le, s390x
GitCommit: 99e7dc24c50c0a7be371ea9e6aed6134ce4cbfeb
Directory: ubuntu/questing
Tags: resolute-curl, 26.04-curl
Architectures: amd64, arm32v7, arm64v8, ppc64le, s390x
GitCommit: 8330ca1d2319b779c8b7a8aa64bb40dbe568e1e2
Directory: ubuntu/resolute/curl
Tags: resolute-scm, 26.04-scm
Architectures: amd64, arm32v7, arm64v8, ppc64le, s390x
GitCommit: 8330ca1d2319b779c8b7a8aa64bb40dbe568e1e2
Directory: ubuntu/resolute/scm
Tags: resolute, 26.04
Architectures: amd64, arm32v7, arm64v8, ppc64le, s390x
GitCommit: 8330ca1d2319b779c8b7a8aa64bb40dbe568e1e2
Directory: ubuntu/resolute
================================================
FILE: library/busybox
================================================
# this file is generated via https://github.com/docker-library/busybox/blob/32ed6b6c9363239c5acccfcf89bf401e07fc33c3/generate-stackbrew-library.sh
Maintainers: Tianon Gravi <admwiggin@gmail.com> (@tianon),
Joseph Ferguson <yosifkit@gmail.com> (@yosifkit)
GitRepo: https://github.com/docker-library/busybox.git
GitCommit: 32ed6b6c9363239c5acccfcf89bf401e07fc33c3
Builder: oci-import
File: index.json
# https://github.com/docker-library/busybox/tree/dist-amd64
amd64-GitFetch: refs/heads/dist-amd64
amd64-GitCommit: 557f024d4e247f4fa6e086640e7982333b29f04e
# https://github.com/docker-library/busybox/tree/dist-arm32v5
arm32v5-GitFetch: refs/heads/dist-arm32v5
arm32v5-GitCommit: 3edda89aee2cb45463eb3e4858b0d0b55b28b0cd
# https://github.com/docker-library/busybox/tree/dist-arm32v6
arm32v6-GitFetch: refs/heads/dist-arm32v6
arm32v6-GitCommit: 262f1f8fc3fd7ae038d0abee2908193c1f8ed7fd
# https://github.com/docker-library/busybox/tree/dist-arm32v7
arm32v7-GitFetch: refs/heads/dist-arm32v7
arm32v7-GitCommit: 6dde356a78739c0bf7e2fcd3c84a194431bdd73b
# https://github.com/docker-library/busybox/tree/dist-arm64v8
arm64v8-GitFetch: refs/heads/dist-arm64v8
arm64v8-GitCommit: 86823563177e12460ad3e122103a3ee14691807d
# https://github.com/docker-library/busybox/tree/dist-i386
i386-GitFetch: refs/heads/dist-i386
i386-GitCommit: b637faa0f5db2890dab7f4b93495ee1c7d951b08
# https://github.com/docker-library/busybox/tree/dist-ppc64le
ppc64le-GitFetch: refs/heads/dist-ppc64le
ppc64le-GitCommit: ec0723d76b735e22d7b8070f928ab6de1cc8a17a
# https://github.com/docker-library/busybox/tree/dist-riscv64
riscv64-GitFetch: refs/heads/dist-riscv64
riscv64-GitCommit: e43482cb6af1ec3c0e58945046222805ad069d5b
# https://github.com/docker-library/busybox/tree/dist-s390x
s390x-GitFetch: refs/heads/dist-s390x
s390x-GitCommit: d76495a831258bec4d30c217b742399a4a793bfc
Tags: 1.37.0-glibc, 1.37-glibc, 1-glibc, unstable-glibc, glibc
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
amd64-Directory: latest/glibc/amd64
arm32v5-Directory: latest/glibc/arm32v5
arm32v7-Directory: latest/glibc/arm32v7
arm64v8-Directory: latest/glibc/arm64v8
i386-Directory: latest/glibc/i386
ppc64le-Directory: latest/glibc/ppc64le
riscv64-Directory: latest/glibc/riscv64
s390x-Directory: latest/glibc/s390x
Tags: 1.37.0-uclibc, 1.37-uclibc, 1-uclibc, unstable-uclibc, uclibc
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, riscv64
amd64-Directory: latest/uclibc/amd64
arm32v5-Directory: latest/uclibc/arm32v5
arm32v7-Directory: latest/uclibc/arm32v7
arm64v8-Directory: latest/uclibc/arm64v8
i386-Directory: latest/uclibc/i386
riscv64-Directory: latest/uclibc/riscv64
Tags: 1.37.0-musl, 1.37-musl, 1-musl, unstable-musl, musl
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
amd64-Directory: latest/musl/amd64
arm32v6-Directory: latest/musl/arm32v6
arm32v7-Directory: latest/musl/arm32v7
arm64v8-Directory: latest/musl/arm64v8
i386-Directory: latest/musl/i386
ppc64le-Directory: latest/musl/ppc64le
riscv64-Directory: latest/musl/riscv64
s390x-Directory: latest/musl/s390x
Tags: 1.37.0, 1.37, 1, unstable, latest
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x, arm32v6
amd64-Directory: latest/glibc/amd64
arm32v5-Directory: latest/glibc/arm32v5
arm32v7-Directory: latest/glibc/arm32v7
arm64v8-Directory: latest/glibc/arm64v8
i386-Directory: latest/glibc/i386
ppc64le-Directory: latest/glibc/ppc64le
riscv64-Directory: latest/glibc/riscv64
s390x-Directory: latest/glibc/s390x
arm32v6-Directory: latest/musl/arm32v6
Tags: 1.36.1-glibc, 1.36-glibc, stable-glibc
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
amd64-Directory: latest-1/glibc/amd64
arm32v5-Directory: latest-1/glibc/arm32v5
arm32v7-Directory: latest-1/glibc/arm32v7
arm64v8-Directory: latest-1/glibc/arm64v8
i386-Directory: latest-1/glibc/i386
ppc64le-Directory: latest-1/glibc/ppc64le
riscv64-Directory: latest-1/glibc/riscv64
s390x-Directory: latest-1/glibc/s390x
Tags: 1.36.1-uclibc, 1.36-uclibc, stable-uclibc
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, riscv64
amd64-Directory: latest-1/uclibc/amd64
arm32v5-Directory: latest-1/uclibc/arm32v5
arm32v7-Directory: latest-1/uclibc/arm32v7
arm64v8-Directory: latest-1/uclibc/arm64v8
i386-Directory: latest-1/uclibc/i386
riscv64-Directory: latest-1/uclibc/riscv64
Tags: 1.36.1-musl, 1.36-musl, stable-musl
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
amd64-Directory: latest-1/musl/amd64
arm32v6-Directory: latest-1/musl/arm32v6
arm32v7-Directory: latest-1/musl/arm32v7
arm64v8-Directory: latest-1/musl/arm64v8
i386-Directory: latest-1/musl/i386
ppc64le-Directory: latest-1/musl/ppc64le
riscv64-Directory: latest-1/musl/riscv64
s390x-Directory: latest-1/musl/s390x
Tags: 1.36.1, 1.36, stable
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x, arm32v6
amd64-Directory: latest-1/glibc/amd64
arm32v5-Directory: latest-1/glibc/arm32v5
arm32v7-Directory: latest-1/glibc/arm32v7
arm64v8-Directory: latest-1/glibc/arm64v8
i386-Directory: latest-1/glibc/i386
ppc64le-Directory: latest-1/glibc/ppc64le
riscv64-Directory: latest-1/glibc/riscv64
s390x-Directory: latest-1/glibc/s390x
arm32v6-Directory: latest-1/musl/arm32v6
================================================
FILE: library/caddy
================================================
# this file is generated with gomplate:
# template: https://github.com/caddyserver/caddy-docker/blob/e05f66898af9a0a694af637db2724f91d9d82ed7/stackbrew.tmpl
# config context: https://github.com/caddyserver/caddy-docker/blob/03d78cdcd835a384ab5567ea2a5ffa022ce3ec3b/stackbrew-config.yaml
Maintainers: Dave Henderson (@hairyhenderson),
Francis Lavoie (@francislavoie)
Tags: 2.11.2-alpine, 2.11-alpine, 2-alpine, alpine
SharedTags: 2.11.2, 2.11, 2, latest
GitRepo: https://github.com/caddyserver/caddy-docker.git
Directory: 2.11/alpine
GitCommit: 03d78cdcd835a384ab5567ea2a5ffa022ce3ec3b
Architectures: amd64, arm64v8, arm32v6, arm32v7, ppc64le, riscv64, s390x
Tags: 2.11.2-builder-alpine, 2.11-builder-alpine, 2-builder-alpine, builder-alpine
SharedTags: 2.11.2-builder, 2.11-builder, 2-builder, builder
GitRepo: https://github.com/caddyserver/caddy-docker.git
Directory: 2.11/builder
GitCommit: 03d78cdcd835a384ab5567ea2a5ffa022ce3ec3b
Architectures: amd64, arm64v8, arm32v6, arm32v7, ppc64le, riscv64, s390x
Tags: 2.11.2-windowsservercore-ltsc2022, 2.11-windowsservercore-ltsc2022, 2-windowsservercore-ltsc2022, windowsservercore-ltsc2022
SharedTags: 2.11.2-windowsservercore, 2.11-windowsservercore, 2-windowsservercore, windowsservercore, 2.11.2, 2.11, 2, latest
GitRepo: https://github.com/caddyserver/caddy-docker.git
Directory: 2.11/windows/ltsc2022
GitCommit: 03d78cdcd835a384ab5567ea2a5ffa022ce3ec3b
Architectures: windows-amd64
Constraints: windowsservercore-ltsc2022
Tags: 2.11.2-windowsservercore-ltsc2025, 2.11-windowsservercore-ltsc2025, 2-windowsservercore-ltsc2025, windowsservercore-ltsc2025
SharedTags: 2.11.2-windowsservercore, 2.11-windowsservercore, 2-windowsservercore, windowsservercore, 2.11.2, 2.11, 2, latest
GitRepo: https://github.com/caddyserver/caddy-docker.git
Directory: 2.11/windows/ltsc2025
GitCommit: 03d78cdcd835a384ab5567ea2a5ffa022ce3ec3b
Architectures: windows-amd64
Constraints: windowsservercore-ltsc2025
Tags: 2.11.2-nanoserver-ltsc2022, 2.11-nanoserver-ltsc2022, 2-nanoserver-ltsc2022, nanoserver-ltsc2022
SharedTags: 2.11.2-nanoserver, 2.11-nanoserver, 2-nanoserver, nanoserver
GitRepo: https://github.com/caddyserver/caddy-docker.git
Directory: 2.11/windows-nanoserver/ltsc2022
GitCommit: 03d78cdcd835a384ab5567ea2a5ffa022ce3ec3b
Architectures: windows-amd64
Constraints: nanoserver-ltsc2022, windowsservercore-ltsc2022
Tags: 2.11.2-nanoserver-ltsc2025, 2.11-nanoserver-ltsc2025, 2-nanoserver-ltsc2025, nanoserver-ltsc2025
SharedTags: 2.11.2-nanoserver, 2.11-nanoserver, 2-nanoserver, nanoserver
GitRepo: https://github.com/caddyserver/caddy-docker.git
Directory: 2.11/windows-nanoserver/ltsc2025
GitCommit: 03d78cdcd835a384ab5567ea2a5ffa022ce3ec3b
Architectures: windows-amd64
Constraints: nanoserver-ltsc2025, windowsservercore-ltsc2025
Tags: 2.11.2-builder-windowsservercore-ltsc2022, 2.11-builder-windowsservercore-ltsc2022, 2-builder-windowsservercore-ltsc2022, builder-windowsservercore-ltsc2022
SharedTags: 2.11.2-builder, 2.11-builder, 2-builder, builder
GitRepo: https://github.com/caddyserver/caddy-docker.git
Directory: 2.11/windows-builder/ltsc2022
GitCommit: 03d78cdcd835a384ab5567ea2a5ffa022ce3ec3b
Architectures: windows-amd64
Constraints: windowsservercore-ltsc2022
Tags: 2.11.2-builder-windowsservercore-ltsc2025, 2.11-builder-windowsservercore-ltsc2025, 2-builder-windowsservercore-ltsc2025, builder-windowsservercore-ltsc2025
SharedTags: 2.11.2-builder, 2.11-builder, 2-builder, builder
GitRepo: https://github.com/caddyserver/caddy-docker.git
Directory: 2.11/windows-builder/ltsc2025
GitCommit: 03d78cdcd835a384ab5567ea2a5ffa022ce3ec3b
Architectures: windows-amd64
Constraints: windowsservercore-ltsc2025
================================================
FILE: library/cassandra
================================================
# this file is generated via https://github.com/docker-library/cassandra/blob/7c5b1270f935620330a51c1658d2c0557432f4ac/generate-stackbrew-library.sh
Maintainers: Tianon Gravi <admwiggin@gmail.com> (@tianon),
Joseph Ferguson <yosifkit@gmail.com> (@yosifkit)
GitRepo: https://github.com/docker-library/cassandra.git
Tags: 5.0.6, 5.0, 5, latest, 5.0.6-bookworm, 5.0-bookworm, 5-bookworm, bookworm
Architectures: amd64, arm32v7, arm64v8, ppc64le, s390x
GitCommit: 7c5b1270f935620330a51c1658d2c0557432f4ac
Directory: 5.0
Tags: 4.1.10, 4.1, 4, 4.1.10-bookworm, 4.1-bookworm, 4-bookworm
Architectures: amd64, arm32v7, arm64v8, ppc64le, s390x
GitCommit: 7c5b1270f935620330a51c1658d2c0557432f4ac
Directory: 4.1
Tags: 4.0.19, 4.0, 4.0.19-bookworm, 4.0-bookworm
Architectures: amd64, arm32v7, arm64v8, ppc64le, s390x
GitCommit: 7c5b1270f935620330a51c1658d2c0557432f4ac
Directory: 4.0
================================================
FILE: library/chronograf
================================================
Maintainers: Brandon Pfeifer <bpfeifer@influxdata.com> (@bnpfeife),
Sven Rebhan <srebhan@influxdata.com> (@srebhan),
Maya Strandboge <mstrandboge@influxdata.com> (@mstrandboge)
GitRepo: https://github.com/influxdata/influxdata-docker
GitCommit: 3dc2d064944d033907d137e1af8069d35852de94
Tags: 1.7, 1.7.17
Architectures: amd64, arm32v7, arm64v8
Directory: chronograf/1.7
Tags: 1.7-alpine, 1.7.17-alpine
Directory: chronograf/1.7/alpine
Tags: 1.8, 1.8.10
Architectures: amd64, arm32v7, arm64v8
Directory: chronograf/1.8
Tags: 1.8-alpine, 1.8.10-alpine
Directory: chronograf/1.8/alpine
Tags: 1.9, 1.9.4
Architectures: amd64, arm32v7, arm64v8
Directory: chronograf/1.9
Tags: 1.9-alpine, 1.9.4-alpine
Directory: chronograf/1.9/alpine
Tags: 1.10, 1.10.9, latest
Architectures: amd64, arm32v7, arm64v8
Directory: chronograf/1.10
Tags: 1.10-alpine, 1.10.9-alpine, alpine
Directory: chronograf/1.10/alpine
================================================
FILE: library/cirros
================================================
# this file is generated via https://github.com/tianon/docker-brew-cirros/blob/bc178480989db677c1271933567a0555e35856dc/generate-stackbrew-library.sh
Maintainers: Tianon Gravi <admwiggin@gmail.com> (@tianon)
GitRepo: https://github.com/tianon/docker-brew-cirros.git
GitFetch: refs/heads/dist
GitCommit: 1821a0ca9eaf82280a2e953df56e88ab50178628
Architectures: amd64, arm32v7, arm64v8, ppc64le
amd64-Directory: arches/amd64
arm32v7-Directory: arches/arm32v7
arm64v8-Directory: arches/arm64v8
ppc64le-Directory: arches/ppc64le
Tags: 0.6.3, 0.6, 0, latest
================================================
FILE: library/clearlinux
================================================
Maintainers: William Douglas <william.douglas@intel.com> (@bryteise)
GitRepo: https://github.com/clearlinux/docker-brew-clearlinux.git
Tags: latest, base
GitCommit: 03e2dcd390233733b398e72ce2382e54b5ef48a4
GitFetch: refs/heads/base-43630
================================================
FILE: library/clefos
================================================
Maintainers: The ClefOS Project <neale@sinenomine.net> (@nealef)
GitRepo: https://github.com/nealef/clefos.git
# https://github.com/docker-library/docs/pull/2477
================================================
FILE: library/clickhouse
================================================
# The file is generated by https://github.com/ClickHouse/ClickHouse/blob/2ee3817600b03194beae6e050e7cb19f46690fa3/tests/ci/official_docker.py
Maintainers: Misha f. Shiryaev <felixoid@clickhouse.com> (@Felixoid),
Max Kainov <max.kainov@clickhouse.com> (@mkaynov),
Alexander Tokmakov <tavplubix@clickhouse.com> (@tavplubix),
Alexander Sapin <alesapin@clickhouse.com> (@alesapin)
GitRepo: https://github.com/ClickHouse/docker-library.git
GitFetch: refs/heads/main
GitCommit: 7697338ff98fafdedbaa5f0a6e77c8cf3321e775
Tags: latest, jammy, 26.2, 26.2-jammy, 26.2.4, 26.2.4-jammy, 26.2.4.23, 26.2.4.23-jammy
Architectures: amd64, arm64v8
Directory: server/26.2.4.23
File: Dockerfile.ubuntu
Tags: 26.1, 26.1-jammy, 26.1.4, 26.1.4-jammy, 26.1.4.35, 26.1.4.35-jammy
Architectures: amd64, arm64v8
Directory: server/26.1.4.35
File: Dockerfile.ubuntu
Tags: 25.12, 25.12-jammy, 25.12.8, 25.12.8-jammy, 25.12.8.9, 25.12.8.9-jammy
Architectures: amd64, arm64v8
Directory: server/25.12.8.9
File: Dockerfile.ubuntu
Tags: lts, lts-jammy, 25.8, 25.8-jammy, 25.8.18, 25.8.18-jammy, 25.8.18.1, 25.8.18.1-jammy
Architectures: amd64, arm64v8
Directory: server/25.8.18.1
File: Dockerfile.ubuntu
Tags: 25.3, 25.3-jammy, 25.3.14, 25.3.14-jammy, 25.3.14.14, 25.3.14.14-jammy
Architectures: amd64, arm64v8
Directory: server/25.3.14.14
File: Dockerfile.ubuntu
================================================
FILE: library/clojure
================================================
Maintainers: Paul Lam <paul@quantisan.com> (@Quantisan),
Wes Morgan <wes@wesmorgan.me> (@cap10morgan)
Architectures: riscv64, arm64v8, ppc64le, amd64, s390x
GitRepo: https://github.com/Quantisan/docker-clojure.git
GitCommit: 14dff87caeb3172b199e26146f4dfeb11e893c5f
Tags: latest
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-25/latest
Tags: temurin-8-lein-2.12.0-bookworm, temurin-8-lein-bookworm
Architectures: arm64v8, ppc64le, amd64
Directory: target/debian-bookworm-8/lein
Tags: temurin-8-lein-2.12.0-bookworm-slim, temurin-8-lein-bookworm-slim
Architectures: arm64v8, ppc64le, amd64
Directory: target/debian-bookworm-slim-8/lein
Tags: temurin-8-lein-2.12.0-bullseye, temurin-8-lein-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-8/lein
Tags: temurin-8-lein-2.12.0-bullseye-slim, temurin-8-lein-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-8/lein
Tags: temurin-8-lein-2.12.0-jammy, temurin-8-lein-jammy
Architectures: arm64v8, ppc64le, amd64
Directory: target/eclipse-temurin-8-jdk-jammy/lein
Tags: temurin-8-lein, temurin-8-lein-2.12.0, temurin-8-lein-2.12.0-noble, temurin-8-lein-noble
Architectures: arm64v8, ppc64le, amd64
Directory: target/eclipse-temurin-8-jdk-noble/lein
Tags: temurin-8-lein-2.12.0-trixie, temurin-8-lein-trixie
Architectures: arm64v8, ppc64le, amd64
Directory: target/debian-trixie-8/lein
Tags: temurin-8-lein-2.12.0-trixie-slim, temurin-8-lein-trixie-slim
Architectures: arm64v8, ppc64le, amd64
Directory: target/debian-trixie-slim-8/lein
Tags: temurin-8-bookworm, temurin-8-tools-deps-1.12.4.1618-bookworm, temurin-8-tools-deps-bookworm
Architectures: arm64v8, ppc64le, amd64
Directory: target/debian-bookworm-8/tools-deps
Tags: temurin-8-bookworm-slim, temurin-8-tools-deps-1.12.4.1618-bookworm-slim, temurin-8-tools-deps-bookworm-slim
Architectures: arm64v8, ppc64le, amd64
Directory: target/debian-bookworm-slim-8/tools-deps
Tags: temurin-8-bullseye, temurin-8-tools-deps-1.12.4.1618-bullseye, temurin-8-tools-deps-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-8/tools-deps
Tags: temurin-8-bullseye-slim, temurin-8-tools-deps-1.12.4.1618-bullseye-slim, temurin-8-tools-deps-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-8/tools-deps
Tags: temurin-8-jammy, temurin-8-tools-deps-1.12.4.1618-jammy, temurin-8-tools-deps-jammy
Architectures: arm64v8, ppc64le, amd64
Directory: target/eclipse-temurin-8-jdk-jammy/tools-deps
Tags: temurin-8-noble, temurin-8-tools-deps, temurin-8-tools-deps-1.12.4.1618, temurin-8-tools-deps-1.12.4.1618-noble, temurin-8-tools-deps-noble
Architectures: arm64v8, ppc64le, amd64
Directory: target/eclipse-temurin-8-jdk-noble/tools-deps
Tags: temurin-8-tools-deps-1.12.4.1618-trixie, temurin-8-tools-deps-trixie, temurin-8-trixie
Architectures: arm64v8, ppc64le, amd64
Directory: target/debian-trixie-8/tools-deps
Tags: temurin-8-tools-deps-1.12.4.1618-trixie-slim, temurin-8-tools-deps-trixie-slim, temurin-8-trixie-slim
Architectures: arm64v8, ppc64le, amd64
Directory: target/debian-trixie-slim-8/tools-deps
Tags: temurin-11-lein-2.12.0-alpine, temurin-11-lein-alpine
Architectures: amd64
Directory: target/eclipse-temurin-11-jdk-alpine/lein
Tags: temurin-11-lein-2.12.0-bookworm, temurin-11-lein-bookworm
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-11/lein
Tags: temurin-11-lein-2.12.0-bookworm-slim, temurin-11-lein-bookworm-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-slim-11/lein
Tags: temurin-11-lein-2.12.0-bullseye, temurin-11-lein-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-11/lein
Tags: temurin-11-lein-2.12.0-bullseye-slim, temurin-11-lein-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-11/lein
Tags: temurin-11-lein-2.12.0-jammy, temurin-11-lein-jammy
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/eclipse-temurin-11-jdk-jammy/lein
Tags: temurin-11-lein, temurin-11-lein-2.12.0, temurin-11-lein-2.12.0-noble, temurin-11-lein-noble
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/eclipse-temurin-11-jdk-noble/lein
Tags: temurin-11-lein-2.12.0-trixie, temurin-11-lein-trixie
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-trixie-11/lein
Tags: temurin-11-lein-2.12.0-trixie-slim, temurin-11-lein-trixie-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-trixie-slim-11/lein
Tags: temurin-11-alpine, temurin-11-tools-deps-1.12.4.1618-alpine, temurin-11-tools-deps-alpine
Architectures: amd64
Directory: target/eclipse-temurin-11-jdk-alpine/tools-deps
Tags: temurin-11-bookworm, temurin-11-tools-deps-1.12.4.1618-bookworm, temurin-11-tools-deps-bookworm
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-11/tools-deps
Tags: temurin-11-bookworm-slim, temurin-11-tools-deps-1.12.4.1618-bookworm-slim, temurin-11-tools-deps-bookworm-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-slim-11/tools-deps
Tags: temurin-11-bullseye, temurin-11-tools-deps-1.12.4.1618-bullseye, temurin-11-tools-deps-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-11/tools-deps
Tags: temurin-11-bullseye-slim, temurin-11-tools-deps-1.12.4.1618-bullseye-slim, temurin-11-tools-deps-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-11/tools-deps
Tags: temurin-11-jammy, temurin-11-tools-deps-1.12.4.1618-jammy, temurin-11-tools-deps-jammy
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/eclipse-temurin-11-jdk-jammy/tools-deps
Tags: temurin-11-noble, temurin-11-tools-deps, temurin-11-tools-deps-1.12.4.1618, temurin-11-tools-deps-1.12.4.1618-noble, temurin-11-tools-deps-noble
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/eclipse-temurin-11-jdk-noble/tools-deps
Tags: temurin-11-tools-deps-1.12.4.1618-trixie, temurin-11-tools-deps-trixie, temurin-11-trixie
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-trixie-11/tools-deps
Tags: temurin-11-tools-deps-1.12.4.1618-trixie-slim, temurin-11-tools-deps-trixie-slim, temurin-11-trixie-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-trixie-slim-11/tools-deps
Tags: temurin-17-lein-2.12.0-alpine, temurin-17-lein-alpine
Architectures: amd64
Directory: target/eclipse-temurin-17-jdk-alpine/lein
Tags: temurin-17-lein-2.12.0-bookworm, temurin-17-lein-bookworm
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-17/lein
Tags: temurin-17-lein-2.12.0-bookworm-slim, temurin-17-lein-bookworm-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-slim-17/lein
Tags: temurin-17-lein-2.12.0-bullseye, temurin-17-lein-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-17/lein
Tags: temurin-17-lein-2.12.0-bullseye-slim, temurin-17-lein-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-17/lein
Tags: temurin-17-lein-2.12.0-jammy, temurin-17-lein-jammy
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/eclipse-temurin-17-jdk-jammy/lein
Tags: temurin-17-lein, temurin-17-lein-2.12.0, temurin-17-lein-2.12.0-noble, temurin-17-lein-noble
Directory: target/eclipse-temurin-17-jdk-noble/lein
Tags: temurin-17-lein-2.12.0-trixie, temurin-17-lein-trixie
Directory: target/debian-trixie-17/lein
Tags: temurin-17-lein-2.12.0-trixie-slim, temurin-17-lein-trixie-slim
Directory: target/debian-trixie-slim-17/lein
Tags: temurin-17-alpine, temurin-17-tools-deps-1.12.4.1618-alpine, temurin-17-tools-deps-alpine
Architectures: amd64
Directory: target/eclipse-temurin-17-jdk-alpine/tools-deps
Tags: temurin-17-bookworm, temurin-17-tools-deps-1.12.4.1618-bookworm, temurin-17-tools-deps-bookworm
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-17/tools-deps
Tags: temurin-17-bookworm-slim, temurin-17-tools-deps-1.12.4.1618-bookworm-slim, temurin-17-tools-deps-bookworm-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-slim-17/tools-deps
Tags: temurin-17-bullseye, temurin-17-tools-deps-1.12.4.1618-bullseye, temurin-17-tools-deps-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-17/tools-deps
Tags: temurin-17-bullseye-slim, temurin-17-tools-deps-1.12.4.1618-bullseye-slim, temurin-17-tools-deps-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-17/tools-deps
Tags: temurin-17-jammy, temurin-17-tools-deps-1.12.4.1618-jammy, temurin-17-tools-deps-jammy
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/eclipse-temurin-17-jdk-jammy/tools-deps
Tags: temurin-17-noble, temurin-17-tools-deps, temurin-17-tools-deps-1.12.4.1618, temurin-17-tools-deps-1.12.4.1618-noble, temurin-17-tools-deps-noble
Directory: target/eclipse-temurin-17-jdk-noble/tools-deps
Tags: temurin-17-tools-deps-1.12.4.1618-trixie, temurin-17-tools-deps-trixie, temurin-17-trixie
Directory: target/debian-trixie-17/tools-deps
Tags: temurin-17-tools-deps-1.12.4.1618-trixie-slim, temurin-17-tools-deps-trixie-slim, temurin-17-trixie-slim
Directory: target/debian-trixie-slim-17/tools-deps
Tags: temurin-21-lein-2.12.0-alpine, temurin-21-lein-alpine
Architectures: arm64v8, amd64
Directory: target/eclipse-temurin-21-jdk-alpine/lein
Tags: temurin-21-lein, temurin-21-lein-2.12.0, temurin-21-lein-2.12.0-bookworm, temurin-21-lein-bookworm
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-21/lein
Tags: temurin-21-lein-2.12.0-bookworm-slim, temurin-21-lein-bookworm-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-slim-21/lein
Tags: temurin-21-lein-2.12.0-bullseye, temurin-21-lein-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-21/lein
Tags: temurin-21-lein-2.12.0-bullseye-slim, temurin-21-lein-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-21/lein
Tags: temurin-21-lein-2.12.0-jammy, temurin-21-lein-jammy
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/eclipse-temurin-21-jdk-jammy/lein
Tags: temurin-21-lein-2.12.0-noble, temurin-21-lein-noble
Directory: target/eclipse-temurin-21-jdk-noble/lein
Tags: temurin-21-lein-2.12.0-trixie, temurin-21-lein-trixie
Directory: target/debian-trixie-21/lein
Tags: temurin-21-lein-2.12.0-trixie-slim, temurin-21-lein-trixie-slim
Directory: target/debian-trixie-slim-21/lein
Tags: temurin-21-alpine, temurin-21-tools-deps-1.12.4.1618-alpine, temurin-21-tools-deps-alpine
Architectures: arm64v8, amd64
Directory: target/eclipse-temurin-21-jdk-alpine/tools-deps
Tags: temurin-21-bookworm, temurin-21-tools-deps, temurin-21-tools-deps-1.12.4.1618, temurin-21-tools-deps-1.12.4.1618-bookworm, temurin-21-tools-deps-bookworm
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-21/tools-deps
Tags: temurin-21-bookworm-slim, temurin-21-tools-deps-1.12.4.1618-bookworm-slim, temurin-21-tools-deps-bookworm-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-slim-21/tools-deps
Tags: temurin-21-bullseye, temurin-21-tools-deps-1.12.4.1618-bullseye, temurin-21-tools-deps-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-21/tools-deps
Tags: temurin-21-bullseye-slim, temurin-21-tools-deps-1.12.4.1618-bullseye-slim, temurin-21-tools-deps-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-21/tools-deps
Tags: temurin-21-jammy, temurin-21-tools-deps-1.12.4.1618-jammy, temurin-21-tools-deps-jammy
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/eclipse-temurin-21-jdk-jammy/tools-deps
Tags: temurin-21-noble, temurin-21-tools-deps-1.12.4.1618-noble, temurin-21-tools-deps-noble
Directory: target/eclipse-temurin-21-jdk-noble/tools-deps
Tags: temurin-21-tools-deps-1.12.4.1618-trixie, temurin-21-tools-deps-trixie, temurin-21-trixie
Directory: target/debian-trixie-21/tools-deps
Tags: temurin-21-tools-deps-1.12.4.1618-trixie-slim, temurin-21-tools-deps-trixie-slim, temurin-21-trixie-slim
Directory: target/debian-trixie-slim-21/tools-deps
Tags: temurin-25-lein-2.12.0-alpine, temurin-25-lein-alpine
Architectures: arm64v8, amd64
Directory: target/eclipse-temurin-25-jdk-alpine/lein
Tags: lein, lein-2.12.0, lein-2.12.0-bookworm, lein-bookworm, temurin-25-lein, temurin-25-lein-2.12.0, temurin-25-lein-2.12.0-bookworm, temurin-25-lein-bookworm
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-25/lein
Tags: lein-2.12.0-bookworm-slim, lein-bookworm-slim, temurin-25-lein-2.12.0-bookworm-slim, temurin-25-lein-bookworm-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-slim-25/lein
Tags: lein-2.12.0-bullseye, lein-bullseye, temurin-25-lein-2.12.0-bullseye, temurin-25-lein-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-25/lein
Tags: lein-2.12.0-bullseye-slim, lein-bullseye-slim, temurin-25-lein-2.12.0-bullseye-slim, temurin-25-lein-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-25/lein
Tags: temurin-25-lein-2.12.0-noble, temurin-25-lein-noble
Directory: target/eclipse-temurin-25-jdk-noble/lein
Tags: lein-2.12.0-trixie, lein-trixie, temurin-25-lein-2.12.0-trixie, temurin-25-lein-trixie
Directory: target/debian-trixie-25/lein
Tags: lein-2.12.0-trixie-slim, lein-trixie-slim, temurin-25-lein-2.12.0-trixie-slim, temurin-25-lein-trixie-slim
Directory: target/debian-trixie-slim-25/lein
Tags: temurin-25-alpine, temurin-25-tools-deps-1.12.4.1618-alpine, temurin-25-tools-deps-alpine
Architectures: arm64v8, amd64
Directory: target/eclipse-temurin-25-jdk-alpine/tools-deps
Tags: temurin-25-bookworm, temurin-25-tools-deps, temurin-25-tools-deps-1.12.4.1618, temurin-25-tools-deps-1.12.4.1618-bookworm, temurin-25-tools-deps-bookworm, tools-deps, tools-deps-1.12.4.1618, tools-deps-1.12.4.1618-bookworm, tools-deps-bookworm
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-25/tools-deps
Tags: temurin-25-bookworm-slim, temurin-25-tools-deps-1.12.4.1618-bookworm-slim, temurin-25-tools-deps-bookworm-slim, tools-deps-1.12.4.1618-bookworm-slim, tools-deps-bookworm-slim
Architectures: arm64v8, ppc64le, amd64, s390x
Directory: target/debian-bookworm-slim-25/tools-deps
Tags: temurin-25-bullseye, temurin-25-tools-deps-1.12.4.1618-bullseye, temurin-25-tools-deps-bullseye, tools-deps-1.12.4.1618-bullseye, tools-deps-bullseye
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-25/tools-deps
Tags: temurin-25-bullseye-slim, temurin-25-tools-deps-1.12.4.1618-bullseye-slim, temurin-25-tools-deps-bullseye-slim, tools-deps-1.12.4.1618-bullseye-slim, tools-deps-bullseye-slim
Architectures: arm64v8, amd64
Directory: target/debian-bullseye-slim-25/tools-deps
Tags: temurin-25-noble, temurin-25-tools-deps-1.12.4.1618-noble, temurin-25-tools-deps-noble
Directory: target/eclipse-temurin-25-jdk-noble/tools-deps
Tags: temurin-25-tools-deps-1.12.4.1618-trixie, temurin-25-tools-deps-trixie, temurin-25-trixie, tools-deps-1.12.4.1618-trixie, tools-deps-trixie
Directory: target/debian-trixie-25/tools-deps
Tags: temurin-25-tools-deps-1.12.4.1618-trixie-slim, temurin-25-tools-deps-trixie-slim, temurin-25-trixie-slim, tools-deps-1.12.4.1618-trixie-slim, tools-deps-trixie-slim
Directory: target/debian-trixie-slim-25/tools-deps
================================================
FILE: library/composer
================================================
# this file was generated using https://github.com/composer/docker/blob/3fdb03de2e013b14208ce98cdd2125d488adc196/generate-stackbrew-library.sh
Maintainers: Composer (@composer), Rob Bast (@alcohol)
GitRepo: https://github.com/composer/docker.git
Builder: buildkit
Tags: 2.9.5, 2.9, 2, latest
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitFetch: refs/heads/main
GitCommit: d847d1738962086f205984ed253cace363731af7
Directory: latest
Tags: 2.2.26, 2.2
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitFetch: refs/heads/main
GitCommit: fa961e74c7bd38b762e5a358eca4794e86f0464c
Directory: 2.2
================================================
FILE: library/convertigo
================================================
Maintainers: Nicolas Albert <nicolasa@convertigo.com> (@nicolas-albert), Olivier Picciotto <olivier.picciotto@convertigo.com> (@opicciotto)
GitRepo: https://github.com/convertigo/convertigo
GitCommit: fb6f00cdd5842fffb22271230507789e4c565fa4
Tags: 8.4.1, 8.4, latest
Architectures: amd64, arm64v8
Directory: docker/default
================================================
FILE: library/couchbase
================================================
Maintainers: Couchbase Docker Team <docker@couchbase.com> (@cb-robot)
GitRepo: https://github.com/couchbase/docker
Tags: 8.0.0, enterprise, enterprise-8.0.0, latest
GitCommit: c11b8eac06fe26a16b2e2b17020a965d45d7f329
Directory: enterprise/couchbase-server/8.0.0
Architectures: amd64, arm64v8
Tags: community, community-8.0.0
GitCommit: e2600d59a2b84984adeccbe1c0f8b5d926d4b529
Directory: community/couchbase-server/8.0.0
Architectures: amd64, arm64v8
Tags: 7.6.9, enterprise-7.6.9
GitCommit: b18d7484594299cd7fdc11b7e9115c1fa86acc74
Directory: enterprise/couchbase-server/7.6.9
Architectures: amd64, arm64v8
Tags: 7.6.8, enterprise-7.6.8
GitCommit: 79e990af7621fa397c0dc12fd08bad6db4f49476
Directory: enterprise/couchbase-server/7.6.8
Architectures: amd64, arm64v8
Tags: 7.6.7, enterprise-7.6.7
GitCommit: a322cc7110124b2581339f52d88bab80fb50016d
Directory: enterprise/couchbase-server/7.6.7
Architectures: amd64, arm64v8
Tags: 7.6.6, enterprise-7.6.6
GitCommit: 9ce3cbc835dd4e072943ac7878aa7f87d6b95178
Directory: enterprise/couchbase-server/7.6.6
Architectures: amd64, arm64v8
Tags: 7.6.5, enterprise-7.6.5
GitCommit: ec16abff6f0551ced6c771bd5606a4392379dd31
Directory: enterprise/couchbase-server/7.6.5
Architectures: amd64, arm64v8
Tags: 7.6.4, enterprise-7.6.4
GitCommit: 9990e2cfabc94b37607e5666d9ef1eab69a397a6
Directory: enterprise/couchbase-server/7.6.4
Architectures: amd64, arm64v8
Tags: 7.6.3, enterprise-7.6.3
GitCommit: 553d1baa4aa90fe506e1d7bcdf4daec387a110fe
Directory: enterprise/couchbase-server/7.6.3
Architectures: amd64, arm64v8
Tags: 7.6.2, enterprise-7.6.2
GitCommit: ce13f602d2c95f76835c67a8855d5e73480973a6
Directory: enterprise/couchbase-server/7.6.2
Architectures: amd64, arm64v8
Tags: community-7.6.2
GitCommit: 3f81af158b7f307e42f8c42ceaf7657b2690bfca
Directory: community/couchbase-server/7.6.2
Architectures: amd64, arm64v8
Tags: 7.6.10, enterprise-7.6.10
GitCommit: 0603961e7e5a07d9aa1f4f28224721d9695014e8
Directory: enterprise/couchbase-server/7.6.10
Architectures: amd64, arm64v8
Tags: 7.6.1, enterprise-7.6.1
GitCommit: 966143f937bfe6979b7c09b86684004fdd21e5b8
Directory: enterprise/couchbase-server/7.6.1
Architectures: amd64, arm64v8
Tags: community-7.6.1
GitCommit: a18464c9b23efba391317fd21f898bf64dff6ec1
Directory: community/couchbase-server/7.6.1
Architectures: amd64, arm64v8
Tags: 7.6.0, enterprise-7.6.0
GitCommit: 9bdcf41deedd86da4c71347ffeea350a9895d816
Directory: enterprise/couchbase-server/7.6.0
Architectures: amd64, arm64v8
Tags: community-7.6.0
GitCommit: 6d669d0e34e6990b43c1b91ea74720235c96c4ac
Directory: community/couchbase-server/7.6.0
Architectures: amd64, arm64v8
Tags: 7.2.9, enterprise-7.2.9
GitCommit: 3d91b428d1c1399713c5c900ab775a5cb3d82980
Directory: enterprise/couchbase-server/7.2.9
Architectures: amd64, arm64v8
Tags: 7.2.8, enterprise-7.2.8
GitCommit: 5023e9104d765a15cde8e978be5266a6f1889fb0
Directory: enterprise/couchbase-server/7.2.8
Architectures: amd64, arm64v8
Tags: 7.2.7, enterprise-7.2.7
GitCommit: 23887cae4fd6ce054f383d524a7975d2e3a6b72e
Directory: enterprise/couchbase-server/7.2.7
Architectures: amd64, arm64v8
Tags: 7.2.6, enterprise-7.2.6
GitCommit: 181af64dcbedc1abf6e0916d9f5373cf1c18cb6e
Directory: enterprise/couchbase-server/7.2.6
Architectures: amd64, arm64v8
Tags: 7.2.5, enterprise-7.2.5
GitCommit: 94d97d9eea3d4057846be28f319940927d5166cb
Directory: enterprise/couchbase-server/7.2.5
Architectures: amd64, arm64v8
Tags: 7.2.4, enterprise-7.2.4
GitCommit: 15c1c3c0b4717a8b23ef7962f3fde28fe68e4311
Directory: enterprise/couchbase-server/7.2.4
Architectures: amd64, arm64v8
Tags: community-7.2.4
GitCommit: 7c8453ef8584ff18f7b6c052828758693af4f72c
Directory: community/couchbase-server/7.2.4
Architectures: amd64, arm64v8
Tags: 7.2.3, enterprise-7.2.3
GitCommit: b54049418018144369816d18c63d9bf76e34bc9f
Directory: enterprise/couchbase-server/7.2.3
Architectures: amd64, arm64v8
Tags: 7.2.2, enterprise-7.2.2
GitCommit: 3515fb617a469a5f46d492cf6910dddff8efb825
Directory: enterprise/couchbase-server/7.2.2
Architectures: amd64, arm64v8
Tags: community-7.2.2
GitCommit: c7a25ac7f38a81a465aa97f1a1d753a6c579954f
Directory: community/couchbase-server/7.2.2
Architectures: amd64, arm64v8
Tags: 7.2.0, enterprise-7.2.0
GitCommit: 4e769975179dc4e5bf4138349818bc8a0e191c9f
Directory: enterprise/couchbase-server/7.2.0
Architectures: amd64, arm64v8
Tags: community-7.2.0
GitCommit: 71596d088ce2bc0218418187ac40ffccb08dbc36
Directory: community/couchbase-server/7.2.0
Architectures: amd64, arm64v8
================================================
FILE: library/couchdb
================================================
# see https://couchdb.apache.org/
# also the announce@couchdb.apache.org mailing list
Maintainers: Joan Touzet <wohali@apache.org> (@wohali), Jan Lehnardt <jan@apache.org> (@janl), Nick Vatamaniuc (@nickva)
GitRepo: https://github.com/apache/couchdb-docker
GitFetch: refs/heads/main
GitCommit: 4c82ee090d6299c27616f30d93c9622f769431dd
Tags: latest, 3.5.1, 3.5, 3
Architectures: amd64, arm64v8, s390x
Directory: 3.5.1
Tags: 3.5.1-nouveau, 3.5-nouveau, 3-nouveau
Architectures: amd64, arm64v8, s390x
Directory: 3.5.1-nouveau
Tags: 3.4.3, 3.4
Architectures: amd64, arm64v8, s390x
Directory: 3.4.3
Tags: 3.4.3-nouveau, 3.4-nouveau
Architectures: amd64, arm64v8, s390x
Directory: 3.4.3-nouveau
# dev, dev-cluster versions must not be published officially per
# ASF release policy, see:
# http://www.apache.org/dev/release-distribution.html#unreleased
# The middle two bullet points are the issue.
================================================
FILE: library/crate
================================================
Maintainers: Mathias Fußenegger <mathias@crate.io> (@mfussenegger),
Sebastian Utz <sebastian@crate.io> (@seut),
Andreas Motl <andreas.motl@crate.io> (@amotl)
GitRepo: https://github.com/crate/docker-crate.git
Tags: 6.2.3, 6.2, latest
Architectures: amd64, arm64v8
GitCommit: 17626566ab1dbf78381aecf8d5af8dafcd21995c
Tags: 6.1.3, 6.1
Architectures: amd64, arm64v8
GitCommit: ccb0a7319da7ba24513b443602c2ffd9d925850d
================================================
FILE: library/dart
================================================
Maintainers: Alexander Thomas <athom@google.com> (@athomas), Ivan Inozemtsev <iinozemtsev@google.com> (@iinozemtsev)
GitRepo: https://github.com/dart-lang/dart-docker.git
GitFetch: refs/heads/main
GitCommit: 24476333cc9023a655bfa64df802cd0c253c26bb
Tags: 3.11.2-sdk, 3.11-sdk, 3-sdk, stable-sdk, sdk, 3.11.2, 3.11, 3, stable, latest
Architectures: amd64, arm32v7, arm64v8, riscv64
Directory: stable/trixie
Tags: 3.12.0-210.1.beta-sdk, beta-sdk, 3.12.0-210.1.beta, beta
Architectures: amd64, arm32v7, arm64v8, riscv64
Directory: beta/trixie
================================================
FILE: library/debian
================================================
# tarballs built by debuerreotype
# see https://github.com/debuerreotype/debuerreotype
Maintainers: Tianon Gravi <tianon@debian.org> (@tianon),
Paul Tagliamonte <paultag@debian.org> (@paultag)
GitRepo: https://github.com/debuerreotype/docker-debian-artifacts.git
GitCommit: 7935fc7dd049cb343df42037c152f570069d274f
# https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-amd64
amd64-GitFetch: refs/heads/dist-amd64
amd64-GitCommit: 188606311c383852312693d370f97ecfbbc6ac35
# https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-arm32v5
arm32v5-GitFetch: refs/heads/dist-arm32v5
arm32v5-GitCommit: 37c51fc11ff030a3beb0b069918fe09333df1ad1
# https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-arm32v7
arm32v7-GitFetch: refs/heads/dist-arm32v7
arm32v7-GitCommit: 1243c66ed482ebf022662cb2348e0ca261636f42
# https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-arm64v8
arm64v8-GitFetch: refs/heads/dist-arm64v8
arm64v8-GitCommit: 262b12fbfe800391c45cc975b037f33cb911051d
# https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-i386
i386-GitFetch: refs/heads/dist-i386
i386-GitCommit: 0c6ead133859447ba7a3ce54fc7b85356e147c69
# https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-mips64le
mips64le-GitFetch: refs/heads/dist-mips64le
mips64le-GitCommit: 8b35e242b227d867383a90b028e299b0616e1fed
# https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-ppc64le
ppc64le-GitFetch: refs/heads/dist-ppc64le
ppc64le-GitCommit: a474854d39be606660f261307535414d46c88cc6
# https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-riscv64
riscv64-GitFetch: refs/heads/dist-riscv64
riscv64-GitCommit: 9f62dd60003488b3c51a193225dc54d7973c0a68
# https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-s390x
s390x-GitFetch: refs/heads/dist-s390x
s390x-GitCommit: 0e7baa2227cf61fdeb22dbd1d60410caaa88aad3
# bookworm -- Debian 12.13 Released 10 January 2026
Tags: bookworm, bookworm-20260316, 12.13, 12
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
Builder: oci-import
Directory: bookworm/oci
File: index.json
Tags: bookworm-backports
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
Directory: bookworm/backports
Tags: bookworm-slim, bookworm-20260316-slim, 12.13-slim, 12-slim
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
Builder: oci-import
Directory: bookworm/slim/oci
File: index.json
# bullseye -- Debian 11.11 Released 31 August 2024
Tags: bullseye, bullseye-20260316, 11.11, 11
Architectures: amd64, arm32v7, arm64v8, i386
Builder: oci-import
Directory: bullseye/oci
File: index.json
Tags: bullseye-slim, bullseye-20260316-slim, 11.11-slim, 11-slim
Architectures: amd64, arm32v7, arm64v8, i386
Builder: oci-import
Directory: bullseye/slim/oci
File: index.json
# experimental -- Experimental packages - not released; use at your own risk.
Tags: experimental, experimental-20260316
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Directory: experimental
# forky -- Debian x.y Testing distribution - Not Released
Tags: forky, forky-20260316
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: forky/oci
File: index.json
Tags: forky-backports
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Directory: forky/backports
Tags: forky-slim, forky-20260316-slim
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: forky/slim/oci
File: index.json
# oldoldstable -- Debian 11.11 Released 31 August 2024
Tags: oldoldstable, oldoldstable-20260316
Architectures: amd64, arm32v7, arm64v8, i386
Builder: oci-import
Directory: oldoldstable/oci
File: index.json
Tags: oldoldstable-slim, oldoldstable-20260316-slim
Architectures: amd64, arm32v7, arm64v8, i386
Builder: oci-import
Directory: oldoldstable/slim/oci
File: index.json
# oldstable -- Debian 12.13 Released 10 January 2026
Tags: oldstable, oldstable-20260316
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
Builder: oci-import
Directory: oldstable/oci
File: index.json
Tags: oldstable-backports
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
Directory: oldstable/backports
Tags: oldstable-slim, oldstable-20260316-slim
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
Builder: oci-import
Directory: oldstable/slim/oci
File: index.json
# rc-buggy -- Experimental packages - not released; use at your own risk.
Tags: rc-buggy, rc-buggy-20260316
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Directory: rc-buggy
# sid -- Debian x.y Unstable - Not Released
Tags: sid, sid-20260316
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: sid/oci
File: index.json
Tags: sid-slim, sid-20260316-slim
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: sid/slim/oci
File: index.json
# stable -- Debian 13.4 Released 14 March 2026
Tags: stable, stable-20260316
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: stable/oci
File: index.json
Tags: stable-backports
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Directory: stable/backports
Tags: stable-slim, stable-20260316-slim
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: stable/slim/oci
File: index.json
# testing -- Debian x.y Testing distribution - Not Released
Tags: testing, testing-20260316
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: testing/oci
File: index.json
Tags: testing-backports
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Directory: testing/backports
Tags: testing-slim, testing-20260316-slim
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: testing/slim/oci
File: index.json
# trixie -- Debian 13.4 Released 14 March 2026
Tags: trixie, trixie-20260316, 13.4, 13, latest
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: trixie/oci
File: index.json
Tags: trixie-backports
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Directory: trixie/backports
Tags: trixie-slim, trixie-20260316-slim, 13.4-slim, 13-slim
Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: trixie/slim/oci
File: index.json
# unstable -- Debian x.y Unstable - Not Released
Tags: unstable, unstable-20260316
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: unstable/oci
File: index.json
Tags: unstable-slim, unstable-20260316-slim
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
Builder: oci-import
Directory: unstable/slim/oci
File: index.json
================================================
FILE: library/docker
================================================
# this file is generated via https://github.com/docker-library/docker/blob/9f57f3fb1ef688e231b911e0b414da241804c511/generate-stackbrew-library.sh
Maintainers: Tianon Gravi <tianon@dockerproject.org> (@tianon),
Joseph Ferguson <yosifkit@gmail.com> (@yosifkit)
GitRepo: https://github.com/docker-library/docker.git
Builder: buildkit
Tags: 29.3.0-cli, 29.3-cli, 29-cli, cli, 29.3.0-cli-alpine3.23
Architectures: amd64, arm32v6, arm32v7, arm64v8
GitCommit: 41fd7e84aa8931e6066b04a20e969ca07b60547a
Directory: 29/cli
Tags: 29.3.0-dind, 29.3-dind, 29-dind, dind, 29.3.0-dind-alpine3.23, 29.3.0, 29.3, 29, latest, 29.3.0-alpine3.23
Architectures: amd64, arm32v6, arm32v7, arm64v8
GitCommit: 41fd7e84aa8931e6066b04a20e969ca07b60547a
Directory: 29/dind
Tags: 29.3.0-dind-rootless, 29.3-dind-rootless, 29-dind-rootless, dind-rootless
Architectures: amd64, arm64v8
GitCommit: 41fd7e84aa8931e6066b04a20e969ca07b60547a
Directory: 29/dind-rootless
Tags: 29.3.0-windowsservercore-ltsc2025, 29.3-windowsservercore-ltsc2025, 29-windowsservercore-ltsc2025, windowsservercore-ltsc2025
SharedTags: 29.3.0-windowsservercore, 29.3-windowsservercore, 29-windowsservercore, windowsservercore
Architectures: windows-amd64
GitCommit: 41fd7e84aa8931e6066b04a20e969ca07b60547a
Directory: 29/windows/windowsservercore-ltsc2025
Constraints: windowsservercore-ltsc2025
Builder: classic
Tags: 29.3.0-windowsservercore-ltsc2022, 29.3-windowsservercore-ltsc2022, 29-windowsservercore-ltsc2022, windowsservercore-ltsc2022
SharedTags: 29.3.0-windowsservercore, 29.3-windowsservercore, 29-windowsservercore, windowsservercore
Architectures: windows-amd64
GitCommit: 41fd7e84aa8931e6066b04a20e969ca07b60547a
Directory: 29/windows/windowsservercore-ltsc2022
Constraints: windowsservercore-ltsc2022
Builder: classic
================================================
FILE: library/drupal
================================================
# this file is generated via https://github.com/docker-library/drupal/blob/8527ca0412b456cd3719cb8719bfb83da5d530a7/generate-stackbrew-library.sh
Maintainers: Tianon Gravi <admwiggin@gmail.com> (@tianon),
Joseph Ferguson <yosifkit@gmail.com> (@yosifkit)
GitRepo: https://github.com/docker-library/drupal.git
Tags: 11.3.5-php8.5-apache-trixie, 11.3-php8.5-apache-trixie, 11-php8.5-apache-trixie, php8.5-apache-trixie, 11.3.5-php8.5-apache, 11.3-php8.5-apache, 11-php8.5-apache, php8.5-apache, 11.3.5-php8.5, 11.3-php8.5, 11-php8.5, php8.5
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.5/apache-trixie
Tags: 11.3.5-php8.5-fpm-trixie, 11.3-php8.5-fpm-trixie, 11-php8.5-fpm-trixie, php8.5-fpm-trixie, 11.3.5-php8.5-fpm, 11.3-php8.5-fpm, 11-php8.5-fpm, php8.5-fpm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.5/fpm-trixie
Tags: 11.3.5-php8.5-apache-bookworm, 11.3-php8.5-apache-bookworm, 11-php8.5-apache-bookworm, php8.5-apache-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.5/apache-bookworm
Tags: 11.3.5-php8.5-fpm-bookworm, 11.3-php8.5-fpm-bookworm, 11-php8.5-fpm-bookworm, php8.5-fpm-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.5/fpm-bookworm
Tags: 11.3.5-php8.5-fpm-alpine3.23, 11.3-php8.5-fpm-alpine3.23, 11-php8.5-fpm-alpine3.23, php8.5-fpm-alpine3.23, 11.3.5-php8.5-fpm-alpine, 11.3-php8.5-fpm-alpine, 11-php8.5-fpm-alpine, php8.5-fpm-alpine
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.5/fpm-alpine3.23
Tags: 11.3.5-php8.5-fpm-alpine3.22, 11.3-php8.5-fpm-alpine3.22, 11-php8.5-fpm-alpine3.22, php8.5-fpm-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.5/fpm-alpine3.22
Tags: 11.3.5-php8.4-apache-trixie, 11.3-php8.4-apache-trixie, 11-php8.4-apache-trixie, php8.4-apache-trixie, 11.3.5-php8.4-apache, 11.3-php8.4-apache, 11-php8.4-apache, php8.4-apache, 11.3.5-php8.4, 11.3-php8.4, 11-php8.4, php8.4, 11.3.5-apache-trixie, 11.3-apache-trixie, 11-apache-trixie, apache-trixie, 11.3.5-apache, 11.3-apache, 11-apache, apache, 11.3.5, 11.3, 11, latest
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.4/apache-trixie
Tags: 11.3.5-php8.4-fpm-trixie, 11.3-php8.4-fpm-trixie, 11-php8.4-fpm-trixie, php8.4-fpm-trixie, 11.3.5-php8.4-fpm, 11.3-php8.4-fpm, 11-php8.4-fpm, php8.4-fpm, 11.3.5-fpm-trixie, 11.3-fpm-trixie, 11-fpm-trixie, fpm-trixie, 11.3.5-fpm, 11.3-fpm, 11-fpm, fpm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.4/fpm-trixie
Tags: 11.3.5-php8.4-apache-bookworm, 11.3-php8.4-apache-bookworm, 11-php8.4-apache-bookworm, php8.4-apache-bookworm, 11.3.5-apache-bookworm, 11.3-apache-bookworm, 11-apache-bookworm, apache-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.4/apache-bookworm
Tags: 11.3.5-php8.4-fpm-bookworm, 11.3-php8.4-fpm-bookworm, 11-php8.4-fpm-bookworm, php8.4-fpm-bookworm, 11.3.5-fpm-bookworm, 11.3-fpm-bookworm, 11-fpm-bookworm, fpm-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.4/fpm-bookworm
Tags: 11.3.5-php8.4-fpm-alpine3.23, 11.3-php8.4-fpm-alpine3.23, 11-php8.4-fpm-alpine3.23, php8.4-fpm-alpine3.23, 11.3.5-php8.4-fpm-alpine, 11.3-php8.4-fpm-alpine, 11-php8.4-fpm-alpine, php8.4-fpm-alpine, 11.3.5-fpm-alpine3.23, 11.3-fpm-alpine3.23, 11-fpm-alpine3.23, fpm-alpine3.23, 11.3.5-fpm-alpine, 11.3-fpm-alpine, 11-fpm-alpine, fpm-alpine
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.4/fpm-alpine3.23
Tags: 11.3.5-php8.4-fpm-alpine3.22, 11.3-php8.4-fpm-alpine3.22, 11-php8.4-fpm-alpine3.22, php8.4-fpm-alpine3.22, 11.3.5-fpm-alpine3.22, 11.3-fpm-alpine3.22, 11-fpm-alpine3.22, fpm-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 3c2ac6ffad4db2ec1b201893c5a6c0ff26239360
Directory: 11.3/php8.4/fpm-alpine3.22
Tags: 11.2.10-php8.4-apache-trixie, 11.2-php8.4-apache-trixie, 11.2.10-php8.4-apache, 11.2-php8.4-apache, 11.2.10-php8.4, 11.2-php8.4, 11.2.10-apache-trixie, 11.2-apache-trixie, 11.2.10-apache, 11.2-apache, 11.2.10, 11.2
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.4/apache-trixie
Tags: 11.2.10-php8.4-fpm-trixie, 11.2-php8.4-fpm-trixie, 11.2.10-php8.4-fpm, 11.2-php8.4-fpm, 11.2.10-fpm-trixie, 11.2-fpm-trixie, 11.2.10-fpm, 11.2-fpm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.4/fpm-trixie
Tags: 11.2.10-php8.4-apache-bookworm, 11.2-php8.4-apache-bookworm, 11.2.10-apache-bookworm, 11.2-apache-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.4/apache-bookworm
Tags: 11.2.10-php8.4-fpm-bookworm, 11.2-php8.4-fpm-bookworm, 11.2.10-fpm-bookworm, 11.2-fpm-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.4/fpm-bookworm
Tags: 11.2.10-php8.4-fpm-alpine3.23, 11.2-php8.4-fpm-alpine3.23, 11.2.10-php8.4-fpm-alpine, 11.2-php8.4-fpm-alpine, 11.2.10-fpm-alpine3.23, 11.2-fpm-alpine3.23, 11.2.10-fpm-alpine, 11.2-fpm-alpine
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.4/fpm-alpine3.23
Tags: 11.2.10-php8.4-fpm-alpine3.22, 11.2-php8.4-fpm-alpine3.22, 11.2.10-fpm-alpine3.22, 11.2-fpm-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.4/fpm-alpine3.22
Tags: 11.2.10-php8.3-apache-trixie, 11.2-php8.3-apache-trixie, 11.2.10-php8.3-apache, 11.2-php8.3-apache, 11.2.10-php8.3, 11.2-php8.3
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.3/apache-trixie
Tags: 11.2.10-php8.3-fpm-trixie, 11.2-php8.3-fpm-trixie, 11.2.10-php8.3-fpm, 11.2-php8.3-fpm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.3/fpm-trixie
Tags: 11.2.10-php8.3-apache-bookworm, 11.2-php8.3-apache-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.3/apache-bookworm
Tags: 11.2.10-php8.3-fpm-bookworm, 11.2-php8.3-fpm-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.3/fpm-bookworm
Tags: 11.2.10-php8.3-fpm-alpine3.23, 11.2-php8.3-fpm-alpine3.23, 11.2.10-php8.3-fpm-alpine, 11.2-php8.3-fpm-alpine
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.3/fpm-alpine3.23
Tags: 11.2.10-php8.3-fpm-alpine3.22, 11.2-php8.3-fpm-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: a0d9b553e28d816166cd59f3971b6c6c6b11351b
Directory: 11.2/php8.3/fpm-alpine3.22
Tags: 10.6.5-php8.4-apache-trixie, 10.6-php8.4-apache-trixie, 10-php8.4-apache-trixie, 10.6.5-php8.4-apache, 10.6-php8.4-apache, 10-php8.4-apache, 10.6.5-php8.4, 10.6-php8.4, 10-php8.4, 10.6.5-apache-trixie, 10.6-apache-trixie, 10-apache-trixie, 10.6.5-apache, 10.6-apache, 10-apache, 10.6.5, 10.6, 10
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.4/apache-trixie
Tags: 10.6.5-php8.4-fpm-trixie, 10.6-php8.4-fpm-trixie, 10-php8.4-fpm-trixie, 10.6.5-php8.4-fpm, 10.6-php8.4-fpm, 10-php8.4-fpm, 10.6.5-fpm-trixie, 10.6-fpm-trixie, 10-fpm-trixie, 10.6.5-fpm, 10.6-fpm, 10-fpm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.4/fpm-trixie
Tags: 10.6.5-php8.4-apache-bookworm, 10.6-php8.4-apache-bookworm, 10-php8.4-apache-bookworm, 10.6.5-apache-bookworm, 10.6-apache-bookworm, 10-apache-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.4/apache-bookworm
Tags: 10.6.5-php8.4-fpm-bookworm, 10.6-php8.4-fpm-bookworm, 10-php8.4-fpm-bookworm, 10.6.5-fpm-bookworm, 10.6-fpm-bookworm, 10-fpm-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.4/fpm-bookworm
Tags: 10.6.5-php8.4-fpm-alpine3.23, 10.6-php8.4-fpm-alpine3.23, 10-php8.4-fpm-alpine3.23, 10.6.5-php8.4-fpm-alpine, 10.6-php8.4-fpm-alpine, 10-php8.4-fpm-alpine, 10.6.5-fpm-alpine3.23, 10.6-fpm-alpine3.23, 10-fpm-alpine3.23, 10.6.5-fpm-alpine, 10.6-fpm-alpine, 10-fpm-alpine
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.4/fpm-alpine3.23
Tags: 10.6.5-php8.4-fpm-alpine3.22, 10.6-php8.4-fpm-alpine3.22, 10-php8.4-fpm-alpine3.22, 10.6.5-fpm-alpine3.22, 10.6-fpm-alpine3.22, 10-fpm-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.4/fpm-alpine3.22
Tags: 10.6.5-php8.3-apache-trixie, 10.6-php8.3-apache-trixie, 10-php8.3-apache-trixie, 10.6.5-php8.3-apache, 10.6-php8.3-apache, 10-php8.3-apache, 10.6.5-php8.3, 10.6-php8.3, 10-php8.3
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.3/apache-trixie
Tags: 10.6.5-php8.3-fpm-trixie, 10.6-php8.3-fpm-trixie, 10-php8.3-fpm-trixie, 10.6.5-php8.3-fpm, 10.6-php8.3-fpm, 10-php8.3-fpm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.3/fpm-trixie
Tags: 10.6.5-php8.3-apache-bookworm, 10.6-php8.3-apache-bookworm, 10-php8.3-apache-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.3/apache-bookworm
Tags: 10.6.5-php8.3-fpm-bookworm, 10.6-php8.3-fpm-bookworm, 10-php8.3-fpm-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.3/fpm-bookworm
Tags: 10.6.5-php8.3-fpm-alpine3.23, 10.6-php8.3-fpm-alpine3.23, 10-php8.3-fpm-alpine3.23, 10.6.5-php8.3-fpm-alpine, 10.6-php8.3-fpm-alpine, 10-php8.3-fpm-alpine
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.3/fpm-alpine3.23
Tags: 10.6.5-php8.3-fpm-alpine3.22, 10.6-php8.3-fpm-alpine3.22, 10-php8.3-fpm-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 194c0607b6d5b9197aa79f710e2b4f6bf85a846e
Directory: 10.6/php8.3/fpm-alpine3.22
Tags: 10.5.8-php8.4-apache-trixie, 10.5-php8.4-apache-trixie, 10.5.8-php8.4-apache, 10.5-php8.4-apache, 10.5.8-php8.4, 10.5-php8.4, 10.5.8-apache-trixie, 10.5-apache-trixie, 10.5.8-apache, 10.5-apache, 10.5.8, 10.5
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.4/apache-trixie
Tags: 10.5.8-php8.4-fpm-trixie, 10.5-php8.4-fpm-trixie, 10.5.8-php8.4-fpm, 10.5-php8.4-fpm, 10.5.8-fpm-trixie, 10.5-fpm-trixie, 10.5.8-fpm, 10.5-fpm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.4/fpm-trixie
Tags: 10.5.8-php8.4-apache-bookworm, 10.5-php8.4-apache-bookworm, 10.5.8-apache-bookworm, 10.5-apache-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.4/apache-bookworm
Tags: 10.5.8-php8.4-fpm-bookworm, 10.5-php8.4-fpm-bookworm, 10.5.8-fpm-bookworm, 10.5-fpm-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.4/fpm-bookworm
Tags: 10.5.8-php8.4-fpm-alpine3.23, 10.5-php8.4-fpm-alpine3.23, 10.5.8-php8.4-fpm-alpine, 10.5-php8.4-fpm-alpine, 10.5.8-fpm-alpine3.23, 10.5-fpm-alpine3.23, 10.5.8-fpm-alpine, 10.5-fpm-alpine
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.4/fpm-alpine3.23
Tags: 10.5.8-php8.4-fpm-alpine3.22, 10.5-php8.4-fpm-alpine3.22, 10.5.8-fpm-alpine3.22, 10.5-fpm-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.4/fpm-alpine3.22
Tags: 10.5.8-php8.3-apache-trixie, 10.5-php8.3-apache-trixie, 10.5.8-php8.3-apache, 10.5-php8.3-apache, 10.5.8-php8.3, 10.5-php8.3
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.3/apache-trixie
Tags: 10.5.8-php8.3-fpm-trixie, 10.5-php8.3-fpm-trixie, 10.5.8-php8.3-fpm, 10.5-php8.3-fpm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.3/fpm-trixie
Tags: 10.5.8-php8.3-apache-bookworm, 10.5-php8.3-apache-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.3/apache-bookworm
Tags: 10.5.8-php8.3-fpm-bookworm, 10.5-php8.3-fpm-bookworm
Architectures: amd64, arm32v7, arm64v8, i386, ppc64le, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.3/fpm-bookworm
Tags: 10.5.8-php8.3-fpm-alpine3.23, 10.5-php8.3-fpm-alpine3.23, 10.5.8-php8.3-fpm-alpine, 10.5-php8.3-fpm-alpine
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.3/fpm-alpine3.23
Tags: 10.5.8-php8.3-fpm-alpine3.22, 10.5-php8.3-fpm-alpine3.22
Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
GitCommit: 4a684115b7703293a77e383381f19a23b2212b3d
Directory: 10.5/php8.3/fpm-alpine3.22
================================================
FILE: library/eclipse-mosquitto
================================================
Maintainers: Roger Light <roger@atchoo.org> (@ralight)
GitRepo: https://github.com/eclipse-mosquitto/mosquitto.git
GitCommit: 5b74cce8a4fe2a73b57df6c703bfde2cfd535d60
Architectures: amd64, arm32v6, arm64v8, i386, ppc64le, s390x
Tags: 2.1.2-alpine, 2.1-alpine, alpine, 2, latest
Directory: docker/2.1-alpine
Tags: 2.0.22, 2.0.22-openssl, 2.0, 2.0-openssl, 2-openssl, openssl
Directory: docker/2.0-openssl
Tags: 1.6.15-openssl, 1.6-openssl
Directory: docker/1.6-openssl
================================================
FILE: library/eclipse-temurin
================================================
# Eclipse Temurin OpenJDK images provided by the Eclipse Foundation.
Maintainers: George Adams <george.adams@microsoft.com> (@gdams),
Stewart Addison <sxa@redhat.com> (@sxa)
GitRepo: https://github.com/adoptium/containers.git
GitFetch: refs/heads/main
Builder: buildkit
#------------------------------v8 images---------------------------------
Tags: 8u482-b08-jdk-alpine-3.20, 8-jdk-alpine-3.20, 8-alpine-3.20
Architectures: amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/alpine/3.20
Tags: 8u482-b08-jdk-alpine-3.21, 8-jdk-alpine-3.21, 8-alpine-3.21
Architectures: amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/alpine/3.21
Tags: 8u482-b08-jdk-alpine-3.22, 8-jdk-alpine-3.22, 8-alpine-3.22
Architectures: amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/alpine/3.22
Tags: 8u482-b08-jdk-alpine-3.23, 8-jdk-alpine-3.23, 8-alpine-3.23, 8u482-b08-jdk-alpine, 8-jdk-alpine, 8-alpine
Architectures: amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/alpine/3.23
Tags: 8u482-b08-jdk-jammy, 8-jdk-jammy, 8-jammy
Architectures: amd64, arm32v7, arm64v8, ppc64le
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/ubuntu/jammy
Tags: 8u482-b08-jdk-noble, 8-jdk-noble, 8-noble
SharedTags: 8u482-b08-jdk, 8-jdk, 8
Architectures: amd64, arm32v7, arm64v8, ppc64le
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/ubuntu/noble
Tags: 8u482-b08-jdk-ubi10-minimal, 8-jdk-ubi10-minimal, 8-ubi10-minimal
Architectures: amd64, arm64v8, ppc64le
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/ubi/ubi10-minimal
Tags: 8u482-b08-jdk-ubi9-minimal, 8-jdk-ubi9-minimal, 8-ubi9-minimal
Architectures: amd64, arm64v8, ppc64le
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/ubi/ubi9-minimal
Tags: 8u482-b08-jdk-windowsservercore-ltsc2025, 8-jdk-windowsservercore-ltsc2025, 8-windowsservercore-ltsc2025
SharedTags: 8u482-b08-jdk-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore, 8u482-b08-jdk, 8-jdk, 8
Architectures: windows-amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/windows/windowsservercore-ltsc2025
Builder: classic
Constraints: windowsservercore-ltsc2025
Tags: 8u482-b08-jdk-nanoserver-ltsc2025, 8-jdk-nanoserver-ltsc2025, 8-nanoserver-ltsc2025
SharedTags: 8u482-b08-jdk-nanoserver, 8-jdk-nanoserver, 8-nanoserver
Architectures: windows-amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/windows/nanoserver-ltsc2025
Builder: classic
Constraints: nanoserver-ltsc2025, windowsservercore-ltsc2025
Tags: 8u482-b08-jdk-windowsservercore-ltsc2022, 8-jdk-windowsservercore-ltsc2022, 8-windowsservercore-ltsc2022
SharedTags: 8u482-b08-jdk-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore, 8u482-b08-jdk, 8-jdk, 8
Architectures: windows-amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/windows/windowsservercore-ltsc2022
Builder: classic
Constraints: windowsservercore-ltsc2022
Tags: 8u482-b08-jdk-nanoserver-ltsc2022, 8-jdk-nanoserver-ltsc2022, 8-nanoserver-ltsc2022
SharedTags: 8u482-b08-jdk-nanoserver, 8-jdk-nanoserver, 8-nanoserver
Architectures: windows-amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jdk/windows/nanoserver-ltsc2022
Builder: classic
Constraints: nanoserver-ltsc2022, windowsservercore-ltsc2022
Tags: 8u482-b08-jre-alpine-3.20, 8-jre-alpine-3.20
Architectures: amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jre/alpine/3.20
Tags: 8u482-b08-jre-alpine-3.21, 8-jre-alpine-3.21
Architectures: amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jre/alpine/3.21
Tags: 8u482-b08-jre-alpine-3.22, 8-jre-alpine-3.22
Architectures: amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jre/alpine/3.22
Tags: 8u482-b08-jre-alpine-3.23, 8-jre-alpine-3.23, 8u482-b08-jre-alpine, 8-jre-alpine
Architectures: amd64
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jre/alpine/3.23
Tags: 8u482-b08-jre-jammy, 8-jre-jammy
Architectures: amd64, arm32v7, arm64v8, ppc64le
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jre/ubuntu/jammy
Tags: 8u482-b08-jre-noble, 8-jre-noble
SharedTags: 8u482-b08-jre, 8-jre
Architectures: amd64, arm32v7, arm64v8, ppc64le
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b2
Directory: 8/jre/ubuntu/noble
Tags: 8u482-b08-jre-ubi10-minimal, 8-jre-ubi10-minimal
Architectures: amd64, arm64v8, ppc64le
GitCommit: a475d69551c1fa735bb4bd1570b7c908691525b
gitextract_zs_h73wn/ ├── .buildkit-build-contexts.sh ├── .external-pins/ │ ├── docker/ │ │ └── scout-sbom-indexer___1 │ ├── file.sh │ ├── list.sh │ ├── mcr.microsoft.com/ │ │ └── windows/ │ │ ├── nanoserver___ltsc2022 │ │ ├── nanoserver___ltsc2025 │ │ ├── servercore___ltsc2022 │ │ └── servercore___ltsc2025 │ ├── redhat/ │ │ ├── ubi10-minimal___latest │ │ ├── ubi10___latest │ │ ├── ubi8-minimal___latest │ │ ├── ubi8___latest │ │ ├── ubi9-minimal___latest │ │ └── ubi9___latest │ ├── tag.sh │ ├── tianon/ │ │ └── buildkit___0.16 │ └── update.sh ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE.md │ └── workflows/ │ ├── .bashbrew/ │ │ └── action.yml │ ├── generate.sh │ ├── munge-pr.yml │ ├── naughty.sh │ └── test-pr.yml ├── .gitignore ├── CODE-OF-CONDUCT.md ├── Dockerfile ├── LICENSE ├── MAINTAINERS ├── NEW-IMAGE-CHECKLIST.md ├── README.md ├── SECURITY.md ├── _bashbrew-cat-sorted.sh ├── diff-pr.sh ├── library/ │ ├── adminer │ ├── aerospike │ ├── almalinux │ ├── alpine │ ├── alt │ ├── amazoncorretto │ ├── amazonlinux │ ├── api-firewall │ ├── arangodb │ ├── archlinux │ ├── azul-zulu │ ├── backdrop │ ├── bash │ ├── bonita │ ├── buildpack-deps │ ├── busybox │ ├── caddy │ ├── cassandra │ ├── chronograf │ ├── cirros │ ├── clearlinux │ ├── clefos │ ├── clickhouse │ ├── clojure │ ├── composer │ ├── convertigo │ ├── couchbase │ ├── couchdb │ ├── crate │ ├── dart │ ├── debian │ ├── docker │ ├── drupal │ ├── eclipse-mosquitto │ ├── eclipse-temurin │ ├── eggdrop │ ├── elasticsearch │ ├── elixir │ ├── emqx │ ├── erlang │ ├── fedora │ ├── flink │ ├── fluentd │ ├── friendica │ ├── gazebo │ ├── gcc │ ├── geonetwork │ ├── ghost │ ├── golang │ ├── gradle │ ├── groovy │ ├── haproxy │ ├── haskell │ ├── haxe │ ├── hello-world │ ├── hitch │ ├── httpd │ ├── hylang │ ├── ibm-semeru-runtimes │ ├── ibmjava │ ├── influxdb │ ├── irssi │ ├── jetty │ ├── joomla │ ├── jruby │ ├── julia │ ├── kapacitor │ ├── kibana │ ├── kong │ ├── krakend │ ├── lightstreamer │ ├── liquibase │ ├── logstash │ ├── mageia │ ├── mariadb │ ├── matomo │ ├── maven │ ├── mediawiki │ ├── memcached │ ├── mongo │ ├── mongo-express │ ├── monica │ ├── mysql │ ├── nats │ ├── neo4j │ ├── neurodebian │ ├── nextcloud │ ├── nginx │ ├── node │ ├── notary │ ├── odoo │ ├── open-liberty │ ├── openjdk │ ├── oraclelinux │ ├── orientdb │ ├── percona │ ├── perl │ ├── photon │ ├── php │ ├── php-zendserver │ ├── phpmyadmin │ ├── plone │ ├── postfixadmin │ ├── postgres │ ├── pypy │ ├── python │ ├── r-base │ ├── rabbitmq │ ├── rakudo-star │ ├── redis │ ├── redmine │ ├── registry │ ├── rethinkdb │ ├── rocket.chat │ ├── rockylinux │ ├── ros │ ├── ruby │ ├── rust │ ├── sapmachine │ ├── satosa │ ├── silverpeas │ ├── solr │ ├── sonarqube │ ├── spark │ ├── spiped │ ├── storm │ ├── swift │ ├── swipl │ ├── teamspeak │ ├── telegraf │ ├── tomcat │ ├── tomee │ ├── traefik │ ├── ubuntu │ ├── unit │ ├── varnish │ ├── websphere-liberty │ ├── wordpress │ ├── xwiki │ ├── yourls │ ├── znc │ └── zookeeper ├── naughty-commits.sh ├── naughty-constraints.sh ├── naughty-from.sh ├── naughty-sharedtags.sh ├── pr-urls.sh ├── test/ │ ├── README.md │ ├── clean.sh │ ├── config.sh │ ├── retry.sh │ ├── run.sh │ └── tests/ │ ├── cassandra-basics/ │ │ └── run.sh │ ├── cheeky-retries.sh │ ├── composer/ │ │ ├── composer.json │ │ └── container.sh │ ├── convertigo-hello-world/ │ │ └── run.sh │ ├── dart-hello-world/ │ │ ├── container.dart │ │ └── expected-std-out.txt │ ├── debian-apt-get/ │ │ ├── container.sh │ │ └── expected-std-out.txt │ ├── docker-build.sh │ ├── docker-dind/ │ │ └── run.sh │ ├── docker-registry-push-pull/ │ │ └── run.sh │ ├── eclipse-mosquitto-basics/ │ │ ├── mosquitto.conf │ │ └── run.sh │ ├── elixir-hello-world/ │ │ ├── container.exs │ │ └── expected-std-out.txt │ ├── erlang-hello-world/ │ │ ├── container.erl │ │ └── expected-std-out.txt │ ├── gcc-c-hello-world/ │ │ ├── container.c │ │ └── expected-std-out.txt │ ├── gcc-cpp-hello-world/ │ │ ├── container.cpp │ │ └── expected-std-out.txt │ ├── ghost-basics/ │ │ └── run.sh │ ├── golang-hello-world/ │ │ ├── container.go │ │ ├── expected-std-out.txt │ │ └── run.sh │ ├── haproxy-basics/ │ │ ├── haproxy.cfg │ │ └── run.sh │ ├── haskell-cabal/ │ │ └── container.sh │ ├── haskell-ghci/ │ │ └── container.sh │ ├── haskell-runhaskell/ │ │ ├── container.hs │ │ └── expected-std-out.txt │ ├── haskell-stack/ │ │ └── container.sh │ ├── haxe-haxelib-install/ │ │ └── Container.hx │ ├── haxe-hello-world/ │ │ ├── Container.hx │ │ └── expected-std-out.txt │ ├── hylang-hello-world/ │ │ ├── container.hy │ │ └── expected-std-out.txt │ ├── hylang-sh/ │ │ ├── container.hy │ │ └── expected-std-out.txt │ ├── image-name.sh │ ├── java-ca-certificates/ │ │ └── container.java │ ├── java-hello-world/ │ │ ├── container.java │ │ └── expected-std-out.txt │ ├── java-uimanager-font/ │ │ └── container.java │ ├── jetty-hello-web/ │ │ ├── index.jsp │ │ └── run.sh │ ├── julia-downloads/ │ │ └── container.jl │ ├── julia-hello-world/ │ │ ├── container.jl │ │ └── expected-std-out.txt │ ├── logstash-basics/ │ │ └── run.sh │ ├── matomo-apache-run/ │ │ └── run.sh │ ├── matomo-fpm-run/ │ │ └── run.sh │ ├── memcached-basics/ │ │ └── run.sh │ ├── mongo-basics/ │ │ └── run.sh │ ├── mongo-express-run/ │ │ └── run.sh │ ├── monica-apache-run/ │ │ └── run.sh │ ├── monica-cli/ │ │ └── run.sh │ ├── monica-cli-mariadb10/ │ │ └── run.sh │ ├── monica-cli-mysql8/ │ │ └── run.sh │ ├── monica-fpm-run/ │ │ └── run.sh │ ├── mysql-basics/ │ │ └── run.sh │ ├── mysql-initdb/ │ │ ├── initdb.sql │ │ └── run.sh │ ├── mysql-log-bin/ │ │ └── run.sh │ ├── nextcloud-apache-run/ │ │ └── real-run.sh │ ├── nextcloud-cli/ │ │ └── run.sh │ ├── nextcloud-cli-mysql/ │ │ └── run.sh │ ├── nextcloud-cli-postgres/ │ │ └── run.sh │ ├── nextcloud-cli-sqlite/ │ │ └── run.sh │ ├── nextcloud-fpm-run/ │ │ └── real-run.sh │ ├── no-hard-coded-passwords/ │ │ └── run.sh │ ├── node-hello-world/ │ │ ├── container.js │ │ └── expected-std-out.txt │ ├── nuxeo-basics/ │ │ └── run.sh │ ├── nuxeo-conf/ │ │ ├── expected-std-out.txt │ │ └── run.sh │ ├── open-liberty-hello-world/ │ │ └── run.sh │ ├── override-cmd/ │ │ └── run.sh │ ├── percona-rocksdb/ │ │ └── run.sh │ ├── percona-tokudb/ │ │ └── run.sh │ ├── perl-cpanm/ │ │ └── container.sh │ ├── perl-hello-world/ │ │ ├── container.pl │ │ └── expected-std-out.txt │ ├── php-apache-hello-web/ │ │ └── run.sh │ ├── php-argon2/ │ │ └── container.php │ ├── php-ext-install/ │ │ └── container.sh │ ├── php-fpm-hello-web/ │ │ ├── index.php │ │ └── run.sh │ ├── php-hello-world/ │ │ ├── container.php │ │ └── expected-std-out.txt │ ├── plone-addons/ │ │ ├── expected-std-out.txt │ │ └── run.sh │ ├── plone-basics/ │ │ └── run.sh │ ├── plone-cors/ │ │ ├── expected-std-out.txt │ │ └── run.sh │ ├── plone-versions/ │ │ ├── expected-std-out.txt │ │ └── run.sh │ ├── plone-zeoclient/ │ │ └── run.sh │ ├── plone-zeosite/ │ │ ├── expected-std-out.txt │ │ └── run.sh │ ├── postfixadmin-apache-run/ │ │ └── run.sh │ ├── postfixadmin-fpm-run/ │ │ └── run.sh │ ├── postgres-basics/ │ │ └── run.sh │ ├── postgres-initdb/ │ │ ├── initdb.sql │ │ └── run.sh │ ├── python-imports/ │ │ └── container.py │ ├── python-no-pyc/ │ │ ├── container.cmd │ │ └── container.sh │ ├── python-pip-requests-ssl/ │ │ └── container.py │ ├── python-sqlite3/ │ │ └── container.py │ ├── python-stack-size/ │ │ └── container.py │ ├── rabbitmq-basics/ │ │ ├── receive.py │ │ ├── run.sh │ │ ├── send.py │ │ └── testconn.py │ ├── rabbitmq-tls/ │ │ ├── inet-dist-tls.config │ │ ├── rabbitmq-env.conf │ │ ├── rabbitmq.conf │ │ └── run.sh │ ├── redis-basics/ │ │ └── run.sh │ ├── redis-basics-config/ │ │ └── run.sh │ ├── redis-basics-persistent/ │ │ └── run.sh │ ├── redmine-basics/ │ │ └── run.sh │ ├── ruby-binstubs/ │ │ ├── Gemfile │ │ └── container.sh │ ├── ruby-bundler/ │ │ ├── Gemfile │ │ └── container.sh │ ├── ruby-gems/ │ │ └── container.sh │ ├── ruby-hello-world/ │ │ ├── container.rb │ │ └── expected-std-out.txt │ ├── ruby-native-extension/ │ │ ├── expected-std-out.txt │ │ └── run.sh │ ├── ruby-nonroot/ │ │ ├── Gemfile │ │ └── run.sh │ ├── ruby-standard-libs/ │ │ ├── container.rb │ │ └── expected-std-out.txt │ ├── run-bash-in-container.sh │ ├── run-dart-in-container.sh │ ├── run-elixir-in-container.sh │ ├── run-erlang-in-container.sh │ ├── run-g++-in-container.sh │ ├── run-gcc-in-container.sh │ ├── run-go-in-container.sh │ ├── run-haskell-in-container.sh │ ├── run-haxe-in-container.sh │ ├── run-hy-in-container.sh │ ├── run-in-container.sh │ ├── run-java-in-container.sh │ ├── run-julia-in-container.sh │ ├── run-node-in-container.sh │ ├── run-perl-in-container.sh │ ├── run-php-in-container.sh │ ├── run-python-in-container.sh │ ├── run-ruby-in-container.sh │ ├── run-rust-in-container.sh │ ├── run-sh-in-container.sh │ ├── run-swift-in-container.sh │ ├── run-swipl-in-container.sh │ ├── rust-hello-world/ │ │ ├── container/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ └── main.rs │ │ └── expected-std-out.txt │ ├── silverpeas-basics/ │ │ └── run.sh │ ├── spiped-basics/ │ │ └── run.sh │ ├── swift-hello-world/ │ │ ├── container.swift │ │ └── expected-std-out.txt │ ├── swipl-modules/ │ │ ├── container.pl │ │ └── expected-std-out.txt │ ├── tomcat-hello-world/ │ │ ├── index.jsp │ │ └── run.sh │ ├── utc/ │ │ ├── expected-std-out.txt │ │ └── run.sh │ ├── varnish/ │ │ └── run.sh │ ├── wordpress-apache-run/ │ │ └── run.sh │ ├── wordpress-fpm-run/ │ │ └── run.sh │ ├── znc-basics/ │ │ └── run.sh │ └── zookeeper-basics/ │ └── run.sh └── toc.sh
SYMBOL INDEX (16 symbols across 12 files)
FILE: test/tests/dart-hello-world/container.dart
function main (line 1) | void main()
FILE: test/tests/gcc-c-hello-world/container.c
function main (line 3) | int main() {
FILE: test/tests/gcc-cpp-hello-world/container.cpp
function main (line 3) | int main() {
FILE: test/tests/golang-hello-world/container.go
function main (line 5) | func main() {
FILE: test/tests/java-ca-certificates/container.java
class container (line 3) | public class container {
method main (line 4) | public static void main(String[] args) {
FILE: test/tests/java-hello-world/container.java
class container (line 1) | public class container {
method main (line 5) | public static void main(String[] args) {
FILE: test/tests/java-uimanager-font/container.java
class container (line 4) | public class container {
method main (line 18) | public static void main(String[] args) {
method bad (line 43) | private static void bad(String msg, Throwable t) {
FILE: test/tests/mysql-initdb/initdb.sql
type test (line 1) | CREATE TABLE test (a INT, b INT, c VARCHAR(255))
FILE: test/tests/postgres-initdb/initdb.sql
type test (line 1) | CREATE TABLE test (a INT, b INT, c VARCHAR(255))
FILE: test/tests/python-stack-size/container.py
function fun (line 5) | def fun(i):
FILE: test/tests/rabbitmq-basics/receive.py
function callback (line 11) | def callback(ch, method, properties, body):
FILE: test/tests/rust-hello-world/container/src/main.rs
function main (line 1) | fn main() {
Condensed preview — 365 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (774K chars).
[
{
"path": ".buildkit-build-contexts.sh",
"chars": 1821,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\n# given a list of image references, returns an appropriate list of \"ref=docker-i"
},
{
"path": ".external-pins/docker/scout-sbom-indexer___1",
"chars": 72,
"preview": "sha256:13c89fb6085aceb41f9556825c59d957917a3be670e3493598bd1f7f2a49f2fe\n"
},
{
"path": ".external-pins/file.sh",
"chars": 386,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\n# given an image (name:tag), return the appropriate filename\n\ndir=\"$(dirname \"$B"
},
{
"path": ".external-pins/list.sh",
"chars": 1320,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\ndir=\"$(dirname \"$BASH_SOURCE\")\"\n\nfind \"$dir\" -mindepth 2 -type f -printf '%P\\n' "
},
{
"path": ".external-pins/mcr.microsoft.com/windows/nanoserver___ltsc2022",
"chars": 72,
"preview": "sha256:be41510eb214c55def9162ef1fb5e71f1b71ce4d64d91bc963199f2383e034ea\n"
},
{
"path": ".external-pins/mcr.microsoft.com/windows/nanoserver___ltsc2025",
"chars": 72,
"preview": "sha256:8e76dda6e26aeee6dd741d9d92cd44f9965e209dcc30b7e90b58d37c63d37cd9\n"
},
{
"path": ".external-pins/mcr.microsoft.com/windows/servercore___ltsc2022",
"chars": 72,
"preview": "sha256:d4c6d1a8a1a306b12691c3b2e5e3a8bfad786cbd6b7831cd74a9a6a99eab08ad\n"
},
{
"path": ".external-pins/mcr.microsoft.com/windows/servercore___ltsc2025",
"chars": 72,
"preview": "sha256:a4d6cb8427e90fd15e39bef29e0e800465989793d2a0826d3b7ceba78af0fe34\n"
},
{
"path": ".external-pins/redhat/ubi10-minimal___latest",
"chars": 72,
"preview": "sha256:fa956af586b367c3366ac4376c3ee42a1141792b482e77d57aefb813f740f04d\n"
},
{
"path": ".external-pins/redhat/ubi10___latest",
"chars": 72,
"preview": "sha256:17296ded9ab581e9a9019a71e15576c0a99813d8870eb6758e32b5bf93c5ff71\n"
},
{
"path": ".external-pins/redhat/ubi8-minimal___latest",
"chars": 72,
"preview": "sha256:1352e7792cd20b906b6f3326f2ce714ae9f2ccf6ba06e7132759afa5efe26e3b\n"
},
{
"path": ".external-pins/redhat/ubi8___latest",
"chars": 72,
"preview": "sha256:28a85f76ad1ea0a46a81a934b02fff48d75541f77777be403d48b6bb99a363ad\n"
},
{
"path": ".external-pins/redhat/ubi9-minimal___latest",
"chars": 72,
"preview": "sha256:83006d535923fcf1345067873524a3980316f51794f01d8655be55d6e9387183\n"
},
{
"path": ".external-pins/redhat/ubi9___latest",
"chars": 72,
"preview": "sha256:05fa0100593c08b5e9dde684cd3eaa94b4d5d7b3cc09944f1f73924e49fde036\n"
},
{
"path": ".external-pins/tag.sh",
"chars": 657,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\n# given a filename, return the appropriate image (name:tag)\n\norigDir=\"$(dirname "
},
{
"path": ".external-pins/tianon/buildkit___0.16",
"chars": 72,
"preview": "sha256:cb0ffa514974dcb631ee9f0be10b6ead0c0625bf12524bca3a673fdd79a0b62e\n"
},
{
"path": ".external-pins/update.sh",
"chars": 535,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\ndir=\"$(dirname \"$BASH_SOURCE\")\"\n\nif [ \"$#\" -eq 0 ]; then\n\timages=\"$(\"$dir/list.s"
},
{
"path": ".gitattributes",
"chars": 86,
"preview": "# https://github.com/actions/checkout/issues/135#issuecomment-613361104\n* text eol=lf\n"
},
{
"path": ".github/CODEOWNERS",
"chars": 1769,
"preview": "* @docker-library/maintainers\n\n# give Laurent a bit more responsibility / authority on images where he's comfortable an"
},
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 603,
"preview": "<!--\n\nWAIT! Before you file an issue here, please keep in mind that your issue is _probably_ more appropriately filed s"
},
{
"path": ".github/workflows/.bashbrew/action.yml",
"chars": 1037,
"preview": "# https://github.com/docker-library/official-images/pull/13556#issuecomment-1319181339 🙈\nname: 'Shared Bashbrew Action'\n"
},
{
"path": ".github/workflows/generate.sh",
"chars": 2500,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\n#\n# NOTE: this is *not* a good example for integrating these tests into your own"
},
{
"path": ".github/workflows/munge-pr.yml",
"chars": 10454,
"preview": "name: Munge PR\n\non:\n pull_request_target:\n\npermissions:\n contents: read\n pull-requests: write\n\ndefaults:\n run:\n s"
},
{
"path": ".github/workflows/naughty.sh",
"chars": 1986,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\nif [ \"$#\" -eq 0 ]; then\n\tgit fetch --quiet https://github.com/docker-library/off"
},
{
"path": ".github/workflows/test-pr.yml",
"chars": 2666,
"preview": "name: Test PR\n\non:\n pull_request:\n\ndefaults:\n run:\n shell: 'bash -Eeuo pipefail -x {0}'\n\nenv:\n # https://github.co"
},
{
"path": ".gitignore",
"chars": 5,
"preview": ".git\n"
},
{
"path": "CODE-OF-CONDUCT.md",
"chars": 3421,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
},
{
"path": "Dockerfile",
"chars": 928,
"preview": "# FYI, this base image is built via \".github/workflows/.bashbrew/action.yml\" (from https://github.com/docker-library/bas"
},
{
"path": "LICENSE",
"chars": 10758,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "MAINTAINERS",
"chars": 592,
"preview": "# This file lists the maintainers of the Official Images program at large, not necessarily the maintainers of any given "
},
{
"path": "NEW-IMAGE-CHECKLIST.md",
"chars": 1821,
"preview": "# Checklist for Review\n\n**NOTE:** This checklist is intended for the use of the Official Images maintainers both to trac"
},
{
"path": "README.md",
"chars": 34799,
"preview": "# Docker Official Images\n\n## Table of Contents\n\n<!-- AUTOGENERATED TOC -->\n\n1.\t[Docker Official Images](#docker-official"
},
{
"path": "SECURITY.md",
"chars": 1397,
"preview": "# Security Policy\n\nIf you have run a CVE/security scanner on an image and that is why you are here, you should read [our"
},
{
"path": "_bashbrew-cat-sorted.sh",
"chars": 867,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\n# a mimic of \"bashbrew cat\" which should sort slightly more deterministically (s"
},
{
"path": "diff-pr.sh",
"chars": 12007,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\nshopt -s dotglob\n\n# make sure we can GTFO\ntrap 'echo >&2 Ctrl+C captured, exiting"
},
{
"path": "library/adminer",
"chars": 1047,
"preview": "# this file is generated via https://github.com/TimWolla/docker-adminer/blob/d05fa68d13a889364cf8c81884ecf1a11a37957f/ge"
},
{
"path": "library/aerospike",
"chars": 756,
"preview": "Maintainers: Lucien Volmar <lucien@aerospike.com> (@volmarl),\n Michael Coberly <mcoberly@aerospike.com> (@mc"
},
{
"path": "library/almalinux",
"chars": 2746,
"preview": "# This file was generated on https://github.com/AlmaLinux/container-images/actions/runs/22493082393\nMaintainers: The Alm"
},
{
"path": "library/alpine",
"chars": 2050,
"preview": "Maintainers: Natanael Copa <ncopa@alpinelinux.org> (@ncopa)\nGitRepo: https://github.com/alpinelinux/docker-alpine.git\n\nT"
},
{
"path": "library/alt",
"chars": 984,
"preview": "Maintainers: ALT Linux Team Cloud <alt-cloud@altlinux.org> (@alt-cloud),\n Alexey Shabalin <shaba@altlinux.or"
},
{
"path": "library/amazoncorretto",
"chars": 8488,
"preview": "Maintainers: Amazon Corretto Team <corretto-team@amazon.com> (@corretto),\n Dan Lutker <lutkerd@amazon.com> ("
},
{
"path": "library/amazonlinux",
"chars": 1309,
"preview": "Maintainers: Amazon Linux <amazon-linux@amazon.com> (@amazonlinux),\n Frédérick Lefebvre (@fred-lefebvre),\n "
},
{
"path": "library/api-firewall",
"chars": 308,
"preview": "Maintainers: Ivan Novikov <in@wallarm.com> (@d0znpp), \n Nikolay Tkachenko (@afr1ka)\nGitRepo: https://github."
},
{
"path": "library/arangodb",
"chars": 380,
"preview": "Maintainers: Frank Celler <info@arangodb.com> (@fceller), Wilfried Goesgens <w.goesgens@arangodb.org> (@dothebart), Vadi"
},
{
"path": "library/archlinux",
"chars": 858,
"preview": "# https://gitlab.archlinux.org/archlinux/archlinux-docker\n\nMaintainers: Santiago Torres-Arias <santiago@archlinux.org> ("
},
{
"path": "library/azul-zulu",
"chars": 4143,
"preview": "Maintainers: Azul Devops Team <devops@azul.com> (@azul-publisher),\n Pavel Petroshenko <pavel@azul.com> (@ppe"
},
{
"path": "library/backdrop",
"chars": 629,
"preview": "Maintainers: Mike Pirog <mike@kalabox.io> (@pirog),\n Geoff St. Pierre <serundeputy@gmail.com> (@serundeputy)"
},
{
"path": "library/bash",
"chars": 2944,
"preview": "# this file is generated via https://github.com/tianon/docker-bash/blob/59788c3224d1c11f14518f6c860ce6bccaf21d54/generat"
},
{
"path": "library/bonita",
"chars": 558,
"preview": "Maintainers: Emmanuel Duchastenier <emmanuel.duchastenier@bonitasoft.org> (@educhastenier),\n Anthony Biremba"
},
{
"path": "library/buildpack-deps",
"chars": 5055,
"preview": "# this file is generated via https://github.com/docker-library/buildpack-deps/blob/abbc41715d6f92a6e5137a6a09b59400a6333"
},
{
"path": "library/busybox",
"chars": 5310,
"preview": "# this file is generated via https://github.com/docker-library/busybox/blob/32ed6b6c9363239c5acccfcf89bf401e07fc33c3/gen"
},
{
"path": "library/caddy",
"chars": 3690,
"preview": "# this file is generated with gomplate:\n# template: https://github.com/caddyserver/caddy-docker/blob/e05f66898af9a0a694a"
},
{
"path": "library/cassandra",
"chars": 890,
"preview": "# this file is generated via https://github.com/docker-library/cassandra/blob/7c5b1270f935620330a51c1658d2c0557432f4ac/g"
},
{
"path": "library/chronograf",
"chars": 930,
"preview": "Maintainers: Brandon Pfeifer <bpfeifer@influxdata.com> (@bnpfeife),\n Sven Rebhan <srebhan@influxdata.com> (@"
},
{
"path": "library/cirros",
"chars": 554,
"preview": "# this file is generated via https://github.com/tianon/docker-brew-cirros/blob/bc178480989db677c1271933567a0555e35856dc/"
},
{
"path": "library/clearlinux",
"chars": 239,
"preview": "Maintainers: William Douglas <william.douglas@intel.com> (@bryteise)\nGitRepo: https://github.com/clearlinux/docker-brew-"
},
{
"path": "library/clefos",
"chars": 163,
"preview": "Maintainers: The ClefOS Project <neale@sinenomine.net> (@nealef)\nGitRepo: https://github.com/nealef/clefos.git\n\n# https:"
},
{
"path": "library/clickhouse",
"chars": 1375,
"preview": "# The file is generated by https://github.com/ClickHouse/ClickHouse/blob/2ee3817600b03194beae6e050e7cb19f46690fa3/tests/"
},
{
"path": "library/clojure",
"chars": 15596,
"preview": "Maintainers: Paul Lam <paul@quantisan.com> (@Quantisan),\n Wes Morgan <wes@wesmorgan.me> (@cap10morgan)\nArchi"
},
{
"path": "library/composer",
"chars": 660,
"preview": "# this file was generated using https://github.com/composer/docker/blob/3fdb03de2e013b14208ce98cdd2125d488adc196/generat"
},
{
"path": "library/convertigo",
"chars": 323,
"preview": "Maintainers: Nicolas Albert <nicolasa@convertigo.com> (@nicolas-albert), Olivier Picciotto <olivier.picciotto@convertigo"
},
{
"path": "library/couchbase",
"chars": 4510,
"preview": "Maintainers: Couchbase Docker Team <docker@couchbase.com> (@cb-robot)\nGitRepo: https://github.com/couchbase/docker\n\nTags"
},
{
"path": "library/couchdb",
"chars": 898,
"preview": "# see https://couchdb.apache.org/\n# also the announce@couchdb.apache.org mailing list\n\nMaintainers: Joan Touzet <wohali@"
},
{
"path": "library/crate",
"chars": 444,
"preview": "Maintainers: Mathias Fußenegger <mathias@crate.io> (@mfussenegger),\n Sebastian Utz <sebastian@crate.io> (@se"
},
{
"path": "library/dart",
"chars": 542,
"preview": "Maintainers: Alexander Thomas <athom@google.com> (@athomas), Ivan Inozemtsev <iinozemtsev@google.com> (@iinozemtsev)\nGit"
},
{
"path": "library/debian",
"chars": 7126,
"preview": "# tarballs built by debuerreotype\n# see https://github.com/debuerreotype/debuerreotype\n\nMaintainers: Tianon Gravi <tiano"
},
{
"path": "library/docker",
"chars": 1795,
"preview": "# this file is generated via https://github.com/docker-library/docker/blob/9f57f3fb1ef688e231b911e0b414da241804c511/gene"
},
{
"path": "library/drupal",
"chars": 15267,
"preview": "# this file is generated via https://github.com/docker-library/drupal/blob/8527ca0412b456cd3719cb8719bfb83da5d530a7/gene"
},
{
"path": "library/eclipse-mosquitto",
"chars": 471,
"preview": "Maintainers: Roger Light <roger@atchoo.org> (@ralight)\nGitRepo: https://github.com/eclipse-mosquitto/mosquitto.git\nGitCo"
},
{
"path": "library/eclipse-temurin",
"chars": 29823,
"preview": "# Eclipse Temurin OpenJDK images provided by the Eclipse Foundation.\n\nMaintainers: George Adams <george.adams@microsoft."
},
{
"path": "library/eggdrop",
"chars": 629,
"preview": "Maintainers: Geo Van O <geo@eggheads.org> (@vanosg)\nGitRepo: https://github.com/eggheads/eggdrop-docker.git\n\nTags: devel"
},
{
"path": "library/elasticsearch",
"chars": 498,
"preview": "Maintainers: Rene Groeschke (@breskeby)\nGitRepo: https://github.com/elastic/dockerfiles.git\nDirectory: elasticsearch\nBui"
},
{
"path": "library/elixir",
"chars": 9117,
"preview": "# this file is generated via https://github.com/erlef/docker-elixir/blob/8fac2ddba9508801bf2a03bac7edbd1d7e9c135b/genera"
},
{
"path": "library/emqx",
"chars": 446,
"preview": "Maintainers: Rory Z <rory-z@outlook.com> (@rory-z), Ivan Dyachkov <ivan.dyachkov@emqx.io> (@id)\nGitRepo: https://github."
},
{
"path": "library/erlang",
"chars": 3571,
"preview": "# this file is generated via https://github.com/erlang/docker-erlang-otp/blob/9c7d9e72c8832cd5147afb9145f257555d841b2e/g"
},
{
"path": "library/fedora",
"chars": 1164,
"preview": "Maintainers: Clement Verna <cverna@fedoraproject.org> (@cverna), Vipul Siddharth <siddharthvipul1@fedoraproject.org> (@s"
},
{
"path": "library/flink",
"chars": 3008,
"preview": "# this file is generated via https://github.com/apache/flink-docker/blob/187238c6b444457d9b57279715fa16b37fe59e45/genera"
},
{
"path": "library/fluentd",
"chars": 671,
"preview": "Maintainers: Masahiro Nakagawa <repeatedly@gmail.com> (@repeatedly),\n Fluentd developers <fluentd@googlegrou"
},
{
"path": "library/friendica",
"chars": 2148,
"preview": "# This file is generated via https://github.com/friendica/docker/blob/9321c9a1e9b68461c342b85d27bab4046c4c8c38/generate-"
},
{
"path": "library/gazebo",
"chars": 123,
"preview": "Maintainers: Tully Foote <tfoote+buildfarm@osrfoundation.org> (@tfoote)\nGitRepo: https://github.com/osrf/docker_images.g"
},
{
"path": "library/gcc",
"chars": 1328,
"preview": "# this file is generated via https://github.com/docker-library/gcc/blob/58af1a21e095e94e24b02350d0dbbc3d7f0a62ba/generat"
},
{
"path": "library/geonetwork",
"chars": 999,
"preview": "# this file is generated via https://github.com/geonetwork/docker-geonetwork/blob/69cb85ef18f6fe11ad4c9f848e47e307757199"
},
{
"path": "library/ghost",
"chars": 757,
"preview": "# this file is generated via https://github.com/docker-library/ghost/blob/98ead58b730477b94884db445c67f3251408cdc4/gener"
},
{
"path": "library/golang",
"chars": 5952,
"preview": "# this file is generated via https://github.com/docker-library/golang/blob/e3086cb731933f5a15c07553943a7120c82d70b8/gene"
},
{
"path": "library/gradle",
"chars": 20607,
"preview": "Maintainers: Louis Jacomet <louis@gradle.com> (@ljacomet),\n Christoph Obexer <cobexer@gradle.com> (@cobexer)"
},
{
"path": "library/groovy",
"chars": 6134,
"preview": "Maintainers: Keegan Witt <keeganwitt@gmail.com> (@keeganwitt)\nGitRepo: https://github.com/groovy/docker-groovy.git\n\nTags"
},
{
"path": "library/haproxy",
"chars": 3729,
"preview": "# this file is generated via https://github.com/docker-library/haproxy/blob/875a6dd82a46bc6474b8fa10003655f6103e7c67/gen"
},
{
"path": "library/haskell",
"chars": 2245,
"preview": "Maintainers: Albert Krewinkel <albert+docker@tarleb.com> (@tarleb),\n Andrei Dziahel <develop7@develop7.info>"
},
{
"path": "library/haxe",
"chars": 6729,
"preview": "Maintainers: Andy Li <andy@onthewings.net> (@andyli),\n Rudy Ges <k@klabz.org> (@kLabz)\nGitRepo: https://gith"
},
{
"path": "library/hello-world",
"chars": 1984,
"preview": "# this file is generated via https://github.com/docker-library/hello-world/blob/d2ad81cd7a88c0114e152da6a3849aba64a68610"
},
{
"path": "library/hitch",
"chars": 442,
"preview": "# this file was generated using https://github.com/varnish/docker-hitch/blob/fa19f55cf3b713e5f6787315c889a3885ab270bf/po"
},
{
"path": "library/httpd",
"chars": 806,
"preview": "# this file is generated via https://github.com/docker-library/httpd/blob/116c9eea074b85041a217cc17e4195eab2b78845/gener"
},
{
"path": "library/hylang",
"chars": 10010,
"preview": "Maintainers: Paul Tagliamonte <paultag@hylang.org> (@paultag), Hy Docker Team (@hylang/docker)\nGitRepo: https://github.c"
},
{
"path": "library/ibm-semeru-runtimes",
"chars": 5434,
"preview": "# IBM Semeru Runtimes official Docker images.\n\nMaintainers: Jayashree Gopi <jayasg12@in.ibm.com> (@jayasg12)\nGitRepo: ht"
},
{
"path": "library/ibmjava",
"chars": 597,
"preview": "#ibmjava official images\n\nMaintainers: Jayashree Gopi <jayasg12@in.ibm.com> (@jayasg12)\nGitRepo: https://github.com/ibmr"
},
{
"path": "library/influxdb",
"chars": 2116,
"preview": "Maintainers: Brandon Pfeifer <bpfeifer@influxdata.com> (@bnpfeife),\n Devan Benz <dbenz@influxdata.com> (@dev"
},
{
"path": "library/irssi",
"chars": 790,
"preview": "# this file is generated via https://github.com/jessfraz/irssi/blob/0b6d8e4fba6d47b66ab7a2030d91bf2c4c3c981a/generate-st"
},
{
"path": "library/jetty",
"chars": 7079,
"preview": "Maintainers: Greg Wilkins <gregw@webtide.com> (@gregw),\n Lachlan Roberts <lachlan@webtide.com> (@lachlan-rob"
},
{
"path": "library/joomla",
"chars": 3377,
"preview": "# this file is generated via https://github.com/joomla-docker/docker-joomla/blob/ee137cbaebee5425cb84a113d559c4c8c26c1c0"
},
{
"path": "library/jruby",
"chars": 4171,
"preview": "Maintainers: JRuby Admin <admin@jruby.org> (@jruby),\n Charles Oliver Nutter <headius@headius.com> (@headius)"
},
{
"path": "library/julia",
"chars": 3873,
"preview": "# this file is generated via https://github.com/docker-library/julia/blob/632505b60c6b0d7158c173285717eb6e5424afdc/gener"
},
{
"path": "library/kapacitor",
"chars": 602,
"preview": "Maintainers: Brandon Pfeifer <bpfeifer@influxdata.com> (@bnpfeife),\n Sven Rebhan <srebhan@influxdata.com> (@"
},
{
"path": "library/kibana",
"chars": 487,
"preview": "Maintainers: Jon Budzenski (@jbudz)\nGitRepo: https://github.com/elastic/dockerfiles.git\nDirectory: kibana\nBuilder: build"
},
{
"path": "library/kong",
"chars": 810,
"preview": "Maintainers: Kong Docker Maintainers <team-gateway@konghq.com> (@team-gateway-bot)\nGitRepo: https://github.com/Kong/dock"
},
{
"path": "library/krakend",
"chars": 458,
"preview": "Maintainers: Daniel Ortiz <dortiz@krakend.io> (@taik0),\n Daniel López <dlopez@krakend.io> (@kpacha),\n "
},
{
"path": "library/lightstreamer",
"chars": 2860,
"preview": "Maintainers: Lightstreamer Server Development Team <support@lightstreamer.com> (@lightstreamer),\n Dario Criv"
},
{
"path": "library/liquibase",
"chars": 402,
"preview": "Maintainers: Jake Newton <docker@liquibase.com> (@jnewton03)\nArchitectures: arm64v8, amd64\nGitRepo: https://github.com/l"
},
{
"path": "library/logstash",
"chars": 486,
"preview": "Maintainers: João Duarte (@jsvd)\nGitRepo: https://github.com/elastic/dockerfiles.git\nDirectory: logstash\nBuilder: buildk"
},
{
"path": "library/mageia",
"chars": 626,
"preview": "Maintainers: Juan Luis Baptiste <juancho@mageia.org> (@juanluisbaptiste)\nGitRepo: https://github.com/juanluisbaptiste/do"
},
{
"path": "library/mariadb",
"chars": 2580,
"preview": "# this file is generated via https://github.com/MariaDB/mariadb-docker/blob/65483980c6c0034361a604ca1e2a048c48da08c6/gen"
},
{
"path": "library/matomo",
"chars": 861,
"preview": "# This file is generated via https://github.com/matomo-org/docker/blob/46d5da6d8958f77248588fe70242627d721dd0bb/generate"
},
{
"path": "library/maven",
"chars": 13539,
"preview": "Maintainers: Carlos Sanchez <carlos@apache.org> (@carlossg)\nBuilder: buildkit\nGitRepo: https://github.com/carlossg/docke"
},
{
"path": "library/mediawiki",
"chars": 1207,
"preview": "Maintainers: Kunal Mehta <legoktm@debian.org> (@legoktm),\n addshore <addshorewiki@gmail.com> (@addshore),\n "
},
{
"path": "library/memcached",
"chars": 817,
"preview": "# this file is generated via https://github.com/docker-library/memcached/blob/41e28506e64d0b5daabbafc8d6349eddc91c17c0/g"
},
{
"path": "library/mongo",
"chars": 4010,
"preview": "# this file is generated via https://github.com/docker-library/mongo/blob/7f63818a51a1c6904953a2a708c1aa4aab629034/gener"
},
{
"path": "library/mongo-express",
"chars": 1457,
"preview": "# this file is generated via https://github.com/mongo-express/mongo-express-docker/blob/075234363b3c008c7c2e97de8a3639e2"
},
{
"path": "library/monica",
"chars": 1537,
"preview": "# This file is generated via https://github.com/monicahq/docker/blob/7ffc74385e243e2dac4d7013a3240c0ae1229f05/generate-s"
},
{
"path": "library/mysql",
"chars": 1294,
"preview": "# this file is generated via https://github.com/docker-library/mysql/blob/6faf41e2e9d9d0a2b97d83449830ca75cbee17f9/gener"
},
{
"path": "library/nats",
"chars": 3244,
"preview": "Maintainers: Derek Collison <derek@synadia.com> (@derekcollison),\n Waldemar Quevedo Salinas <wally@synadia.c"
},
{
"path": "library/neo4j",
"chars": 4656,
"preview": "Maintainers: Jenny Owen <jenny.owen@neo4j.com> (@jennyowen),\n Eric Sporre <eric.sporre@neo4j.com> (@ericspor"
},
{
"path": "library/neurodebian",
"chars": 1573,
"preview": "Maintainers: Yaroslav Halchenko <debian@onerussian.com> (@yarikoptic)\nGitRepo: https://github.com/neurodebian/dockerfile"
},
{
"path": "library/nextcloud",
"chars": 2250,
"preview": "# This file is generated via https://github.com/nextcloud/docker/blob/3787374f48c11a6b29b1d60fe12e3b9688c61774/generate-"
},
{
"path": "library/nginx",
"chars": 4254,
"preview": "# this file is generated via https://github.com/nginx/docker-nginx/blob/1733df4445c59503d7855d6d8bed74cf049ac570/generat"
},
{
"path": "library/node",
"chars": 7423,
"preview": "# this file is generated via https://github.com/nodejs/docker-node/blob/913d93f2ba4cddb224b73fa9f7531cacb501815e/stackbr"
},
{
"path": "library/notary",
"chars": 388,
"preview": "Maintainers: TBD (@docker)\nGitRepo: https://github.com/docker/notary-official-images.git\nGitCommit: 77b9b7833f8dd6be0710"
},
{
"path": "library/odoo",
"chars": 408,
"preview": "Maintainers: Christophe Monniez <moc@odoo.com> (@d-fence)\nGitRepo: https://github.com/odoo/docker\nGitCommit: b5ff5c6057c"
},
{
"path": "library/open-liberty",
"chars": 5436,
"preview": "Maintainers: Gkerta Seferi <Gkerta.Seferi@ibm.com> (@gkertasef),\n Leo Christy Jesuraj <leojc@ca.ibm.com> (@l"
},
{
"path": "library/openjdk",
"chars": 3054,
"preview": "# this file is generated via https://github.com/docker-library/openjdk/blob/82ebf1fc0e888b0319007852b65899fa32c58f1e/gen"
},
{
"path": "library/oraclelinux",
"chars": 1222,
"preview": "Maintainers: Oracle Linux Product Team <ol-ovm-info_ww@oracle.com> (@Oracle)\nGitRepo: https://github.com/oracle/containe"
},
{
"path": "library/orientdb",
"chars": 840,
"preview": "\nMaintainers: Tglman <tglman@tglman.com> (@tglman)\n\nTags: 3.2.50, 3.2, latest\nArchitectures: amd64, arm32v7, arm64v8\nGit"
},
{
"path": "library/percona",
"chars": 1113,
"preview": "Maintainers: Evgeniy Patlan <evgeniy.patlan@percona.com> (@EvgeniyPatlan),\n Viacheslav Sarzhan <slava.sarzha"
},
{
"path": "library/perl",
"chars": 8200,
"preview": "Maintainers: Peter Martini <PeterCMartini@GMail.com> (@PeterMartini),\n Zak B. Elep <zakame@cpan.org> (@zakam"
},
{
"path": "library/photon",
"chars": 1142,
"preview": "# this file is generated via https://github.com/vmware/photon-docker-image/blob/c48f588cebc54dba10db21c75d4354a03fa6ebc2"
},
{
"path": "library/php",
"chars": 13994,
"preview": "# this file is generated via https://github.com/docker-library/php/blob/6c91a369458bf48ae137a647934585ce0480067d/generat"
},
{
"path": "library/php-zendserver",
"chars": 302,
"preview": "Maintainers: Heigo Sinilind <hsinilind@perforce.com> (@hsinilind),\n Rain Viigipuu <rviigipuu@perforce.com> ("
},
{
"path": "library/phpmyadmin",
"chars": 946,
"preview": "# This file is generated via https://github.com/phpmyadmin/docker/blob/0c64340e5d8cbae534b84c4820e0f38d28f44081/generate"
},
{
"path": "library/plone",
"chars": 780,
"preview": "Maintainers: Alin Voinea <alin.voinea@gmail.com> (@avoinea),\n Piero Nicolli <piero.nicolli@redturtle.it> (@p"
},
{
"path": "library/postfixadmin",
"chars": 870,
"preview": "# This file is generated via https://github.com/postfixadmin/docker/blob/052a5f0370796309c813597e1dd73f89ae616b70/genera"
},
{
"path": "library/postgres",
"chars": 4367,
"preview": "# this file is generated via https://github.com/docker-library/postgres/blob/304578a4b447792df66768a25a54e2247b117e74/ge"
},
{
"path": "library/pypy",
"chars": 5856,
"preview": "# this file is generated via https://github.com/docker-library/pypy/blob/8908818e3c253a09864223f7c148db765684135f/genera"
},
{
"path": "library/python",
"chars": 10440,
"preview": "# this file is generated via https://github.com/docker-library/python/blob/59e4abf1fb132d2f7be0b808bdc0b3e616519eeb/gene"
},
{
"path": "library/r-base",
"chars": 358,
"preview": "Maintainers: Carl Boettiger <rocker-maintainers@eddelbuettel.com> (@cboettig),\n Dirk Eddelbuettel <rocker-ma"
},
{
"path": "library/rabbitmq",
"chars": 2683,
"preview": "# this file is generated via https://github.com/docker-library/rabbitmq/blob/423cdaa94f7e3dc15462ae62487fa216e65d7c6a/ge"
},
{
"path": "library/rakudo-star",
"chars": 704,
"preview": "Maintainers: Moritz Lenz <moritz.lenz@gmail.com> (@moritz),\n Joelle Maslak <jmaslak@antelope.net> (@jmaslak)"
},
{
"path": "library/redis",
"chars": 3752,
"preview": "Maintainers: Adam Ben Shmuel <adam.ben-shmuel@redis.com> (@adamiBs),\n Yossi Gottlieb <yossi@redis.com> (@yos"
},
{
"path": "library/redmine",
"chars": 2873,
"preview": "# this file is generated via https://github.com/docker-library/redmine/blob/a78ef22f57df24fe9e7d4a9b149751a45c87b755/gen"
},
{
"path": "library/registry",
"chars": 343,
"preview": "Maintainers: Milos Gajdos (@milosgajdos),\n Sebastiaan van Stijn (@thajeztah)\nGitRepo: https://github.com/dis"
},
{
"path": "library/rethinkdb",
"chars": 343,
"preview": "Maintainers: RethinkDB <services@rethinkdb.com> (@gabor-boros)\nGitRepo: https://github.com/rethinkdb/rethinkdb-dockerfil"
},
{
"path": "library/rocket.chat",
"chars": 930,
"preview": "# this file is generated via https://github.com/RocketChat/Docker.Official.Image/blob/889b82cf0d2fe18e30c8fbe32acbcceb98"
},
{
"path": "library/rockylinux",
"chars": 1973,
"preview": "Maintainers: The Rocky Linux Foundation <infrastructure@rockylinux.org> (@rocky-linux),\n Neil Hanlon <neil@r"
},
{
"path": "library/ros",
"chars": 2915,
"preview": "Maintainers: Tully Foote <tfoote+buildfarm@osrfoundation.org> (@tfoote)\nGitRepo: https://github.com/osrf/docker_images.g"
},
{
"path": "library/ruby",
"chars": 5586,
"preview": "# this file is generated via https://github.com/docker-library/ruby/blob/2895a675d1b1690faab2105c56aa0e14f6865ff2/genera"
},
{
"path": "library/rust",
"chars": 2466,
"preview": "# this file is generated via https://github.com/rust-lang/docker-rust/blob/606fc92c104f66af9e7e5f2bea1bf2f5072d84b6/x.py"
},
{
"path": "library/sapmachine",
"chars": 15781,
"preview": "Maintainers: Christoph Langer <sapmachine@sap.com> (@realclanger), Arno Zeller <sapmachine@sap.com> (@ArnoZeller)\nGitRep"
},
{
"path": "library/satosa",
"chars": 730,
"preview": "# This file is generated via https://github.com/IdentityPython/satosa-docker/blob/07ce67c693fbacb188e3d70c700e072e947b15"
},
{
"path": "library/silverpeas",
"chars": 453,
"preview": "# This file is generated via https://github.com/Silverpeas/docker-silverpeas-prod/blob/master/generate-docker-library.sh"
},
{
"path": "library/solr",
"chars": 1273,
"preview": "# this file is generated via https://github.com/apache/solr-docker/blob/c33200c4b1c42b32c80f4e85621438df479a29b5/generat"
},
{
"path": "library/sonarqube",
"chars": 3312,
"preview": "Maintainers: Carmine Vassallo <carmine.vassallo@sonarsource.com> (@carminevassallo),\n\tEmma Mansalier <emma.mansalier@son"
},
{
"path": "library/spark",
"chars": 3343,
"preview": "Maintainers: Apache Spark Developers <dev@spark.apache.org> (@ApacheSpark),\n Hyukjin Kwon (@HyukjinKwon),\n "
},
{
"path": "library/spiped",
"chars": 665,
"preview": "# this file is generated via https://github.com/TimWolla/docker-spiped/blob/f1f01eb79a88ece779c33acdd75ca29c879cac63/gen"
},
{
"path": "library/storm",
"chars": 453,
"preview": "Maintainers: The Apache Storm Project <dev@storm.apache.org> (@asfbot),\n Julien Nioche (@jnioche),\n "
},
{
"path": "library/swift",
"chars": 7169,
"preview": "Maintainers: Ted Kremenek <kremenek@apple.com> (@tkremenek),\n Mishal Shah <mishal_shah@apple.com> (@shahmish"
},
{
"path": "library/swipl",
"chars": 369,
"preview": "Maintainers: Jan Wielemaker <jan@swi-prolog.org> (@JanWielemaker),\n Dave Curylo <dave@curylo.org> (@ninjarob"
},
{
"path": "library/teamspeak",
"chars": 321,
"preview": "Maintainers: Hubert Nöbauer <hubert.noebauer@teamspeak.com> (@HuppiN),\n Achim Klittich <achim.klittich@teams"
},
{
"path": "library/telegraf",
"chars": 874,
"preview": "Maintainers: Sven Rebhan <srebhan@influxdata.com> (@srebhan),\n Maya Strandboge <mstrandboge@influxdata.com> "
},
{
"path": "library/tomcat",
"chars": 14880,
"preview": "# this file is generated via https://github.com/docker-library/tomcat/blob/56c209618997c452e7d645b82fd4e4fa55147f35/gene"
},
{
"path": "library/tomee",
"chars": 18803,
"preview": "Maintainers: Alex Soto <asotobu@gmail.com> (@lordofthejars), Otavio Santana <otaviojava@apache.org> (@otaviojava), Jonat"
},
{
"path": "library/traefik",
"chars": 6170,
"preview": "Maintainers: Julien Salleyron <julien@traefik.io> (@juliens), Romain Tribotté <romain.tribotte@traefik.io> (@rtribotte),"
},
{
"path": "library/ubuntu",
"chars": 6460,
"preview": "# see https://git.launchpad.net/cloud-images/+oci/ubuntu-base\n# see also https://wiki.ubuntu.com/Releases#Current\n\nMaint"
},
{
"path": "library/unit",
"chars": 196,
"preview": "Maintainers: Unit Docker Maintainers <docker-maint@nginx.com> (@nginx),\n Konstantin Pavlov (@thresheek),\n "
},
{
"path": "library/varnish",
"chars": 431,
"preview": "# this file was generated using https://github.com/varnish/docker-varnish/blob/9549601f65e81660417432a6963cdb9a41da3caf/"
},
{
"path": "library/websphere-liberty",
"chars": 4256,
"preview": "Maintainers: Gkerta Seferi <Gkerta.Seferi@ibm.com> (@gkertasef),\n Leo Christy Jesuraj <leojc@ca.ibm.com> (@l"
},
{
"path": "library/wordpress",
"chars": 8217,
"preview": "# this file is generated via https://github.com/docker-library/wordpress/blob/c8b214cc10dae78c4a7c9e1d98ee104e0f027441/g"
},
{
"path": "library/xwiki",
"chars": 2646,
"preview": "Maintainers: XWiki Core Dev Team <committers@xwiki.org> (@xwiki)\nGitRepo: https://github.com/xwiki-contrib/docker-xwiki."
},
{
"path": "library/yourls",
"chars": 966,
"preview": "# this file is generated via https://github.com/YOURLS/containers/blob/1839562c06c847bc7931bd8b9387881b3d52841b/bin/gene"
},
{
"path": "library/znc",
"chars": 304,
"preview": "Maintainers: Alexey Sokolov <alexey+znc@asokolov.org> (@DarthGandalf)\nGitRepo: https://github.com/znc/znc-docker.git\nGit"
},
{
"path": "library/zookeeper",
"chars": 393,
"preview": "Maintainers: Elisey Zanko <elisey.zanko@gmail.com> (@31z4)\nGitRepo: https://github.com/31z4/zookeeper-docker.git\nArchite"
},
{
"path": "naughty-commits.sh",
"chars": 3540,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\nfileSizeThresholdMB='2'\n\nexport BASHBREW_ARCH=\n\ngitCache=\"$(bashbrew cat --forma"
},
{
"path": "naughty-constraints.sh",
"chars": 2755,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\nexport BASHBREW_ARCH=\n\nif [ \"$#\" -eq 0 ]; then\n\tset -- '--all'\nfi\n\n_windows_cons"
},
{
"path": "naughty-from.sh",
"chars": 4405,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\nexport BASHBREW_ARCH= BASHBREW_NAMESPACE=\n\nif [ \"$#\" -eq 0 ]; then\n\tset -- '--al"
},
{
"path": "naughty-sharedtags.sh",
"chars": 1787,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\nif [ \"$#\" -eq 0 ]; then\n\tset -- '--all'\nfi\n\nbashbrew cat --format '\n\t{{- range $"
},
{
"path": "pr-urls.sh",
"chars": 901,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\n#\n# usage:\n# $ ./pr-urls.sh PR-NUMBER\n# $ ./pr-urls.sh PR-NUMBER IMAGE1 IMAG"
},
{
"path": "test/README.md",
"chars": 6928,
"preview": "# Official Images Test Suite\n\n## What tests belong here?\n\nWe have a lot of historical tests that violate this line, but "
},
{
"path": "test/clean.sh",
"chars": 318,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\ndocker image ls --digests --no-trunc --format '\n\t{{- if ne .Tag \"<none>\" -}}\n\t\t{"
},
{
"path": "test/config.sh",
"chars": 6274,
"preview": "#!/usr/bin/env bash\n\nglobalTests+=(\n\tutc\n\tno-hard-coded-passwords\n\toverride-cmd\n)\n\n# for \"explicit\" images, only run tes"
},
{
"path": "test/retry.sh",
"chars": 1026,
"preview": "#!/bin/bash\n\nset -e\n\nopts=\"$(getopt -o 'i:c:t:s:' --long 'image:,cid:,tries:,sleep:' -- \"$@\")\"\neval set -- \"$opts\"\nwhile"
},
{
"path": "test/run.sh",
"chars": 6246,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\ndir=\"$(dirname \"$(readlink -f \"$BASH_SOURCE\")\")\"\n\nself=\"$(basename \"$0\")\"\n\nusage"
},
{
"path": "test/tests/cassandra-basics/run.sh",
"chars": 2028,
"preview": "#!/bin/bash\n\n[ \"$DEBUG\" ] && set -x\n\nset -eo pipefail -o errtrace\n\ndir=\"$(dirname \"$(readlink -f \"$BASH_SOURCE\")\")\"\n\nima"
},
{
"path": "test/tests/cheeky-retries.sh",
"chars": 400,
"preview": "#!/usr/bin/env bash\nset -Eeuo pipefail\n\n# intended to be symlinked as \"run.sh\" next to \"real-run.sh\" such that we give \""
},
{
"path": "test/tests/composer/composer.json",
"chars": 61,
"preview": "{\n \"require\": {\n \"composer/composer\": \"^2\"\n }\n}\n"
},
{
"path": "test/tests/composer/container.sh",
"chars": 181,
"preview": "#!/bin/sh\n\ndir=\"$(mktemp -d)\"\n\ntrap \"rm -rf '$dir'\" EXIT\n\ncp composer.json \"$dir\"\n\ncd \"$dir\"\n\ncomposer --version\ncompose"
},
{
"path": "test/tests/convertigo-hello-world/run.sh",
"chars": 948,
"preview": "#!/bin/bash\nset -eo pipefail\n\ndir=\"$(dirname \"$(readlink -f \"$BASH_SOURCE\")\")\"\n\nserverImage=\"$1\"\n\n# Use a client image w"
},
{
"path": "test/tests/dart-hello-world/container.dart",
"chars": 41,
"preview": "void main() {\n print('Hello World!');\n}\n"
},
{
"path": "test/tests/dart-hello-world/expected-std-out.txt",
"chars": 13,
"preview": "Hello World!\n"
},
{
"path": "test/tests/debian-apt-get/container.sh",
"chars": 711,
"preview": "#!/bin/bash\nset -e\n\n# We have to eat stderr here because of:\n# W: Conflicting distribution: http://http.debian.net rc-bu"
},
{
"path": "test/tests/debian-apt-get/expected-std-out.txt",
"chars": 14,
"preview": "Hello, world!\n"
},
{
"path": "test/tests/docker-build.sh",
"chars": 1040,
"preview": "#!/usr/bin/env bash\nset -e\n\n# wrapper around \"docker build\" that creates a temporary directory and copies files into it "
},
{
"path": "test/tests/docker-dind/run.sh",
"chars": 1186,
"preview": "#!/bin/bash\nset -eo pipefail\n\ndir=\"$(dirname \"$(readlink -f \"$BASH_SOURCE\")\")\"\n\nimage=\"$1\"\n\ncname=\"docker-daemon-contain"
},
{
"path": "test/tests/docker-registry-push-pull/run.sh",
"chars": 1779,
"preview": "#!/bin/bash\nset -eo pipefail\n\ndir=\"$(dirname \"$(readlink -f \"$BASH_SOURCE\")\")\"\n\nimage=\"$1\"\ncase \"${image##*/}\" in\n\tdocke"
},
{
"path": "test/tests/eclipse-mosquitto-basics/mosquitto.conf",
"chars": 35,
"preview": "listener 1883\nallow_anonymous true\n"
}
]
// ... and 165 more files (download for full content)
About this extraction
This page contains the full source code of the docker-library/official-images GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 365 files (705.8 KB), approximately 294.4k tokens, and a symbol index with 16 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.