#
tokens: 49763/50000 10/1033 files (page 6/25)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 6 of 25. Use http://codebase.md/id/docs/get_started/create/presentation_layout.html?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .ci
│   ├── check-markdownfmt.sh
│   ├── check-metadata.sh
│   ├── check-pr-no-readme.sh
│   ├── check-required-files.sh
│   ├── check-short.sh
│   ├── check-ymlfmt.sh
│   └── get-markdownfmt.sh
├── .common-templates
│   ├── maintainer-community.md
│   ├── maintainer-docker.md
│   ├── maintainer-hashicorp.md
│   └── maintainer-influxdata.md
├── .dockerignore
├── .github
│   └── workflows
│       └── ci.yml
├── .template-helpers
│   ├── arches.sh
│   ├── autogenerated-warning.md
│   ├── compose.md
│   ├── generate-dockerfile-links-partial.sh
│   ├── generate-dockerfile-links-partial.tmpl
│   ├── get-help.md
│   ├── issues.md
│   ├── license-common.md
│   ├── template.md
│   ├── variant-alpine.md
│   ├── variant-default-buildpack-deps.md
│   ├── variant-default-debian.md
│   ├── variant-default-ubuntu.md
│   ├── variant-onbuild.md
│   ├── variant-slim.md
│   ├── variant-windowsservercore.md
│   ├── variant.md
│   └── variant.sh
├── adminer
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── aerospike
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── almalinux
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── alpine
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── alt
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── amazoncorretto
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── amazonlinux
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── api-firewall
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── arangodb
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── archlinux
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── backdrop
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── bash
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── bonita
│   ├── compose.yaml
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── buildpack-deps
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── busybox
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-glibc.md
│   ├── variant-musl.md
│   ├── variant-uclibc.md
│   └── variant.md
├── caddy
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo-120.png
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── cassandra
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── chronograf
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── cirros
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── clearlinux
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── clefos
│   ├── content.md
│   ├── deprecated.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── clickhouse
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── clojure
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── composer
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── convertigo
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── couchbase
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── couchdb
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── crate
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── dart
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── debian
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-slim.md
│   └── variant.md
├── docker
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-rootless.md
│   └── variant-windowsservercore.md
├── Dockerfile
├── drupal
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-fpm.md
├── eclipse-mosquitto
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── eclipse-temurin
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── eggdrop
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── elasticsearch
│   ├── compose.yaml
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-alpine.md
├── elixir
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── emqx
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── erlang
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── fedora
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── flink
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── fluentd
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── friendica
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── gazebo
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── gcc
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── generate-repo-stub-readme.sh
├── geonetwork
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-postgres.md
│   └── variant.md
├── get-categories.sh
├── ghost
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── golang
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-alpine.md
│   └── variant-tip.md
├── gradle
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── groovy
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── haproxy
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── haskell
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-slim.md
├── haxe
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── hello-world
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── update.sh
├── hitch
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── httpd
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── hylang
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── ibm-semeru-runtimes
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── ibmjava
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── influxdb
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-data.md
│   └── variant-meta.md
├── irssi
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── jetty
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── joomla
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── jruby
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── julia
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── kapacitor
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── kibana
│   ├── compose.yaml
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── kong
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── krakend
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo-120.png
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── LICENSE
├── lightstreamer
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── liquibase
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── logstash
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-alpine.md
├── mageia
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── mariadb
│   ├── compose.yaml
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── markdownfmt.sh
├── matomo
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── maven
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── mediawiki
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── memcached
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── metadata.json
├── metadata.sh
├── mongo
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── mongo-express
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── monica
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── mono
│   ├── content.md
│   ├── deprecated.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── mysql
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── nats
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── neo4j
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── neurodebian
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── nextcloud
│   ├── content.md
│   ├── deprecated.md
│   ├── github-repo
│   ├── license.md
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── nginx
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-perl.md
├── node
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── notary
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── odoo
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── open-liberty
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── openjdk
│   ├── content.md
│   ├── deprecated.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-alpine.md
│   ├── variant-oracle.md
│   └── variant-slim.md
├── oraclelinux
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-slim.md
├── orientdb
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── parallel-update.sh
├── percona
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── perl
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── photon
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── php
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-apache.md
│   ├── variant-cli.md
│   ├── variant-fpm.md
│   └── variant.md
├── php-zendserver
│   ├── content.md
│   ├── deprecated.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── phpmyadmin
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── plone
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── postfixadmin
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-apache.md
│   ├── variant-fpm-alpine.md
│   └── variant-fpm.md
├── postgres
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── push.pl
├── push.sh
├── pypy
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── python
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-slim.md
├── r-base
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── rabbitmq
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── rakudo-star
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── README.md
├── redis
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── redmine
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── registry
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── rethinkdb
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── rocket.chat
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── rockylinux
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── ros
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── ruby
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── rust
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── sapmachine
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── satosa
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── scratch
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── silverpeas
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── solr
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── sonarqube
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── spark
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── spiped
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── storm
│   ├── compose.yaml
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── swift
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── swipl
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── teamspeak
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── telegraf
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── tomcat
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── tomee
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── traefik
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-alpine.md
├── ubuntu
│   ├── content.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── unit
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── update.sh
├── varnish
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── websphere-liberty
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── wordpress
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   ├── variant-cli.md
│   └── variant-fpm.md
├── xwiki
│   ├── content.md
│   ├── get-help.md
│   ├── github-repo
│   ├── issues.md
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   └── README.md
├── ymlfmt.sh
├── yourls
│   ├── compose.yaml
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.svg
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-fpm.md
├── znc
│   ├── content.md
│   ├── github-repo
│   ├── license.md
│   ├── logo.png
│   ├── maintainer.md
│   ├── metadata.json
│   ├── README-short.txt
│   ├── README.md
│   └── variant-slim.md
└── zookeeper
    ├── compose.yaml
    ├── content.md
    ├── github-repo
    ├── license.md
    ├── logo.png
    ├── maintainer.md
    ├── metadata.json
    ├── README-short.txt
    └── README.md
```

# Files

--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # What is this?
  2 | 
  3 | This repository contains the image documentation for each of the Docker Official Images. See [docker-library/official-images](https://github.com/docker-library/official-images) for more information about the program in general.
  4 | 
  5 | All Markdown files here are run through [tianon's fork of `markdownfmt`](https://github.com/tianon/markdownfmt), and verified as formatted correctly via GitHub Actions.
  6 | 
  7 | -	[![GitHub CI status badge](https://img.shields.io/github/actions/workflow/status/docker-library/docs/ci.yml?branch=master&label=GitHub%20CI)](https://github.com/docker-library/docs/actions?query=workflow%3A%22GitHub+CI%22+branch%3Amaster)
  8 | -	[![library update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/library.svg?label=Automated%20library%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/library/)
  9 | 	-	[![amd64 update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/amd64.svg?label=Automated%20amd64%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/amd64/)
 10 | 	-	[![arm32v5 update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/arm32v5.svg?label=Automated%20arm32v5%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/arm32v5/)
 11 | 	-	[![arm32v6 update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/arm32v6.svg?label=Automated%20arm32v6%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/arm32v6/)
 12 | 	-	[![arm32v7 update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/arm32v7.svg?label=Automated%20arm32v7%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/arm32v7/)
 13 | 	-	[![arm64v8 update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/arm64v8.svg?label=Automated%20arm64v8%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/arm64v8/)
 14 | 	-	[![i386 update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/i386.svg?label=Automated%20i386%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/i386/)
 15 | 	-	[![ppc64le update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/ppc64le.svg?label=Automated%20ppc64le%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/ppc64le/)
 16 | 	-	[![s390x update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/s390x.svg?label=Automated%20s390x%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/s390x/)
 17 | 	-	[![windows-amd64 update.sh status badge](https://img.shields.io/jenkins/s/https/doi-janky.infosiftr.net/job/docs/job/windows-amd64.svg?label=Automated%20windows-amd64%20update.sh)](https://doi-janky.infosiftr.net/job/docs/job/windows-amd64/)
 18 | 
 19 | ## Table of Contents
 20 | 
 21 | <!-- AUTOGENERATED TOC -->
 22 | 
 23 | 1.	[What is this?](#what-is-this)
 24 | 	1.	[Table of Contents](#table-of-contents)
 25 | 2.	[How do I update an image's docs](#how-do-i-update-an-images-docs)
 26 | 3.	[How do I add a new image's docs](#how-do-i-add-a-new-images-docs)
 27 | 4.	[Files related to an image's docs](#files-related-to-an-images-docs)
 28 | 	1.	[folder `<image name>`](#folder-image-name)
 29 | 	2.	[`README.md`](#readmemd)
 30 | 	3.	[`content.md`](#contentmd)
 31 | 	4.	[`get-help.md`](#get-helpmd)
 32 | 	5.	[`github-repo`](#github-repo)
 33 | 	6.	[`license.md`](#licensemd)
 34 | 	7.	[`logo.png`](#logopng)
 35 | 	8.	[`maintainer.md`](#maintainermd)
 36 | 	9.	[`metadata.json`](#metadatajson)
 37 | 	10.	[`README-short.txt`](#readme-shorttxt)
 38 | 	11.	[`compose.yaml`](#composeyaml)
 39 | 5.	[Files for main Docs repo](#files-for-main-docs-repo)
 40 | 	1.	[`update.sh`](#updatesh)
 41 | 	2.	[`markdownfmt.sh` and `ymlfmt.sh`](#markdownfmtsh-and-ymlfmtsh)
 42 | 	3.	[`.template-helpers/generate-dockerfile-links-partial.sh`](#template-helpersgenerate-dockerfile-links-partialsh)
 43 | 	4.	[`.template-helpers/`](#template-helpers)
 44 | 6.	[Scripts unrelated to templates](#scripts-unrelated-to-templates)
 45 | 	1.	[`generate-repo-stub-readme.sh`](#generate-repo-stub-readmesh)
 46 | 	2.	[`push.pl` and `push.sh`](#pushpl-and-pushsh)
 47 | 7.	[Issues and Contributing](#issues-and-contributing)
 48 | 
 49 | <!-- AUTOGENERATED TOC -->
 50 | 
 51 | # How do I update an image's docs
 52 | 
 53 | Edit the `content.md` for an image; not the `README.md` as it's auto-generated from the contents of the other files in that repo. To see the changes to the `README.md`, run `./update.sh myimage` from the repo root, but do not add the `README.md` changes to your pull request. See also `markdownfmt.sh` point [below](#how-do-i-add-a-new-images-docs).
 54 | 
 55 | After opening your Pull Request the changes will be checked by an automated `markdownfmt.sh` before it can be merged. A common issue is incorrect spacing such as with two lines missing an empty line between them (double-spaced).
 56 | 
 57 | # How do I add a new image's docs
 58 | 
 59 | -	Create a folder for my image: `mkdir myimage`
 60 | -	Create a `README-short.txt` (required, 100 char max)
 61 | -	Create a `content.md` (required)
 62 | -	Create a `license.md` (required)
 63 | -	Create a `maintainer.md` (required)
 64 | -	Create a `github-repo` (required)
 65 | -	Create a `metadata.json` (required)
 66 | -	Add a `logo.png` (recommended)
 67 | 
 68 | Optionally:
 69 | 
 70 | -	Run `./markdownfmt.sh -l myimage` to list any files that are non-compliant to [`tianon/markdownfmt`](https://hub.docker.com/r/tianon/markdownfmt).  
 71 | 	Any files in the list will result in a failed build during continuous integration.
 72 | 	-	run `./markdownfmt.sh -d myimage` to see a diff of changes required to pass.
 73 | -	Run `./update.sh myimage` to generate `myimage/README.md` for manual review of the generated copy.  
 74 | 	**Note:** do not actually commit the `README.md` file; it is automatically generated/committed before being uploaded to Docker Hub.
 75 | 
 76 | # Files related to an image's docs
 77 | 
 78 | ## folder `<image name>`
 79 | 
 80 | This is where all the partial (e.g. `content.md`) and generated files (e.g. `README.md`) for a given image reside, (e.g. `golang/`). It must match the name of the image used in `docker-library/official-images`.
 81 | 
 82 | ## `README.md`
 83 | 
 84 | This file is generated using `update.sh`. Do not commit or edit this file; it is regenerated periodically by a bot.
 85 | 
 86 | ## `content.md`
 87 | 
 88 | This file contains the main content of your image's long description. The basic parts you should have are a "What Is" section and a "How To" section. The following is a basic layout:
 89 | 
 90 | ```markdown
 91 | # What is XYZ?
 92 | 
 93 | // about what the contained software is
 94 | 
 95 | %%LOGO%%
 96 | 
 97 | # How to use this image
 98 | 
 99 | // descriptions and examples of common use cases for the image
100 | // make use of subsections as necessary
101 | ```
102 | 
103 | ## `get-help.md`
104 | 
105 | This file is an optional override of the default `get-help.md`. This is the content of the "Where to get help" part of the "Quick reference" at the top of the generated README. We recommend linking to the best places for community support like forums, chat rooms, or mailing lists.
106 | 
107 | ## `github-repo`
108 | 
109 | This file should contain the URL to the GitHub repository for the Dockerfiles that become the images. The file should be in a single line ending in a newline with no extraneous whitespace. Only one GitHub repo per image repository is supported. It is used in generating links. Here is an example for `golang`:
110 | 
111 | ```text
112 | https://github.com/docker-library/golang
113 | ```
114 | 
115 | ## `license.md`
116 | 
117 | This file should contain a link to the license for the main software in the image. Here is an example for `golang`:
118 | 
119 | ```markdown
120 | View [license information](http://golang.org/LICENSE) for the software contained in this image.
121 | ```
122 | 
123 | ## `logo.png`
124 | 
125 | Logo for the contained software. While there are not hard rules on formatting, most existing logos are square or landscape and stay within a few hundred pixels of width. Alternatively, a `logo.svg` can be used instead, but only one logo file will apply. To use it within `content.md`, put `%%LOGO%%` as shown above in the basic `content.md` layout.
126 | 
127 | The image is automatically scaled to a 120 pixel square for the top of the Docker Hub page and Hub search results.
128 | 
129 | ## `maintainer.md`
130 | 
131 | This file should contain a link to the maintainers of the Dockerfile.
132 | 
133 | ## `metadata.json`
134 | 
135 | This file contains data about the repo for Docker Hub. The minimum file is defined below. `./metadata.sh [repo-name]` must be used to correctly format it (use `-w` to apply its suggested format changes). Only three sorted unique Docker Hub categories are allowed. `metadata.json` in the root contains the list of categories to choose from. See descriptions for the categories on the [Docker docs site](https://docs.docker.com/docker-hub/repos/categories/).
136 | 
137 | ```json
138 | {
139 |     "hub": {
140 |          "categories": []
141 |     }
142 | }
143 | ```
144 | 
145 | ## `README-short.txt`
146 | 
147 | This is the short description for the Docker Hub, limited to 100 characters in a single line.
148 | 
149 | > Go (golang) is a general purpose, higher-level, imperative programming language.
150 | 
151 | ## `compose.yaml`
152 | 
153 | This optional file contains a small, working [Compose file](https://docs.docker.com/reference/compose-file/) showing off how to use the image. To use the `compose.yaml`, add `%%COMPOSE%%` to the `content.md` and this will embed the YAML.
154 | 
155 | Other official images may be referenced within the YAML to demonstrate the functionality of the image, but no images external to the Docker Official Images program may be referenced.
156 | 
157 | # Files for main Docs repo
158 | 
159 | ## `update.sh`
160 | 
161 | This is the main script used to generate the `README.md` files for each image. The generated file is committed along with the files used to generate it. Accepted arguments are which image(s) you want to update or no arguments to update all of them.
162 | 
163 | This script assumes [`bashbrew`](https://github.com/docker-library/bashbrew/releases) is in your `PATH` (for scraping relevant tag information from the library manifest file for each repository).
164 | 
165 | ## `markdownfmt.sh` and `ymlfmt.sh`
166 | 
167 | These two scripts are for verifying the formatting of Markdown (`.md`) and YAML (`.yml`) files, respectively. `markdownfmt.sh` uses the [`tianon/markdownfmt`](https://hub.docker.com/r/tianon/markdownfmt) image and `ymlfmt.sh` uses the [`tianon/ymlfmt`](https://hub.docker.com/r/tianon/ymlfmt) image.
168 | 
169 | ## `.template-helpers/generate-dockerfile-links-partial.sh`
170 | 
171 | This script is used by `update.sh` to create the "Supported tags and respective `Dockerfile` links" section of each generated `README.md` from the information in the [official-images `library/` manifests](https://github.com/docker-library/official-images/tree/master/library).
172 | 
173 | ## `.template-helpers/`
174 | 
175 | The scripts and Markdown files in here are used in building an image's `README.md` file in combination with its individual files.
176 | 
177 | # Scripts unrelated to templates
178 | 
179 | ## `generate-repo-stub-readme.sh`
180 | 
181 | This is used to generate a simple `README.md` to put in the image's repo. We use this in Git repositories within https://github.com/docker-library to simplify our maintenance, but it is not required for anyone else. The only argument is the name of the image (or repo), like `golang` and it then outputs the readme to standard out.
182 | 
183 | ## `push.pl` and `push.sh`
184 | 
185 | These are used by us to push the actual content of the READMEs to the Docker Hub as special access is required to modify the Hub description contents. The `Dockerfile` is used to create a suitable environment for `push.pl`.
186 | 
187 | # Issues and Contributing
188 | 
189 | If you would like to make a new Official Image, be sure to follow the [guidelines](https://docs.docker.com/docker-hub/official_repos/).
190 | 
191 | Feel free to make a pull request for fixes and improvements to current documentation. For questions or problems on this repo come talk to us via the `#docker-library` IRC channel on [Libera.Chat](https://libera.chat/) or open up an issue.
192 | 
```

--------------------------------------------------------------------------------
/traefik/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <!--
  2 | 
  3 | ********************************************************************************
  4 | 
  5 | WARNING:
  6 | 
  7 |     DO NOT EDIT "traefik/README.md"
  8 | 
  9 |     IT IS AUTO-GENERATED
 10 | 
 11 |     (from the other files in "traefik/" combined with a set of templates)
 12 | 
 13 | ********************************************************************************
 14 | 
 15 | -->
 16 | 
 17 | # Quick reference
 18 | 
 19 | -	**Maintained by**:  
 20 | 	[the Traefik Project](https://github.com/traefik/traefik-library-image)
 21 | 
 22 | -	**Where to get help**:  
 23 | 	[the Docker Community Slack](https://dockr.ly/comm-slack), [Server Fault](https://serverfault.com/help/on-topic), [Unix & Linux](https://unix.stackexchange.com/help/on-topic), or [Stack Overflow](https://stackoverflow.com/help/on-topic)
 24 | 
 25 | # Supported tags and respective `Dockerfile` links
 26 | 
 27 | -	[`v3.4.0-windowsservercore-ltsc2022`, `3.4.0-windowsservercore-ltsc2022`, `v3.4-windowsservercore-ltsc2022`, `3.4-windowsservercore-ltsc2022`, `v3-windowsservercore-ltsc2022`, `3-windowsservercore-ltsc2022`, `chaource-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/8b16bf1c51046631b81b5acc469edb982f5c237d/v3.4/windows/servercore-ltsc2022/Dockerfile)
 28 | 
 29 | -	[`v3.4.0-windowsservercore-1809`, `3.4.0-windowsservercore-1809`, `v3.4-windowsservercore-1809`, `3.4-windowsservercore-1809`, `v3-windowsservercore-1809`, `3-windowsservercore-1809`, `chaource-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/traefik/traefik-library-image/blob/8b16bf1c51046631b81b5acc469edb982f5c237d/v3.4/windows/1809/Dockerfile)
 30 | 
 31 | -	[`v3.4.0-nanoserver-ltsc2022`, `3.4.0-nanoserver-ltsc2022`, `v3.4-nanoserver-ltsc2022`, `3.4-nanoserver-ltsc2022`, `v3-nanoserver-ltsc2022`, `3-nanoserver-ltsc2022`, `chaource-nanoserver-ltsc2022`, `nanoserver-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/8b16bf1c51046631b81b5acc469edb982f5c237d/v3.4/windows/nanoserver-ltsc2022/Dockerfile)
 32 | 
 33 | -	[`v3.4.0`, `3.4.0`, `v3.4`, `3.4`, `v3`, `3`, `chaource`, `latest`](https://github.com/traefik/traefik-library-image/blob/8b16bf1c51046631b81b5acc469edb982f5c237d/v3.4/alpine/Dockerfile)
 34 | 
 35 | -	[`v3.3.7-windowsservercore-ltsc2022`, `3.3.7-windowsservercore-ltsc2022`, `v3.3-windowsservercore-ltsc2022`, `3.3-windowsservercore-ltsc2022`, `saintnectaire-windowsservercore-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/f85d75511c3d417080b2d29bda42b794c43f4aac/v3.3/windows/servercore-ltsc2022/Dockerfile)
 36 | 
 37 | -	[`v3.3.7-windowsservercore-1809`, `3.3.7-windowsservercore-1809`, `v3.3-windowsservercore-1809`, `3.3-windowsservercore-1809`, `saintnectaire-windowsservercore-1809`](https://github.com/traefik/traefik-library-image/blob/f85d75511c3d417080b2d29bda42b794c43f4aac/v3.3/windows/1809/Dockerfile)
 38 | 
 39 | -	[`v3.3.7-nanoserver-ltsc2022`, `3.3.7-nanoserver-ltsc2022`, `v3.3-nanoserver-ltsc2022`, `3.3-nanoserver-ltsc2022`, `saintnectaire-nanoserver-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/f85d75511c3d417080b2d29bda42b794c43f4aac/v3.3/windows/nanoserver-ltsc2022/Dockerfile)
 40 | 
 41 | -	[`v3.3.7`, `3.3.7`, `v3.3`, `3.3`, `saintnectaire`](https://github.com/traefik/traefik-library-image/blob/f85d75511c3d417080b2d29bda42b794c43f4aac/v3.3/alpine/Dockerfile)
 42 | 
 43 | -	[`v2.11.24-windowsservercore-ltsc2022`, `2.11.24-windowsservercore-ltsc2022`, `v2.11-windowsservercore-ltsc2022`, `2.11-windowsservercore-ltsc2022`, `v2-windowsservercore-ltsc2022`, `2-windowsservercore-ltsc2022`, `mimolette-windowsservercore-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/87668d6d8d86f920c2d3b0ae149673b26aec71df/v2.11/windows/servercore-ltsc2022/Dockerfile)
 44 | 
 45 | -	[`v2.11.24-windowsservercore-1809`, `2.11.24-windowsservercore-1809`, `v2.11-windowsservercore-1809`, `2.11-windowsservercore-1809`, `v2-windowsservercore-1809`, `2-windowsservercore-1809`, `mimolette-windowsservercore-1809`](https://github.com/traefik/traefik-library-image/blob/87668d6d8d86f920c2d3b0ae149673b26aec71df/v2.11/windows/1809/Dockerfile)
 46 | 
 47 | -	[`v2.11.24-nanoserver-ltsc2022`, `2.11.24-nanoserver-ltsc2022`, `v2.11-nanoserver-ltsc2022`, `2.11-nanoserver-ltsc2022`, `v2-nanoserver-ltsc2022`, `2-nanoserver-ltsc2022`, `mimolette-nanoserver-ltsc2022`](https://github.com/traefik/traefik-library-image/blob/87668d6d8d86f920c2d3b0ae149673b26aec71df/v2.11/windows/nanoserver-ltsc2022/Dockerfile)
 48 | 
 49 | -	[`v2.11.24`, `2.11.24`, `v2.11`, `2.11`, `v2`, `2`, `mimolette`](https://github.com/traefik/traefik-library-image/blob/87668d6d8d86f920c2d3b0ae149673b26aec71df/v2.11/alpine/Dockerfile)
 50 | 
 51 | # Quick reference (cont.)
 52 | 
 53 | -	**Where to file issues**:  
 54 | 	[https://github.com/traefik/traefik-library-image/issues](https://github.com/traefik/traefik-library-image/issues?q=)
 55 | 
 56 | -	**Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))  
 57 | 	[`amd64`](https://hub.docker.com/r/amd64/traefik/), [`arm32v6`](https://hub.docker.com/r/arm32v6/traefik/), [`arm64v8`](https://hub.docker.com/r/arm64v8/traefik/), [`ppc64le`](https://hub.docker.com/r/ppc64le/traefik/), [`riscv64`](https://hub.docker.com/r/riscv64/traefik/), [`s390x`](https://hub.docker.com/r/s390x/traefik/), [`windows-amd64`](https://hub.docker.com/r/winamd64/traefik/)
 58 | 
 59 | -	**Published image artifact details**:  
 60 | 	[repo-info repo's `repos/traefik/` directory](https://github.com/docker-library/repo-info/blob/master/repos/traefik) ([history](https://github.com/docker-library/repo-info/commits/master/repos/traefik))  
 61 | 	(image metadata, transfer size, etc)
 62 | 
 63 | -	**Image updates**:  
 64 | 	[official-images repo's `library/traefik` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Ftraefik)  
 65 | 	[official-images repo's `library/traefik` file](https://github.com/docker-library/official-images/blob/master/library/traefik) ([history](https://github.com/docker-library/official-images/commits/master/library/traefik))
 66 | 
 67 | -	**Source of this description**:  
 68 | 	[docs repo's `traefik/` directory](https://github.com/docker-library/docs/tree/master/traefik) ([history](https://github.com/docker-library/docs/commits/master/traefik))
 69 | 
 70 | ![logo](https://raw.githubusercontent.com/docker-library/docs/a6cc2c5f4bc6658168f2a0abbb0307acaefff80e/traefik/logo.png)
 71 | 
 72 | [Traefik](https://traefik.io) is a modern HTTP reverse proxy and ingress controller that makes deploying microservices easy.
 73 | 
 74 | Traefik integrates with your existing infrastructure components ([Kubernetes](https://kubernetes.io), [Docker](https://www.docker.com/), [Swarm](https://docs.docker.com/engine/swarm/), [Consul](https://www.consul.io/), [Nomad](https://www.nomadproject.io/), [etcd](https://coreos.com/etcd/), [Amazon ECS](https://aws.amazon.com/ecs), ...) and configures itself automatically and dynamically.
 75 | 
 76 | Pointing Traefik at your orchestrator should be the *only* configuration step you need.
 77 | 
 78 | ## Traefik v3 - Example usage
 79 | 
 80 | Enable `docker` provider and dashboard UI:
 81 | 
 82 | ```yml
 83 | ## traefik.yml
 84 | 
 85 | # Docker configuration backend
 86 | providers:
 87 |   docker:
 88 |     defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)"
 89 | 
 90 | # API and dashboard configuration
 91 | api:
 92 |   insecure: true
 93 | ```
 94 | 
 95 | Start Traefik v3:
 96 | 
 97 | ```sh
 98 | docker run -d -p 8080:8080 -p 80:80 \
 99 |   -v $PWD/traefik.yml:/etc/traefik/traefik.yml \
100 |   -v /var/run/docker.sock:/var/run/docker.sock \
101 |   traefik:v3
102 | ```
103 | 
104 | Start a backend server using the `traefik/whoami` image:
105 | 
106 | ```sh
107 | docker run -d --name test traefik/whoami
108 | ```
109 | 
110 | Access the whoami service through Traefik via the defined rule `test.docker.localhost`:
111 | 
112 | ```console
113 | $ curl test.docker.localhost
114 | Hostname: 0693100b16de
115 | IP: 127.0.0.1
116 | IP: ::1
117 | IP: 192.168.215.4
118 | RemoteAddr: 192.168.215.3:57618
119 | GET / HTTP/1.1
120 | Host: test.docker.localhost
121 | User-Agent: curl/8.7.1
122 | Accept: */*
123 | Accept-Encoding: gzip
124 | X-Forwarded-For: 192.168.215.1
125 | X-Forwarded-Host: test.docker.localhost
126 | X-Forwarded-Port: 80
127 | X-Forwarded-Proto: http
128 | X-Forwarded-Server: 8a37fd4f35fb
129 | X-Real-Ip: 192.168.215.1
130 | ```
131 | 
132 | Access the Traefik Dashboard:
133 | 
134 | Open your web browser and navigate to `http://localhost:8080` to access the Traefik dashboard. This will provide an overview of routers, services, and middlewares.
135 | 
136 | ![Dashboard UI](https://raw.githubusercontent.com/traefik/traefik/v3.2/docs/content/assets/img/webui-dashboard.png)
137 | 
138 | ## Traefik v2 - Example usage
139 | 
140 | Enable `docker` provider and dashboard UI:
141 | 
142 | ```yml
143 | ## traefik.yml
144 | 
145 | # Docker configuration backend
146 | providers:
147 |   docker:
148 |     defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)"
149 | 
150 | # API and dashboard configuration
151 | api:
152 |   insecure: true
153 | ```
154 | 
155 | Start Traefik v2:
156 | 
157 | ```sh
158 | docker run -d -p 8080:8080 -p 80:80 \
159 | -v $PWD/traefik.yml:/etc/traefik/traefik.yml \
160 | -v /var/run/docker.sock:/var/run/docker.sock \
161 | traefik:v2.11
162 | ```
163 | 
164 | Start a backend server using the `traefik/whoami` image:
165 | 
166 | ```sh
167 | docker run -d --name test traefik/whoami
168 | ```
169 | 
170 | Access the whoami service through Traefik via the defined rule `test.docker.localhost`:
171 | 
172 | ```console
173 | $ curl test.docker.localhost
174 | Hostname: 390a880bdfab
175 | IP: 127.0.0.1
176 | IP: 172.17.0.3
177 | GET / HTTP/1.1
178 | Host: test.docker.localhost
179 | User-Agent: curl/7.65.3
180 | Accept: */*
181 | Accept-Encoding: gzip
182 | X-Forwarded-For: 172.17.0.1
183 | X-Forwarded-Host: test.docker.localhost
184 | X-Forwarded-Port: 80
185 | X-Forwarded-Proto: http
186 | X-Forwarded-Server: 7e073cb54211
187 | X-Real-Ip: 172.17.0.1
188 | ```
189 | 
190 | Access the Traefik Dashboard:
191 | 
192 | Open your web browser and navigate to `http://localhost:8080` to access the Traefik dashboard. This will provide an overview of routers, services, and middlewares.
193 | 
194 | ![Dashboard UI](https://raw.githubusercontent.com/traefik/traefik/v2.0/docs/content/assets/img/webui-dashboard.png)
195 | 
196 | ## Documentation
197 | 
198 | You can find the complete documentation:
199 | 
200 | -	for [v3.x](https://doc.traefik.io/traefik/)
201 | -	for [v2.11](https://doc.traefik.io/traefik/v2.11)
202 | 
203 | A community support is available at [https://community.traefik.io](https://community.traefik.io)
204 | 
205 | # Image Variants
206 | 
207 | The `traefik` images come in many flavors, each designed for a specific use case.
208 | 
209 | ## `traefik:<version>`
210 | 
211 | This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
212 | 
213 | ## `traefik:<version>-windowsservercore`
214 | 
215 | This image is based on [Windows Server Core (`microsoft/windowsservercore`)](https://hub.docker.com/r/microsoft/windowsservercore/). As such, it only works in places which that image does, such as Windows 10 Professional/Enterprise (Anniversary Edition) or Windows Server 2016.
216 | 
217 | For information about how to get Docker running on Windows, please see the relevant "Quick Start" guide provided by Microsoft:
218 | 
219 | -	[Windows Server Quick Start](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_server)
220 | -	[Windows 10 Quick Start](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_10)
221 | 
222 | # License
223 | 
224 | View [license information](https://github.com/traefik/traefik/blob/master/LICENSE.md) for the software contained in this image.
225 | 
226 | As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
227 | 
228 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `traefik/` directory](https://github.com/docker-library/repo-info/tree/master/repos/traefik).
229 | 
230 | As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
231 | 
```

--------------------------------------------------------------------------------
/varnish/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <!--
  2 | 
  3 | ********************************************************************************
  4 | 
  5 | WARNING:
  6 | 
  7 |     DO NOT EDIT "varnish/README.md"
  8 | 
  9 |     IT IS AUTO-GENERATED
 10 | 
 11 |     (from the other files in "varnish/" combined with a set of templates)
 12 | 
 13 | ********************************************************************************
 14 | 
 15 | -->
 16 | 
 17 | # Quick reference
 18 | 
 19 | -	**Maintained by**:  
 20 | 	[the Varnish Docker Community](https://github.com/varnish/docker-varnish)
 21 | 
 22 | -	**Where to get help**:  
 23 | 	[the Docker Community Slack](https://dockr.ly/comm-slack), [Server Fault](https://serverfault.com/help/on-topic), [Unix & Linux](https://unix.stackexchange.com/help/on-topic), or [Stack Overflow](https://stackoverflow.com/help/on-topic)
 24 | 
 25 | # Supported tags and respective `Dockerfile` links
 26 | 
 27 | -	[`fresh`, `7.7.1`, `7`, `7.7`, `latest`](https://github.com/varnish/docker-varnish/blob/ea97ed35f2b0eb438ccd6a9250c36567686bfb4a/fresh/debian/Dockerfile)
 28 | 
 29 | -	[`fresh-alpine`, `7.7.1-alpine`, `7-alpine`, `7.7-alpine`, `alpine`](https://github.com/varnish/docker-varnish/blob/ea97ed35f2b0eb438ccd6a9250c36567686bfb4a/fresh/alpine/Dockerfile)
 30 | 
 31 | -	[`old`, `7.6.3`, `7.6`](https://github.com/varnish/docker-varnish/blob/ea97ed35f2b0eb438ccd6a9250c36567686bfb4a/old/debian/Dockerfile)
 32 | 
 33 | -	[`old-alpine`, `7.6.3-alpine`, `7.6-alpine`](https://github.com/varnish/docker-varnish/blob/ea97ed35f2b0eb438ccd6a9250c36567686bfb4a/old/alpine/Dockerfile)
 34 | 
 35 | -	[`stable`, `6.0.14`, `6.0`](https://github.com/varnish/docker-varnish/blob/ea97ed35f2b0eb438ccd6a9250c36567686bfb4a/stable/debian/Dockerfile)
 36 | 
 37 | # Quick reference (cont.)
 38 | 
 39 | -	**Where to file issues**:  
 40 | 	[https://github.com/varnish/docker-varnish/issues](https://github.com/varnish/docker-varnish/issues?q=)
 41 | 
 42 | -	**Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))  
 43 | 	[`amd64`](https://hub.docker.com/r/amd64/varnish/), [`arm32v7`](https://hub.docker.com/r/arm32v7/varnish/), [`arm64v8`](https://hub.docker.com/r/arm64v8/varnish/), [`i386`](https://hub.docker.com/r/i386/varnish/), [`ppc64le`](https://hub.docker.com/r/ppc64le/varnish/), [`s390x`](https://hub.docker.com/r/s390x/varnish/)
 44 | 
 45 | -	**Published image artifact details**:  
 46 | 	[repo-info repo's `repos/varnish/` directory](https://github.com/docker-library/repo-info/blob/master/repos/varnish) ([history](https://github.com/docker-library/repo-info/commits/master/repos/varnish))  
 47 | 	(image metadata, transfer size, etc)
 48 | 
 49 | -	**Image updates**:  
 50 | 	[official-images repo's `library/varnish` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fvarnish)  
 51 | 	[official-images repo's `library/varnish` file](https://github.com/docker-library/official-images/blob/master/library/varnish) ([history](https://github.com/docker-library/official-images/commits/master/library/varnish))
 52 | 
 53 | -	**Source of this description**:  
 54 | 	[docs repo's `varnish/` directory](https://github.com/docker-library/docs/tree/master/varnish) ([history](https://github.com/docker-library/docs/commits/master/varnish))
 55 | 
 56 | # What is Varnish?
 57 | 
 58 | Varnish is an HTTP accelerator designed for content-heavy dynamic web sites as well as APIs. In contrast to other web accelerators, such as Squid, which began life as a client-side cache, or Apache and nginx, which are primarily origin servers, Varnish was designed as an HTTP accelerator. Varnish is focused exclusively on HTTP, unlike other proxy servers that often support FTP, SMTP and other network protocols.
 59 | 
 60 | > [wikipedia.org/wiki/Varnish_(software)](https://en.wikipedia.org/wiki/Varnish_(software))
 61 | 
 62 | ![logo](https://raw.githubusercontent.com/docker-library/docs/5ca8e315af01e76381d499a2928f7f47a6787f49/varnish/logo.png)
 63 | 
 64 | # How to use this image.
 65 | 
 66 | ## Basic usage
 67 | 
 68 | ### Using `VARNISH_BACKEND_HOST` and `VARNISH_BACKEND_PORT`
 69 | 
 70 | You just need to know where your backend (the server that Varnish will accelerate) is:
 71 | 
 72 | ```console
 73 | # we define VARNISH_BACKEND_HOST/VARNISH_BACKEND_PORT
 74 | # our workdir has to be mounted as tmpfs to avoid disk I/O,
 75 | # and we'll use port 8080 to talk to our container (internally listening on 80)
 76 | $ docker run \
 77 |     -e VARNISH_BACKEND_HOST=example.com -e VARNISH_BACKEND_PORT=80 \
 78 | 	--tmpfs /var/lib/varnish/varnishd:exec \
 79 | 	-p 8080:80 \
 80 | 	varnish
 81 | ```
 82 | 
 83 | From there, you can visit `localhost:8080` in your browser and see the example.com homepage.
 84 | 
 85 | ### Using a VCL file
 86 | 
 87 | If you already have a VCL file, you can directly mount it as `/etc/varnish/default.vcl`:
 88 | 
 89 | ```console
 90 | # we need the configuration file at /etc/varnish/default.vcl,
 91 | # our workdir has to be mounted as tmpfs to avoid disk I/O,
 92 | # and we'll use port 8080 to talk to our container (internally listening on 80)
 93 | $ docker run \
 94 | 	-v /path/to/default.vcl:/etc/varnish/default.vcl:ro \
 95 | 	--tmpfs /var/lib/varnish/varnishd:exec \
 96 | 	-p 8080:80 \
 97 | 	varnish
 98 | ```
 99 | 
100 | Alternatively, a simple `Dockerfile` can be used to generate a new image that includes the necessary `default.vcl`:
101 | 
102 | ```dockerfile
103 | FROM varnish
104 | 
105 | COPY default.vcl /etc/varnish/
106 | ```
107 | 
108 | Place this file in the same directory as your `default.vcl`, run `docker build -t my-varnish .`, then start your container:
109 | 
110 | ```console
111 | $ docker --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 my-varnish
112 | ```
113 | 
114 | ## Reloading the configuration
115 | 
116 | The images all ship with [varnishreload](https://github.com/varnishcache/pkg-varnish-cache/blob/master/systemd/varnishreload#L42) which allows you to easily update the running configuration without restarting the container (and therefore losing your cache). At its most basic, you just need this:
117 | 
118 | ```console
119 | # update the default.vcl in your container
120 | docker cp new_default.vcl running_container:/etc/varnish/default.vcl
121 | # run varnishreload
122 | docker exec running_container varnishreload
123 | ```
124 | 
125 | Note that `varnishreload` also supports reloading other files (it doesn't have to be `default.vcl`), labels (`l`), and garbage collection of old labeles (`-m`) among others. To know more, run
126 | 
127 | ```console
128 | docker run varnish varnishreload -h
129 | ```
130 | 
131 | ## Additional configuration
132 | 
133 | ### Cache size (VARNISH_SIZE)
134 | 
135 | By default, the containers will use a cache size of 100MB, which is usually a bit too small, but you can quickly set it through the `VARNISH_SIZE` environment variable:
136 | 
137 | ```console
138 | $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G varnish
139 | ```
140 | 
141 | ### Listening ports (VARNISH_HTTP_PORT/VARNISH_PROXY_PORT)
142 | 
143 | Varnish will listen to HTTP traffic on port `80`, and this can be overridden by setting the environment variable `VARNISH_HTTP_PORT`. Similarly, the variable `VARNISH_PROXY_PORT` (defaulting to `8443`) dictate the listening port for the [PROXY protocol](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) used notably to interact with [hitch](https://hub.docker.com/_/hitch) (which, coincidentally, uses `8443` as a default too!).
144 | 
145 | ```console
146 | # instruct varnish to listening to port 7777 instead of 80
147 | $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:7777 -e VARNISH_HTTP_PORT=7777 varnish
148 | ```
149 | 
150 | ### Extra arguments
151 | 
152 | Additionally, you can add arguments to `docker run` after `varnish`, if the first argument starts with a `-`, the whole list will be appendend to the [default command](https://github.com/varnish/docker-varnish/blob/master/fresh/debian/scripts/docker-varnish-entrypoint):
153 | 
154 | ```console
155 | # extend the default keep period
156 | $ docker run --tmpfs /var/lib/varnish/varnishd:exec -p 8080:80 -e VARNISH_SIZE=2G varnish -p default_keep=300
157 | ```
158 | 
159 | If your first argument after `varnish` doesn't start with `-`, it will be interpreted as a command to override the default one:
160 | 
161 | ```console
162 | # show the command-line options
163 | $ docker run varnish varnishd -?
164 | 
165 | # list parameters usable with -p
166 | $ docker run varnish varnishd -x parameter
167 | 
168 | # run the server with your own parameters (don't forget -F to not daemonize)
169 | $ docker run varnish varnishd -F -a :8080 -b 127.0.0.1:8181 -t 600 -p feature=+http2
170 | ```
171 | 
172 | ## vmods (since 7.1)
173 | 
174 | As mentioned above, you can use [vmod_dynamic](https://github.com/nigoroll/libvmod-dynamic) for backend resolution. The [varnish-modules](https://github.com/varnish/varnish-modules) collection is also included in the image. All the documentation regarding usage and syntax can be found in the [src/](https://github.com/varnish/varnish-modules/tree/master/src) directory of the repository.
175 | 
176 | On top of this, images include [install-vmod](https://github.com/varnish/toolbox/tree/master/install-vmod), a helper script to quickly download, compile and install vmods while creating your own images. Note that images set the `ENV` variable `VMOD_DEPS` to ease the task further.
177 | 
178 | ### Debian
179 | 
180 | ```dockerfile
181 | FROM varnish:7.1
182 | 
183 | # set the user to root, and install build dependencies
184 | USER root
185 | RUN set -e; \
186 |     apt-get update; \
187 |     apt-get -y install $VMOD_DEPS /pkgs/*.deb; \
188 |     \
189 | # install one, possibly multiple vmods
190 |    install-vmod https://github.com/varnish/varnish-modules/releases/download/0.20.0/varnish-modules-0.20.0.tar.gz; \
191 |     \
192 | # clean up and set the user back to varnish
193 |     apt-get -y purge --auto-remove $VMOD_DEPS varnish-dev; \
194 |     rm -rf /var/lib/apt/lists/*
195 | USER varnish
196 | ```
197 | 
198 | ### Alpine
199 | 
200 | ```dockerfile
201 | FROM varnish:7.1-alpine
202 | 
203 | # install build dependencies
204 | USER root
205 | RUN set -e; \
206 |     apk add --no-cache $VMOD_DEPS; \
207 |     \
208 | # install one, possibly multiple vmods
209 |     install-vmod https://github.com/varnish/varnish-modules/releases/download/0.20.0/varnish-modules-0.20.0.tar.gz; \
210 |     \
211 | # clean up
212 |     apk del --no-network $VMOD_DEPS
213 | USER varnish
214 | ```
215 | 
216 | # Image Variants
217 | 
218 | The `varnish` images come in many flavors, each designed for a specific use case.
219 | 
220 | ## `varnish:<version>`
221 | 
222 | This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
223 | 
224 | ## `varnish:<version>-alpine`
225 | 
226 | This image is based on the popular [Alpine Linux project](https://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.
227 | 
228 | This variant is useful when final image size being as small as possible is your primary concern. The main caveat to note is that it does use [musl libc](https://musl.libc.org) instead of [glibc and friends](https://www.etalabs.net/compare_libcs.html), so software will often run into issues depending on the depth of their libc requirements/assumptions. See [this Hacker News comment thread](https://news.ycombinator.com/item?id=10782897) for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images.
229 | 
230 | To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar).
231 | 
232 | # License
233 | 
234 | View [license information](https://github.com/varnishcache/varnish-cache/blob/master/LICENSE) for the software contained in this image.
235 | 
236 | As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
237 | 
238 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `varnish/` directory](https://github.com/docker-library/repo-info/tree/master/repos/varnish).
239 | 
240 | As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
241 | 
```

--------------------------------------------------------------------------------
/sonarqube/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <!--
  2 | 
  3 | ********************************************************************************
  4 | 
  5 | WARNING:
  6 | 
  7 |     DO NOT EDIT "sonarqube/README.md"
  8 | 
  9 |     IT IS AUTO-GENERATED
 10 | 
 11 |     (from the other files in "sonarqube/" combined with a set of templates)
 12 | 
 13 | ********************************************************************************
 14 | 
 15 | -->
 16 | 
 17 | # Quick reference
 18 | 
 19 | -	**Maintained by**:  
 20 | 	[SonarSource](https://github.com/SonarSource/docker-sonarqube)
 21 | 
 22 | -	**Where to get help**:  
 23 | 	[the SonarSource Community forum](https://community.sonarsource.com/tags/c/help/sq/docker), [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://blog.docker.com/2016/11/introducing-docker-community-directory-docker-community-slack/), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker)
 24 | 
 25 | # Supported tags and respective `Dockerfile` links
 26 | 
 27 | -	[`2025.2.0-developer`, `2025.2-developer`, `developer`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/2025/developer/Dockerfile)
 28 | 
 29 | -	[`2025.2.0-enterprise`, `2025.2-enterprise`, `enterprise`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/2025/enterprise/Dockerfile)
 30 | 
 31 | -	[`2025.2.0-datacenter-app`, `2025.2-datacenter-app`, `datacenter-app`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/2025/datacenter/app/Dockerfile)
 32 | 
 33 | -	[`2025.2.0-datacenter-search`, `2025.2-datacenter-search`, `datacenter-search`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/2025/datacenter/search/Dockerfile)
 34 | 
 35 | -	[`2025.1.1-developer`, `2025.1-developer`, `2025-lta-developer`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/2025.1/developer/Dockerfile)
 36 | 
 37 | -	[`2025.1.1-enterprise`, `2025.1-enterprise`, `2025-lta-enterprise`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/2025.1/enterprise/Dockerfile)
 38 | 
 39 | -	[`2025.1.1-datacenter-app`, `2025.1-datacenter-app`, `2025-lta-datacenter-app`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/2025.1/datacenter/app/Dockerfile)
 40 | 
 41 | -	[`2025.1.1-datacenter-search`, `2025.1-datacenter-search`, `2025-lta-datacenter-search`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/2025.1/datacenter/search/Dockerfile)
 42 | 
 43 | -	[`25.5.0.107428-community`, `community`, `latest`](https://github.com/SonarSource/docker-sonarqube/blob/56846598574ea57af773ec32bc4c36c25d40f34c/community-build/Dockerfile)
 44 | 
 45 | -	[`9.9.8-community`, `9.9-community`, `9-community`, `lts`, `lts-community`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/9/community/Dockerfile)
 46 | 
 47 | -	[`9.9.8-developer`, `9.9-developer`, `9-developer`, `lts-developer`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/9/developer/Dockerfile)
 48 | 
 49 | -	[`9.9.9-enterprise`, `9.9-enterprise`, `9-enterprise`, `lts-enterprise`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/9/enterprise/Dockerfile)
 50 | 
 51 | -	[`9.9.9-datacenter-app`, `9.9-datacenter-app`, `9-datacenter-app`, `lts-datacenter-app`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/9/datacenter/app/Dockerfile)
 52 | 
 53 | -	[`9.9.9-datacenter-search`, `9.9-datacenter-search`, `9-datacenter-search`, `lts-datacenter-search`](https://github.com/SonarSource/docker-sonarqube/blob/2c5fde2923701623402dbec59369d4fa115f1adb/9/datacenter/search/Dockerfile)
 54 | 
 55 | # Quick reference (cont.)
 56 | 
 57 | -	**Where to file issues**:  
 58 | 	[https://github.com/SonarSource/docker-sonarqube/issues](https://github.com/SonarSource/docker-sonarqube/issues?q=)
 59 | 
 60 | -	**Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))  
 61 | 	[`amd64`](https://hub.docker.com/r/amd64/sonarqube/), [`arm64v8`](https://hub.docker.com/r/arm64v8/sonarqube/)
 62 | 
 63 | -	**Published image artifact details**:  
 64 | 	[repo-info repo's `repos/sonarqube/` directory](https://github.com/docker-library/repo-info/blob/master/repos/sonarqube) ([history](https://github.com/docker-library/repo-info/commits/master/repos/sonarqube))  
 65 | 	(image metadata, transfer size, etc)
 66 | 
 67 | -	**Image updates**:  
 68 | 	[official-images repo's `library/sonarqube` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fsonarqube)  
 69 | 	[official-images repo's `library/sonarqube` file](https://github.com/docker-library/official-images/blob/master/library/sonarqube) ([history](https://github.com/docker-library/official-images/commits/master/library/sonarqube))
 70 | 
 71 | -	**Source of this description**:  
 72 | 	[docs repo's `sonarqube/` directory](https://github.com/docker-library/docs/tree/master/sonarqube) ([history](https://github.com/docker-library/docs/commits/master/sonarqube))
 73 | 
 74 | # What is `sonarqube`?
 75 | 
 76 | `sonarqube` Docker repository stores the official Sonar images for SonarQube Server and SonarQube Community Build.
 77 | 
 78 | [SonarQube Server](https://www.sonarsource.com/products/sonarqube/) (formerly SonarQube) is an on-premise analysis tool designed to detect quality and security issues in 30+ languages, frameworks, and IaC platforms. The solution also provides fix recommendations leveraging AI with Sonar's AI CodeFix capability. By integrating directly with your CI pipeline or on one of the supported DevOps platforms, your code is checked against an extensive set of rules that cover many attributes of code, such as maintainability, reliability, and security issues on each merge/pull request.
 79 | 
 80 | [SonarQube Community Build](https://www.sonarsource.com/open-source-editions/sonarqube-community-edition/) (formerly SonarQube Community) is Sonar's self-managed free offering, released on a monthly schedule. It includes the latest core capabilities available in open source, providing essential features such as bug detection, identification of code smells, and basic security issue analysis across 21 programming languages and frameworks. For advanced security analysis, enterprise-grade integrations, and scalability features, the commercial version, SonarQube Server, is available.
 81 | 
 82 | ## How to use this image
 83 | 
 84 | Here, you'll find the Docker images for the SonarQube Server (Developer Edition, Enterprise Edition, and Data Center Edition), as well as for SonarQube Community Build.
 85 | 
 86 | ## Docker Host Requirements
 87 | 
 88 | Because SonarQube uses an embedded Elasticsearch, make sure that your Docker host configuration complies with the [Elasticsearch production mode requirements](https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode) and [File Descriptors configuration](https://www.elastic.co/guide/en/elasticsearch/reference/current/file-descriptors.html).
 89 | 
 90 | For example, on Linux, you can set the recommended values for the current session by running the following commands as root on the host:
 91 | 
 92 | ```console
 93 | sysctl -w vm.max_map_count=524288
 94 | sysctl -w fs.file-max=131072
 95 | ulimit -n 131072
 96 | ulimit -u 8192
 97 | ```
 98 | 
 99 | ## Demo
100 | 
101 | To quickly run a demo instance, see Using Docker on the [Try Out SonarQube](https://docs.sonarqube.org/latest/setup/get-started-2-minutes/) page. When you are ready to move to a more sustainable setup, take some time to read the **Installation** and **Configuration** sections below.
102 | 
103 | ## Installation
104 | 
105 | > **Multi-platform support**: Starting from SonarQube `9.9` LTS, the docker images support running both on `amd64` architecture and `arm64`-based Apple Silicon (M1).
106 | 
107 | For installation instructions, see Installing the Server from the Docker Image on the [Install the Server](https://docs.sonarqube.org/latest/setup/install-server/) page.
108 | 
109 | To run a cluster with the SonarQube Server Data Center Edition, please refer to Installing SonarQube Server from the Docker Image on the [Install the Server as a Cluster](https://docs.sonarqube.org/latest/setup/install-cluster/) page.
110 | 
111 | > The `lts` tag on Docker images is replaced with every new LTS release. If you want to avoid any automatic major upgrades, we recommend using the corresponding `9.9-<edition>` tag instead of `lts-<edition>`.
112 | 
113 | ## Configuration
114 | 
115 | ### Port binding
116 | 
117 | By default, the server running within the container will listen on port 9000. You can expose the container port 9000 to the host port 9000 with the `-p 9000:9000` argument to `docker run`, like the command below:
118 | 
119 | ```console
120 | docker run --name sonarqube-custom -p 9000:9000 sonarqube:community
121 | ```
122 | 
123 | You can then browse to `http://localhost:9000` or `http://host-ip:9000` in your web browser to access the web interface.
124 | 
125 | ### Database
126 | 
127 | By default, the image will use an embedded H2 database that is not suited for production.
128 | 
129 | > **Warning:** Only a single instance of SonarQube Server or SonarQube Community Build can connect to a database schema. If you're using a Docker Swarm or Kubernetes, make sure that multiple instances are never running on the same database schema simultaneously. This will cause the SonarQube to behave unpredictably, and data will be corrupted. There is no safeguard, as described on [SONAR-10362](https://jira.sonarsource.com/browse/SONAR-10362). The SonarQube Server Data Center Edition has the same limitation in that only one cluster can connect to one database schema at the same time.
130 | 
131 | Set up a database by following the ["Installing the Database"](https://docs.sonarsource.com/sonarqube/latest/setup-and-upgrade/install-the-server/installing-the-database/) section.
132 | 
133 | ### Use volumes
134 | 
135 | We recommend creating volumes for the following directories:
136 | 
137 | -	`/opt/sonarqube/data`: data files, such as the embedded H2 database and Elasticsearch indexes
138 | -	`/opt/sonarqube/logs`: contains SonarQube logs about access, web process, CE process, Elasticsearch logs
139 | -	`/opt/sonarqube/extensions`: for 3rd party plugins
140 | 
141 | > **Warning:** You cannot use the same volumes on multiple instances of SonarQube.
142 | 
143 | ## Upgrading
144 | 
145 | For upgrade instructions, see Upgrading from the Docker Image on the [Upgrade the Server](https://docs.sonarqube.org/latest/setup/upgrading/) page.
146 | 
147 | ## Advanced configuration
148 | 
149 | ### Customized image
150 | 
151 | In some environments, it may make more sense to prepare a custom image containing your configuration. A `Dockerfile` to achieve this may be as simple as:
152 | 
153 | ```dockerfile
154 | FROM sonarqube:community
155 | COPY sonar-custom-plugin-1.0.jar /opt/sonarqube/extensions/
156 | ```
157 | 
158 | You could then build and try the image with something like:
159 | 
160 | ```console
161 | $ docker build --tag=sonarqube-custom .
162 | $ docker run -ti sonarqube-custom
163 | ```
164 | 
165 | ### Avoid hard termination
166 | 
167 | The instance will stop gracefully, waiting for any tasks in progress to finish. Waiting for in-progress tasks to finish can take a large amount of time, which the docker does not expect by default when stopping. To avoid having the instance killed by the Docker daemon after 10 seconds, it is best to configure a timeout to stop the container with `--stop-timeout`. For example:
168 | 
169 | ```console
170 | docker run --stop-timeout 3600 sonarqube
171 | ```
172 | 
173 | ## Administration
174 | 
175 | The administration guide can be found [here](https://redirect.sonarsource.com/doc/administration-guide.html).
176 | 
177 | # License
178 | 
179 | SonarQube Community Build is licensed under [GNU Lesser General Public License, Version 3.0](http://www.gnu.org/licenses/lgpl.txt). SonarQube Server Developer, Enterprise, and Data Center Editions are licensed under [SonarSource Terms and Condition](https://www.sonarsource.com/docs/sonarsource_terms_and_conditions.pdf).
180 | 
181 | As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
182 | 
183 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `sonarqube/` directory](https://github.com/docker-library/repo-info/tree/master/repos/sonarqube).
184 | 
185 | As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
186 | 
```

--------------------------------------------------------------------------------
/gazebo/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <!--
  2 | 
  3 | ********************************************************************************
  4 | 
  5 | WARNING:
  6 | 
  7 |     DO NOT EDIT "gazebo/README.md"
  8 | 
  9 |     IT IS AUTO-GENERATED
 10 | 
 11 |     (from the other files in "gazebo/" combined with a set of templates)
 12 | 
 13 | ********************************************************************************
 14 | 
 15 | -->
 16 | 
 17 | # Quick reference
 18 | 
 19 | -	**Maintained by**:  
 20 | 	[the Open Source Robotics Foundation](https://github.com/osrf/docker_images)
 21 | 
 22 | -	**Where to get help**:  
 23 | 	[the Docker Community Slack](https://dockr.ly/comm-slack), [Server Fault](https://serverfault.com/help/on-topic), [Unix & Linux](https://unix.stackexchange.com/help/on-topic), or [Stack Overflow](https://stackoverflow.com/help/on-topic)
 24 | 
 25 | # Supported tags and respective `Dockerfile` links
 26 | 
 27 | -	[`gzserver11`, `gzserver11-focal`](https://github.com/osrf/docker_images/blob/f7bb3258d4814deec1eca7e46cbb8d7f4b054431/gazebo/11/ubuntu/focal/gzserver11/Dockerfile)
 28 | 
 29 | -	[`libgazebo11`, `libgazebo11-focal`, `latest`](https://github.com/osrf/docker_images/blob/f7bb3258d4814deec1eca7e46cbb8d7f4b054431/gazebo/11/ubuntu/focal/libgazebo11/Dockerfile)
 30 | 
 31 | # Quick reference (cont.)
 32 | 
 33 | -	**Where to file issues**:  
 34 | 	[https://github.com/osrf/docker_images/issues](https://github.com/osrf/docker_images/issues?q=)
 35 | 
 36 | -	**Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))  
 37 | 	[`amd64`](https://hub.docker.com/r/amd64/gazebo/)
 38 | 
 39 | -	**Published image artifact details**:  
 40 | 	[repo-info repo's `repos/gazebo/` directory](https://github.com/docker-library/repo-info/blob/master/repos/gazebo) ([history](https://github.com/docker-library/repo-info/commits/master/repos/gazebo))  
 41 | 	(image metadata, transfer size, etc)
 42 | 
 43 | -	**Image updates**:  
 44 | 	[official-images repo's `library/gazebo` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fgazebo)  
 45 | 	[official-images repo's `library/gazebo` file](https://github.com/docker-library/official-images/blob/master/library/gazebo) ([history](https://github.com/docker-library/official-images/commits/master/library/gazebo))
 46 | 
 47 | -	**Source of this description**:  
 48 | 	[docs repo's `gazebo/` directory](https://github.com/docker-library/docs/tree/master/gazebo) ([history](https://github.com/docker-library/docs/commits/master/gazebo))
 49 | 
 50 | # What is [Gazebo](http://www.gazebosim.org/)?
 51 | 
 52 | Robot simulation is an essential tool in every roboticist's toolbox. A well-designed simulator makes it possible to rapidly test algorithms, design robots, and perform regression testing using realistic scenarios. Gazebo offers the ability to accurately and efficiently simulate populations of robots in complex indoor and outdoor environments. At your fingertips is a robust physics engine, high-quality graphics, and convenient programmatic interfaces. Best of all, Gazebo is free with a vibrant community.
 53 | 
 54 | > [wikipedia.org/wiki/Gazebo_simulator](https://en.wikipedia.org/wiki/Gazebo_simulator)
 55 | 
 56 | [![logo](https://raw.githubusercontent.com/docker-library/docs/54c75ffef879ebb659bb82d5bc690bdb299c60c4/gazebo/logo.png)](http://www.gazebosim.org/)
 57 | 
 58 | # How to use this image
 59 | 
 60 | ## Create a `Dockerfile` in your Gazebo project
 61 | 
 62 | ```dockerfile
 63 | FROM gazebo:gzserver8
 64 | # place here your application's setup specifics
 65 | CMD [ "gzserver", "my-gazebo-app-args" ]
 66 | ```
 67 | 
 68 | You can then build and run the Docker image:
 69 | 
 70 | ```console
 71 | $ docker build -t my-gazebo-app .
 72 | $ docker run -it -v="/tmp/.gazebo/:/root/.gazebo/" --name my-running-app my-gazebo-app
 73 | ```
 74 | 
 75 | ## Deployment use cases
 76 | 
 77 | This dockerized image of Gazebo is intended to provide a simplified and consistent platform to build and deploy cloud based robotic simulations. Built from the [official Ubuntu image](https://hub.docker.com/_/ubuntu/) and Gazebo's official Debian packages, it includes recent supported releases for quick access and download. This provides roboticists in research and industry with an easy way to develop continuous integration and testing on training for autonomous actions and task planning, control dynamics and regions of stability, kinematic modeling and prototype characterization, localization and mapping algorithms, swarm behavior and networking, as well as general system integration and validation.
 78 | 
 79 | Conducting such complex simulations with high validity remains computationally demanding, and oftentimes outside the capacity of a modest local workstation. With the added complexity of the algorithms being benchmarked, we can soon exceed the capacity of even the most formidable servers. This is why a more distributed approach remains attractive for those who begin to encounter limitations of a centralized computing host. However, the added complication of building and maintaining a distributed testbed over a set of clusters has for a while required more time and effort than many smaller labs and businesses would have deemed appropriate to implement.
 80 | 
 81 | With the advancements and standardization of software containers, roboticists are primed to acquire a host of improved developer tooling for building and shipping software. To help alleviate the growing pains and technical challenges of adopting new practices, we have focused on providing an official resource for using Gazebo with these new technologies.
 82 | 
 83 | ## Deployment suggestions
 84 | 
 85 | The `gzserver` tags are designed to have a small footprint and simple configuration, thus only include required Gazebo dependencies. The standard messaging port `11345` is exposed to allow for client connections and messages API.
 86 | 
 87 | ### Volumes
 88 | 
 89 | Gazebo uses the `~/.gazebo/` directory for storing logs, models and scene info. If you wish to persist these files beyond the lifecycle of the containers which produced them, the `~/.gazebo/` folder can be mounted to an external volume on the host, or a derived image can specify volumes to be managed by the Docker engine. By default, the container runs as the `root` user, so `/root/.gazebo/` would be the full path to these files.
 90 | 
 91 | For example, if one wishes to use their own `.gazebo` folder that already resides in their local home directory, with a username of `ubuntu`, we can simple launch the container with an additional volume argument:
 92 | 
 93 | ```console
 94 | $ docker run -v "/home/ubuntu/.gazebo/:/root/.gazebo/" gazebo
 95 | ```
 96 | 
 97 | One thing to be careful about is that gzserver logs to files named `/root/.gazebo/server-<port>/*.log`, where `<port>` is the port number that server is listening on (11345 by default). If you run and mount multiple containers using the same default port and same host side directory, then they will collide and attempt writing to the same file. If you want to run multiple gzservers on the same docker host, then a bit more clever volume mounting of `~/.gazebo/` subfolders would be required.
 98 | 
 99 | ### Devices
100 | 
101 | As of Gazebo version 5.0, physics simulation under a headless instances of gzserver works fine. However some application may require image rendering camera views and ray traces for other sensor modalities. For Gazebo, this requires a running X server for rendering and capturing scenes. In addition, graphical hardware acceleration is also needed for reasonable realtime framerates. To this extent, mounting additional graphic devices into the container and linking to a running X server is required. In the interest of maintaining a general purpose and minimalistic image which is not tightly coupled to host system software and hardware, we do not include tags here with these additional requirements and instructions. You can however use this repo to build and customize your own images to fit your software/hardware configuration. The OSRF's Docker Hub organization profile contains a Gazebo repo at [osrf/gazebo](https://hub.docker.com/u/osrf/gazebo/) which is based on this repo but includes additional tags for these advanced use cases.
102 | 
103 | ### Development
104 | 
105 | If you not only wish to run Gazebo, but develop for it too, i.e. compile custom plug-ins or build upon messaging interfaces for ROS, this will require the development package included in the `libgazebo` tag. If you simply need to run Gazebo as a headless server, then the `gzserver` tag consist of a smaller image size.
106 | 
107 | ## Deployment example
108 | 
109 | In this short example, we'll spin up a new container running gazebo server, connect to it using a local gazebo client, then spawn a double inverted pendulum and record the simulation for later playback.
110 | 
111 | > First launch a gazebo server with a mounted volume for logging and name the container gazebo:
112 | 
113 | ```console
114 | $ docker run -d -v="/tmp/.gazebo/:/root/.gazebo/" --name=gazebo gazebo
115 | ```
116 | 
117 | > Now open a new bash session in the container using the same entrypoint to configure the environment. Then download the double_pendulum model and load it into the simulation.
118 | 
119 | ```console
120 | $ docker exec -it gazebo bash
121 | $ apt-get update && apt-get install -y curl
122 | $ curl -o double_pendulum.sdf http://models.gazebosim.org/double_pendulum_with_base/model-1_4.sdf
123 | $ gz model --model-name double_pendulum --spawn-file double_pendulum.sdf
124 | ```
125 | 
126 | > To start recording the running simulation, simply use [`gz log`](http://www.gazebosim.org/tutorials?tut=log_filtering&cat=tools_utilities) to do so.
127 | 
128 | ```console
129 | $ gz log --record 1
130 | ```
131 | 
132 | > After a few seconds, go ahead and stop recording by disabling the same flag.
133 | 
134 | ```console
135 | $ gz log --record 0
136 | ```
137 | 
138 | > To introspect our logged recording, we can navigate to log directory and use `gz log` to open and examine the motion and joint state of the pendulum. This will allow you to step through the poses of the pendulum links.
139 | 
140 | ```console
141 | $ cd ~/.gazebo/log/*/gzserver/
142 | $ gz log --step --hz 10 --filter *.pose/*.pose --file state.log
143 | ```
144 | 
145 | > If you have an equivalent release of Gazebo installed locally, you can connect to the gzserver inside the container using gzclient GUI by setting the address of the master URI to the containers public address.
146 | 
147 | ```console
148 | $ export GAZEBO_MASTER_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' gazebo)
149 | $ export GAZEBO_MASTER_URI=$GAZEBO_MASTER_IP:11345
150 | $ gzclient --verbose
151 | ```
152 | 
153 | > In the rendered OpenGL view with gzclient you should see the moving double pendulum created prior still oscillating. From here you can control or monitor state of the simulation using the graphical interface, add more pendulums, reset the world, make more logs, etc. To quit the simulation, close the gzclient window and stop the container.
154 | 
155 | ```console
156 | $ docker stop gazebo
157 | $ docker rm gazebo
158 | ```
159 | 
160 | > Even though our old gazebo container has been removed, we can still see that our record log has been preserved in the host volume directory.
161 | 
162 | ```console
163 | $ cd /tmp/.gazebo/log/
164 | $ ls
165 | ```
166 | 
167 | > Again, if you have an equivalent release of Gazebo installed on your host system, you can play back the simulation with gazebo by using the recorded log file.
168 | 
169 | ```console
170 | $ export GAZEBO_MASTER_IP=127.0.0.1
171 | $ export GAZEBO_MASTER_URI=$GAZEBO_MASTER_IP:11345
172 | $ cd /tmp/.gazebo/log/*/gzserver/
173 | $ gazebo --verbose --play state.log
174 | ```
175 | 
176 | # More Resources
177 | 
178 | [Gazebosim.org](http://www.gazebosim.org/): Main Gazebo website
179 | 
180 | [Answers](http://answers.gazebosim.org/): Find answers and ask questions
181 | 
182 | [Wiki](https://bitbucket.org/osrf/gazebo/wiki): General information and tutorials
183 | 
184 | [Mailing List](https://groups.google.com/a/osrfoundation.org/d/forum/gazebo): Join for news and announcements
185 | 
186 | [Simulation Models](https://bitbucket.org/osrf/gazebo_models/src): Robots, objects, and other simulation models
187 | 
188 | [Blog](http://wiki.gazebosim.org/blog.html): Stay up-to-date
189 | 
190 | [OSRF](http://www.osrfoundation.org/): Open Source Robotics Foundation
191 | 
192 | # License
193 | 
194 | Gazebo is open-source licensed under [Apache 2.0](http://opensource.org/licenses/Apache-2.0).
195 | 
196 | As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
197 | 
198 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `gazebo/` directory](https://github.com/docker-library/repo-info/tree/master/repos/gazebo).
199 | 
200 | As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
201 | 
```

--------------------------------------------------------------------------------
/monica/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <!--
  2 | 
  3 | ********************************************************************************
  4 | 
  5 | WARNING:
  6 | 
  7 |     DO NOT EDIT "monica/README.md"
  8 | 
  9 |     IT IS AUTO-GENERATED
 10 | 
 11 |     (from the other files in "monica/" combined with a set of templates)
 12 | 
 13 | ********************************************************************************
 14 | 
 15 | -->
 16 | 
 17 | # Quick reference
 18 | 
 19 | -	**Maintained by**:  
 20 | 	[Monica Team](https://github.com/monicahq/docker)
 21 | 
 22 | -	**Where to get help**:  
 23 | 	[the Docker Community Slack](https://dockr.ly/comm-slack), [Server Fault](https://serverfault.com/help/on-topic), [Unix & Linux](https://unix.stackexchange.com/help/on-topic), or [Stack Overflow](https://stackoverflow.com/help/on-topic)
 24 | 
 25 | # Supported tags and respective `Dockerfile` links
 26 | 
 27 | -	[`4.1.2-apache`, `4.1-apache`, `4-apache`, `apache`, `4.1.2`, `4.1`, `4`, `latest`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/4/apache/Dockerfile)
 28 | 
 29 | -	[`4.1.2-fpm-alpine`, `4.1-fpm-alpine`, `4-fpm-alpine`, `fpm-alpine`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/4/fpm-alpine/Dockerfile)
 30 | 
 31 | -	[`4.1.2-fpm`, `4.1-fpm`, `4-fpm`, `fpm`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/4/fpm/Dockerfile)
 32 | 
 33 | -	[`5.0.0-beta.5-apache`, `5.0.0-beta-apache`, `5.0-apache`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/5/apache/Dockerfile)
 34 | 
 35 | -	[`5.0.0-beta.5-fpm-alpine`, `5.0.0-beta-fpm-alpine`, `5.0-fpm-alpine`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/5/fpm-alpine/Dockerfile)
 36 | 
 37 | -	[`5.0.0-beta.5-fpm`, `5.0.0-beta-fpm`, `5.0-fpm`](https://github.com/monicahq/docker/blob/8c3bcc8d3ab01315ca762c995338083d71c5611e/5/fpm/Dockerfile)
 38 | 
 39 | # Quick reference (cont.)
 40 | 
 41 | -	**Where to file issues**:  
 42 | 	[https://github.com/monicahq/docker/issues](https://github.com/monicahq/docker/issues?q=)
 43 | 
 44 | -	**Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))  
 45 | 	[`amd64`](https://hub.docker.com/r/amd64/monica/), [`arm32v5`](https://hub.docker.com/r/arm32v5/monica/), [`arm32v6`](https://hub.docker.com/r/arm32v6/monica/), [`arm32v7`](https://hub.docker.com/r/arm32v7/monica/), [`arm64v8`](https://hub.docker.com/r/arm64v8/monica/), [`i386`](https://hub.docker.com/r/i386/monica/), [`mips64le`](https://hub.docker.com/r/mips64le/monica/), [`ppc64le`](https://hub.docker.com/r/ppc64le/monica/), [`riscv64`](https://hub.docker.com/r/riscv64/monica/), [`s390x`](https://hub.docker.com/r/s390x/monica/)
 46 | 
 47 | -	**Published image artifact details**:  
 48 | 	[repo-info repo's `repos/monica/` directory](https://github.com/docker-library/repo-info/blob/master/repos/monica) ([history](https://github.com/docker-library/repo-info/commits/master/repos/monica))  
 49 | 	(image metadata, transfer size, etc)
 50 | 
 51 | -	**Image updates**:  
 52 | 	[official-images repo's `library/monica` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fmonica)  
 53 | 	[official-images repo's `library/monica` file](https://github.com/docker-library/official-images/blob/master/library/monica) ([history](https://github.com/docker-library/official-images/commits/master/library/monica))
 54 | 
 55 | -	**Source of this description**:  
 56 | 	[docs repo's `monica/` directory](https://github.com/docker-library/docs/tree/master/monica) ([history](https://github.com/docker-library/docs/commits/master/monica))
 57 | 
 58 | # What is Monica?
 59 | 
 60 | Monica is a great open source personal relationship management system to organize the interactions with your loved ones.
 61 | 
 62 | ![logo](https://raw.githubusercontent.com/docker-library/docs/b962028212dbd77c9531dbcf8d5a81db79d4a735/monica/logo.svg?sanitize=true)
 63 | 
 64 | ## How to use this image
 65 | 
 66 | There are two versions of the image you may choose from.
 67 | 
 68 | The `apache` tag contains a full Monica installation with an apache webserver. This points to the default `latest` tag too.
 69 | 
 70 | The `fpm` tag contains a fastCGI-Process that serves the web pages. This image should be combined with a webserver used as a proxy, like apache or nginx.
 71 | 
 72 | ### Using the apache image
 73 | 
 74 | This image contains a webserver that exposes port 80. Run the container with:
 75 | 
 76 | ```console
 77 | docker run --name some-monica -d -p 8080:80 monica
 78 | ```
 79 | 
 80 | ### Using the fpm image
 81 | 
 82 | This image serves a fastCGI server that exposes port 9000. You may need an additional web server that can proxy requests to the fpm port 9000 of the container. Run this container with:
 83 | 
 84 | ```console
 85 | docker run --name some-monica -d -p 9000:9000 monica:fpm
 86 | ```
 87 | 
 88 | ### Using an external database
 89 | 
 90 | You'll need to setup an external database. Monica currently support MySQL/MariaDB database. You can also link a database container, e. g. `--link my-mysql:db`, and then use `db` as the database host on setup. More info is in the Docker Compose section.
 91 | 
 92 | ### Persistent data storage
 93 | 
 94 | To have a persistent storage for your datas, you may want to create volumes for your db, and for monica you will have to save the `/var/www/html/storage` directory.
 95 | 
 96 | Run a container with this named volume:
 97 | 
 98 | ```console
 99 | docker run -d \
100 |         -v monica_data:/var/www/html/storage \
101 |         monica
102 | ```
103 | 
104 | ### Run commands inside the container
105 | 
106 | Like every Laravel application, the `php artisan` command is very usefull for Monica. To run a command inside the container, run
107 | 
108 | ```console
109 | docker exec CONTAINER_ID php artisan COMMAND
110 | ```
111 | 
112 | Or for Docker Compose:
113 | 
114 | ```console
115 | docker compose exec monica php artisan COMMAND
116 | ```
117 | 
118 | where `monica` is the name of the service in your `compose.yaml` file.
119 | 
120 | ## Configuration using environment variables
121 | 
122 | The Monica image will use environment variables to setup the application. See [Monica documentation](https://github.com/monicahq/monica/blob/4.x/.env.example) for common used variables you should setup.
123 | 
124 | ## Running the image with Docker Compose
125 | 
126 | See some examples of Docker Compose possibilities in the [example section](https://github.com/monicahq/docker/blob/main/.examples).
127 | 
128 | ---
129 | 
130 | ### Apache version
131 | 
132 | This version will use the apache image and add a mysql container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy.
133 | 
134 | Make sure to pass in values for `APP_KEY` variable before you run this setup.
135 | 
136 | 1.	Create a `compose.yaml` file
137 | 
138 | 	```yaml
139 | 	services:
140 | 	  app:
141 | 	    image: monica
142 | 	    depends_on:
143 | 	      - db
144 | 	    ports:
145 | 	      - 8080:80
146 | 	    environment:
147 | 	      - APP_KEY= # Generate with `echo -n 'base64:'; openssl rand -base64 32`
148 | 	      - DB_HOST=db
149 | 	      - DB_USERNAME=monica
150 | 	      - DB_PASSWORD=secret
151 | 	    volumes:
152 | 	      - data:/var/www/html/storage
153 | 	    restart: always
154 | 
155 | 	  db:
156 | 	    image: mariadb:11
157 | 	    environment:
158 | 	      - MYSQL_RANDOM_ROOT_PASSWORD=true
159 | 	      - MYSQL_DATABASE=monica
160 | 	      - MYSQL_USER=monica
161 | 	      - MYSQL_PASSWORD=secret
162 | 	    volumes:
163 | 	      - mysql:/var/lib/mysql
164 | 	    restart: always
165 | 
166 | 	volumes:
167 | 	  data:
168 | 	    name: data
169 | 	  mysql:
170 | 	    name: mysql
171 | 	```
172 | 
173 | 2.	Set a value for `APP_KEY` variable before you run this setup. It should be a random 32-character string. You can for instance copy and paste the output of `echo -n 'base64:'; openssl rand -base64 32`:
174 | 
175 | 3.	Run
176 | 
177 | 	```console
178 | 	docker compose up -d
179 | 	```
180 | 
181 | 	Wait until all migrations are done and then access Monica at http://localhost:8080/ from your host system. If this looks ok, add your first user account.
182 | 
183 | 4.	Run this command once:
184 | 
185 | 	```console
186 | 	docker compose exec app php artisan setup:production
187 | 	```
188 | 
189 | ### FPM version
190 | 
191 | When using FPM image, you will need another container with a webserver to proxy http requests. In this example we use nginx with a basic container to do this.
192 | 
193 | 1.	Download `nginx.conf` and `Dockerfile` file for nginx image. An example can be found on the [`example section`](https://github.com/monicahq/docker/blob/main/.examples/full/fpm/web/)
194 | 
195 | 	```sh
196 | 	mkdir web
197 | 	curl -sSL https://raw.githubusercontent.com/monicahq/docker/main/.examples/full/web/nginx.conf -o web/nginx.conf
198 | 	curl -sSL https://raw.githubusercontent.com/monicahq/docker/main/.examples/full/web/Dockerfile -o web/Dockerfile
199 | 	```
200 | 
201 | 	The `web` container image should be pre-build before each deploy with: `docker compose build`.
202 | 
203 | 2.	Create a `compose.yaml` file
204 | 
205 | 	```yaml
206 | 	services:
207 | 	  app:
208 | 	    image: monica:fpm
209 | 	    depends_on:
210 | 	      - db
211 | 	    environment:
212 | 	      - APP_KEY= # Generate with `echo -n 'base64:'; openssl rand -base64 32`
213 | 	      - DB_HOST=db
214 | 	      - DB_USERNAME=monica
215 | 	      - DB_PASSWORD=secret
216 | 	    volumes:
217 | 	      - data:/var/www/html/storage
218 | 	    restart: always
219 | 
220 | 	  web:
221 | 	    build: ./web
222 | 	    ports:
223 | 	      - 8080:80
224 | 	    depends_on:
225 | 	      - app
226 | 	    volumes:
227 | 	      - data:/var/www/html/storage:ro
228 | 	    restart: always
229 | 
230 | 	  db:
231 | 	    image: mariadb:11
232 | 	    environment:
233 | 	      - MYSQL_RANDOM_ROOT_PASSWORD=true
234 | 	      - MYSQL_DATABASE=monica
235 | 	      - MYSQL_USER=monica
236 | 	      - MYSQL_PASSWORD=secret
237 | 	    volumes:
238 | 	      - mysql:/var/lib/mysql
239 | 	    restart: always
240 | 
241 | 	volumes:
242 | 	  data:
243 | 	    name: data
244 | 	  mysql:
245 | 	    name: mysql
246 | 	```
247 | 
248 | 3.	Set a value for `APP_KEY` variable before you run this setup. It should be a random 32-character string. You can for instance copy and paste the output of `echo -n 'base64:'; openssl rand -base64 32`:
249 | 
250 | 4.	Run
251 | 
252 | 	```console
253 | 	docker compose up -d
254 | 	```
255 | 
256 | 	Wait until all migrations are done and then access Monica at http://localhost:8080/ from your host system. If this looks ok, add your first user account.
257 | 
258 | 5.	Run this command once:
259 | 
260 | 	```console
261 | 	docker compose exec app php artisan setup:production
262 | 	```
263 | 
264 | ## Make Monica available from the internet
265 | 
266 | To expose your Monica instance for the internet, it's important to set environment variable `APP_ENV=production`. In this case `https` mode will be mandatory.
267 | 
268 | ### Using a proxy webserver on the host
269 | 
270 | One way to expose your Monica instance is to use a proxy webserver from your host with SSL capabilities. This is possible with a reverse proxy.
271 | 
272 | ### Using a proxy webserver container
273 | 
274 | See some examples of Docker Compose possibilities in the [example section](https://github.com/monicahq/docker/blob/main/.examples) to show how to a proxy webserver with ssl capabilities.
275 | 
276 | # Image Variants
277 | 
278 | The `monica` images come in many flavors, each designed for a specific use case.
279 | 
280 | ## `monica:<version>`
281 | 
282 | This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
283 | 
284 | ## `monica:<version>-alpine`
285 | 
286 | This image is based on the popular [Alpine Linux project](https://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.
287 | 
288 | This variant is useful when final image size being as small as possible is your primary concern. The main caveat to note is that it does use [musl libc](https://musl.libc.org) instead of [glibc and friends](https://www.etalabs.net/compare_libcs.html), so software will often run into issues depending on the depth of their libc requirements/assumptions. See [this Hacker News comment thread](https://news.ycombinator.com/item?id=10782897) for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images.
289 | 
290 | To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar).
291 | 
292 | # License
293 | 
294 | View [license information](https://github.com/monicahq/monica/blob/main/LICENSE.md) for the software contained in this image.
295 | 
296 | As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
297 | 
298 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `monica/` directory](https://github.com/docker-library/repo-info/tree/master/repos/monica).
299 | 
300 | As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
301 | 
```

--------------------------------------------------------------------------------
/debian/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <!--
  2 | 
  3 | ********************************************************************************
  4 | 
  5 | WARNING:
  6 | 
  7 |     DO NOT EDIT "debian/README.md"
  8 | 
  9 |     IT IS AUTO-GENERATED
 10 | 
 11 |     (from the other files in "debian/" combined with a set of templates)
 12 | 
 13 | ********************************************************************************
 14 | 
 15 | -->
 16 | 
 17 | # Quick reference
 18 | 
 19 | -	**Maintained by**:  
 20 | 	Debian Developers [tianon](https://qa.debian.org/developer.php?login=tianon) and [paultag](https://qa.debian.org/developer.php?login=paultag)
 21 | 
 22 | -	**Where to get help**:  
 23 | 	[the Docker Community Slack](https://dockr.ly/comm-slack), [Server Fault](https://serverfault.com/help/on-topic), [Unix & Linux](https://unix.stackexchange.com/help/on-topic), or [Stack Overflow](https://stackoverflow.com/help/on-topic)
 24 | 
 25 | # Supported tags and respective `Dockerfile` links
 26 | 
 27 | -	[`bookworm`, `bookworm-20250428`, `12.10`, `12`, `latest`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/bookworm/oci/index.json)
 28 | 
 29 | -	[`bookworm-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/bookworm/backports/Dockerfile)
 30 | 
 31 | -	[`bookworm-slim`, `bookworm-20250428-slim`, `12.10-slim`, `12-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/bookworm/slim/oci/index.json)
 32 | 
 33 | -	[`bullseye`, `bullseye-20250428`, `11.11`, `11`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/bullseye/oci/index.json)
 34 | 
 35 | -	[`bullseye-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/bullseye/backports/Dockerfile)
 36 | 
 37 | -	[`bullseye-slim`, `bullseye-20250428-slim`, `11.11-slim`, `11-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/bullseye/slim/oci/index.json)
 38 | 
 39 | -	[`experimental`, `experimental-20250428`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/experimental/Dockerfile)
 40 | 
 41 | -	[`oldstable`, `oldstable-20250428`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/oldstable/oci/index.json)
 42 | 
 43 | -	[`oldstable-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/oldstable/backports/Dockerfile)
 44 | 
 45 | -	[`oldstable-slim`, `oldstable-20250428-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/oldstable/slim/oci/index.json)
 46 | 
 47 | -	[`rc-buggy`, `rc-buggy-20250428`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/rc-buggy/Dockerfile)
 48 | 
 49 | -	[`sid`, `sid-20250428`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/sid/oci/index.json)
 50 | 
 51 | -	[`sid-slim`, `sid-20250428-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/sid/slim/oci/index.json)
 52 | 
 53 | -	[`stable`, `stable-20250428`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/stable/oci/index.json)
 54 | 
 55 | -	[`stable-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/stable/backports/Dockerfile)
 56 | 
 57 | -	[`stable-slim`, `stable-20250428-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/stable/slim/oci/index.json)
 58 | 
 59 | -	[`testing`, `testing-20250428`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/testing/oci/index.json)
 60 | 
 61 | -	[`testing-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/testing/backports/Dockerfile)
 62 | 
 63 | -	[`testing-slim`, `testing-20250428-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/testing/slim/oci/index.json)
 64 | 
 65 | -	[`trixie`, `trixie-20250428`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/trixie/oci/index.json)
 66 | 
 67 | -	[`trixie-backports`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/trixie/backports/Dockerfile)
 68 | 
 69 | -	[`trixie-slim`, `trixie-20250428-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/trixie/slim/oci/index.json)
 70 | 
 71 | -	[`unstable`, `unstable-20250428`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/unstable/oci/index.json)
 72 | 
 73 | -	[`unstable-slim`, `unstable-20250428-slim`](https://github.com/debuerreotype/docker-debian-artifacts/blob/b5c972271c90459c4941a6eefd4b4c38183878d3/unstable/slim/oci/index.json)
 74 | 
 75 | # Quick reference (cont.)
 76 | 
 77 | -	**Where to file issues**:  
 78 | 	[https://github.com/debuerreotype/docker-debian-artifacts/issues](https://github.com/debuerreotype/docker-debian-artifacts/issues?q=)
 79 | 
 80 | -	**Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))  
 81 | 	[`amd64`](https://hub.docker.com/r/amd64/debian/), [`arm32v5`](https://hub.docker.com/r/arm32v5/debian/), [`arm32v7`](https://hub.docker.com/r/arm32v7/debian/), [`arm64v8`](https://hub.docker.com/r/arm64v8/debian/), [`i386`](https://hub.docker.com/r/i386/debian/), [`mips64le`](https://hub.docker.com/r/mips64le/debian/), [`ppc64le`](https://hub.docker.com/r/ppc64le/debian/), [`riscv64`](https://hub.docker.com/r/riscv64/debian/), [`s390x`](https://hub.docker.com/r/s390x/debian/)
 82 | 
 83 | -	**Published image artifact details**:  
 84 | 	[repo-info repo's `repos/debian/` directory](https://github.com/docker-library/repo-info/blob/master/repos/debian) ([history](https://github.com/docker-library/repo-info/commits/master/repos/debian))  
 85 | 	(image metadata, transfer size, etc)
 86 | 
 87 | -	**Image updates**:  
 88 | 	[official-images repo's `library/debian` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fdebian)  
 89 | 	[official-images repo's `library/debian` file](https://github.com/docker-library/official-images/blob/master/library/debian) ([history](https://github.com/docker-library/official-images/commits/master/library/debian))
 90 | 
 91 | -	**Source of this description**:  
 92 | 	[docs repo's `debian/` directory](https://github.com/docker-library/docs/tree/master/debian) ([history](https://github.com/docker-library/docs/commits/master/debian))
 93 | 
 94 | # What is Debian?
 95 | 
 96 | Debian is an operating system which is composed primarily of free and open-source software, most of which is under the GNU General Public License, and developed by a group of individuals known as the Debian project. Debian is one of the most popular Linux distributions for personal computers and network servers, and has been used as a base for several other Linux distributions.
 97 | 
 98 | > [wikipedia.org/wiki/Debian](https://en.wikipedia.org/wiki/Debian)
 99 | 
100 | ![logo](https://raw.githubusercontent.com/docker-library/docs/b449be7df57e9ed9086bb5821bfb5d6cdc5d67a4/debian/logo.png)
101 | 
102 | # About this image
103 | 
104 | The images in this repository are intended to be as minimal as possible (because of the immutable/layered nature of containers, it's much easier to add than it is to remove). More specifically, they're built from [the "minbase" variant](https://manpages.debian.org/stable/debootstrap/debootstrap.8.en.html#variant=minbase_buildd_fakechroot), which only installs "required" packages, and thus creates the smallest possible footprint that is still "Debian" (as defined/managed by [the Release and FTP teams](https://www.debian.org/intro/organization#distribution) within the project).
105 | 
106 | The `debian:latest` tag will always point the latest stable release. Stable releases are also tagged with their version (ie, `debian:11` is an alias for `debian:bullseye`, `debian:10` is an alias for `debian:buster`, etc).
107 | 
108 | The rolling tags (`debian:stable`, `debian:testing`, etc) use the rolling suite names in their `/etc/apt/sources.list` file (ie, `deb http://deb.debian.org/debian testing main`).
109 | 
110 | The mirror of choice for these images is [the deb.debian.org CDN pointer/redirector](https://deb.debian.org) so that it's as reliable as possible for the largest subset of users (and is also the default mirror for `debootstrap` as of [2016-10-20](https://anonscm.debian.org/cgit/d-i/debootstrap.git/commit/?id=9e8bc60ad1ccf3a25ce7890526b70059f3e770de)). See the [deb.debian.org homepage](https://deb.debian.org) for more information.
111 | 
112 | If you find yourself needing a Debian release which is EOL (and thus only available from [archive.debian.org](http://archive.debian.org)), you should check out [the `debian/eol` image](https://hub.docker.com/r/debian/eol/), which includes tags for Debian releases as far back as Potato (Debian 2.2), the first release to fully utilize APT.
113 | 
114 | ## Locales
115 | 
116 | Given that it is a faithful "minbase" install of Debian, this image only includes the `C`, `C.UTF-8`, and `POSIX` locales by default. For most uses requiring a UTF-8 locale, `C.UTF-8` is likely sufficient (`-e LANG=C.UTF-8` or `ENV LANG C.UTF-8`).
117 | 
118 | For uses where that is not sufficient, other locales can be installed/generated via the `locales` package. [PostgreSQL has a good example of doing so](https://github.com/docker-library/postgres/blob/69bc540ecfffecce72d49fa7e4a46680350037f9/9.6/Dockerfile#L21-L24), copied below:
119 | 
120 | ```dockerfile
121 | RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
122 | 	&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
123 | ENV LANG en_US.utf8
124 | ```
125 | 
126 | ## How It's Made
127 | 
128 | The rootfs tarballs for this image are built using [the reproducible-Debian-rootfs tool, `debuerreotype`](https://github.com/debuerreotype/debuerreotype), with an explicit goal being that they are transparent and reproducible. Using the same toolchain, it should be possible to regenerate (clean-room!) the same tarballs used for building the official Debian images. [The `examples/debian.sh` script in that debuerreotype repository](https://github.com/debuerreotype/debuerreotype/blob/master/examples/debian.sh) (and the `debian-all.sh` companion/wrapper) is the canonical entrypoint used for creating the artifacts published in this image (via a process similar to the `docker-run.sh` included in the root of that repository).
129 | 
130 | Additionally, the scripts in [https://github.com/debuerreotype/docker-debian-artifacts](https://github.com/debuerreotype/docker-debian-artifacts) are used to create each tag's `Dockerfile` and collect architecture-specific tarballs into [`dist-ARCH` branches on the same repository](https://github.com/debuerreotype/docker-debian-artifacts/branches), which also contain extra metadata about the artifacts included in each build, such as explicit package versions included in the base image (`rootfs.manifest`), the exact snapshot.debian.org timestamp used for `debuerreotype` invocation (`rootfs.debuerreotype-epoch`), the `sources.list` found in the image (`rootfs.sources-list`) and the one used during image creation (`rootfs.sources-list-snapshot`), etc.
131 | 
132 | For convenience, the SHA256 checksum (and full build command) for each of the primary `rootfs.tar.xz` artifacts are also published at [docker.debian.net](https://docker.debian.net/).
133 | 
134 | # Image Variants
135 | 
136 | ## `debian:<suite>-slim`
137 | 
138 | These tags are an experiment in providing a slimmer base (removing some extra files that are normally not necessary within containers, such as man pages and documentation), and are definitely subject to change.
139 | 
140 | See the `debuerreotype-slimify` script (`debuerreotype` linked above) for more details about what gets removed during the "slimification" process.
141 | 
142 | # License
143 | 
144 | View [license information](https://www.debian.org/social_contract#guidelines) for the software contained in this image.
145 | 
146 | As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
147 | 
148 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `debian/` directory](https://github.com/docker-library/repo-info/tree/master/repos/debian).
149 | 
150 | As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
151 | 
```

--------------------------------------------------------------------------------
/clickhouse/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <!--
  2 | 
  3 | ********************************************************************************
  4 | 
  5 | WARNING:
  6 | 
  7 |     DO NOT EDIT "clickhouse/README.md"
  8 | 
  9 |     IT IS AUTO-GENERATED
 10 | 
 11 |     (from the other files in "clickhouse/" combined with a set of templates)
 12 | 
 13 | ********************************************************************************
 14 | 
 15 | -->
 16 | 
 17 | # Quick reference
 18 | 
 19 | -	**Maintained by**:  
 20 | 	[ClickHouse Inc.](https://github.com/ClickHouse/ClickHouse)
 21 | 
 22 | -	**Where to get help**:  
 23 | 	[the Docker Community Slack](https://dockr.ly/comm-slack), [Server Fault](https://serverfault.com/help/on-topic), [Unix & Linux](https://unix.stackexchange.com/help/on-topic), or [Stack Overflow](https://stackoverflow.com/help/on-topic)
 24 | 
 25 | # Supported tags and respective `Dockerfile` links
 26 | 
 27 | -	[`latest`, `jammy`, `25.4`, `25.4-jammy`, `25.4.2`, `25.4.2-jammy`, `25.4.2.31`, `25.4.2.31-jammy`](https://github.com/ClickHouse/docker-library/blob/5f600937076099ad4f7bee2e9e91d458a491dc8b/server/25.4.2.31/Dockerfile.ubuntu)
 28 | 
 29 | -	[`lts`, `lts-jammy`, `25.3`, `25.3-jammy`, `25.3.3`, `25.3.3-jammy`, `25.3.3.42`, `25.3.3.42-jammy`](https://github.com/ClickHouse/docker-library/blob/5f600937076099ad4f7bee2e9e91d458a491dc8b/server/25.3.3.42/Dockerfile.ubuntu)
 30 | 
 31 | -	[`25.2`, `25.2-jammy`, `25.2.2`, `25.2.2-jammy`, `25.2.2.39`, `25.2.2.39-jammy`](https://github.com/ClickHouse/docker-library/blob/5f600937076099ad4f7bee2e9e91d458a491dc8b/server/25.2.2.39/Dockerfile.ubuntu)
 32 | 
 33 | -	[`24.8`, `24.8-focal`, `24.8.14`, `24.8.14-focal`, `24.8.14.39`, `24.8.14.39-focal`](https://github.com/ClickHouse/docker-library/blob/5f600937076099ad4f7bee2e9e91d458a491dc8b/server/24.8.14.39/Dockerfile.ubuntu)
 34 | 
 35 | # Quick reference (cont.)
 36 | 
 37 | -	**Where to file issues**:  
 38 | 	[https://github.com/ClickHouse/ClickHouse/issues](https://github.com/ClickHouse/ClickHouse/issues?q=)
 39 | 
 40 | -	**Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))  
 41 | 	[`amd64`](https://hub.docker.com/r/amd64/clickhouse/), [`arm64v8`](https://hub.docker.com/r/arm64v8/clickhouse/)
 42 | 
 43 | -	**Published image artifact details**:  
 44 | 	[repo-info repo's `repos/clickhouse/` directory](https://github.com/docker-library/repo-info/blob/master/repos/clickhouse) ([history](https://github.com/docker-library/repo-info/commits/master/repos/clickhouse))  
 45 | 	(image metadata, transfer size, etc)
 46 | 
 47 | -	**Image updates**:  
 48 | 	[official-images repo's `library/clickhouse` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fclickhouse)  
 49 | 	[official-images repo's `library/clickhouse` file](https://github.com/docker-library/official-images/blob/master/library/clickhouse) ([history](https://github.com/docker-library/official-images/commits/master/library/clickhouse))
 50 | 
 51 | -	**Source of this description**:  
 52 | 	[docs repo's `clickhouse/` directory](https://github.com/docker-library/docs/tree/master/clickhouse) ([history](https://github.com/docker-library/docs/commits/master/clickhouse))
 53 | 
 54 | # ClickHouse Server Docker Image
 55 | 
 56 | ## What is ClickHouse?
 57 | 
 58 | ![logo](https://raw.githubusercontent.com/docker-library/docs/007e3209490145a9855f4825218a9a08753d425b/clickhouse/logo.svg?sanitize=true)
 59 | 
 60 | ClickHouse is an open-source column-oriented DBMS (columnar database management system) for online analytical processing (OLAP) that allows users to generate analytical reports using SQL queries in real-time.
 61 | 
 62 | ClickHouse works 100-1000x faster than traditional database management systems, and processes hundreds of millions to over a billion rows and tens of gigabytes of data per server per second. With a widespread user base around the globe, the technology has received praise for its reliability, ease of use, and fault tolerance.
 63 | 
 64 | For more information and documentation see https://clickhouse.com/.
 65 | 
 66 | ## Versions
 67 | 
 68 | -	The `latest` tag points to the latest release of the latest stable branch.
 69 | -	Branch tags like `22.2` point to the latest release of the corresponding branch.
 70 | -	Full version tags like `22.2.3` and `22.2.3.5` point to the corresponding release.
 71 | 
 72 | ### Compatibility
 73 | 
 74 | -	The amd64 image requires support for [SSE3 instructions](https://en.wikipedia.org/wiki/SSE3). Virtually all x86 CPUs after 2005 support SSE3.
 75 | -	The arm64 image requires support for the [ARMv8.2-A architecture](https://en.wikipedia.org/wiki/AArch64#ARMv8.2-A) and additionally the Load-Acquire RCpc register. The register is optional in version ARMv8.2-A and mandatory in [ARMv8.3-A](https://en.wikipedia.org/wiki/AArch64#ARMv8.3-A). Supported in Graviton >=2, Azure and GCP instances. Examples for unsupported devices are Raspberry Pi 4 (ARMv8.0-A) and Jetson AGX Xavier/Orin (ARMv8.2-A).
 76 | -	Since the Clickhouse 24.11 Ubuntu images started using `ubuntu:22.04` as its base image. It requires docker version >= `20.10.10` containing [patch](https://github.com/moby/moby/commit/977283509f75303bc6612665a04abf76ff1d2468). As a workaround you could use `docker run --security-opt seccomp=unconfined` instead, however that has security implications.
 77 | 
 78 | ## How to use this image
 79 | 
 80 | ### start server instance
 81 | 
 82 | ```bash
 83 | docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse
 84 | ```
 85 | 
 86 | By default, ClickHouse will be accessible only via the Docker network. See the **networking** section below.
 87 | 
 88 | By default, starting above server instance will be run as the `default` user without password.
 89 | 
 90 | ### connect to it from a native client
 91 | 
 92 | ```bash
 93 | docker run -it --rm --network=container:some-clickhouse-server --entrypoint clickhouse-client clickhouse
 94 | # OR
 95 | docker exec -it some-clickhouse-server clickhouse-client
 96 | ```
 97 | 
 98 | More information about the [ClickHouse client](https://clickhouse.com/docs/interfaces/cli/).
 99 | 
100 | ### connect to it using curl
101 | 
102 | ```bash
103 | echo "SELECT 'Hello, ClickHouse!'" | docker run -i --rm --network=container:some-clickhouse-server buildpack-deps:curl curl 'http://localhost:8123/?query=' -s --data-binary @-
104 | ```
105 | 
106 | More information about the [ClickHouse HTTP Interface](https://clickhouse.com/docs/interfaces/http/).
107 | 
108 | ### stopping / removing the container
109 | 
110 | ```bash
111 | docker stop some-clickhouse-server
112 | docker rm some-clickhouse-server
113 | ```
114 | 
115 | ### networking
116 | 
117 | > ⚠️ Note: the predefined user `default` does not have the network access unless the password is set, see "How to create default database and user on starting" and "Managing `default` user" below
118 | 
119 | You can expose your ClickHouse running in docker by [mapping a particular port](https://docs.docker.com/config/containers/container-networking/) from inside the container using host ports:
120 | 
121 | ```bash
122 | docker run -d -p 18123:8123 -p19000:9000 -e CLICKHOUSE_PASSWORD=changeme --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse
123 | echo 'SELECT version()' | curl 'http://localhost:18123/?password=changeme' --data-binary @-
124 | ```
125 | 
126 | `22.6.3.35`
127 | 
128 | Or by allowing the container to use [host ports directly](https://docs.docker.com/network/host/) using `--network=host` (also allows achieving better network performance):
129 | 
130 | ```bash
131 | docker run -d --network=host --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse
132 | echo 'SELECT version()' | curl 'http://localhost:8123/' --data-binary @-
133 | ```
134 | 
135 | `22.6.3.35`
136 | 
137 | > ⚠️ Note: the user `default` in the example above is available only for the localhost requests
138 | 
139 | ### Volumes
140 | 
141 | Typically you may want to mount the following folders inside your container to achieve persistency:
142 | 
143 | -	`/var/lib/clickhouse/` - main folder where ClickHouse stores the data
144 | -	`/var/log/clickhouse-server/` - logs
145 | 
146 | ```bash
147 | docker run -d \
148 |     -v "$PWD/ch_data:/var/lib/clickhouse/" \
149 |     -v "$PWD/ch_logs:/var/log/clickhouse-server/" \
150 |     --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse
151 | ```
152 | 
153 | You may also want to mount:
154 | 
155 | -	`/etc/clickhouse-server/config.d/*.xml` - files with server configuration adjustments
156 | -	`/etc/clickhouse-server/users.d/*.xml` - files with user settings adjustments
157 | -	`/docker-entrypoint-initdb.d/` - folder with database initialization scripts (see below).
158 | 
159 | ### Linux capabilities
160 | 
161 | ClickHouse has some advanced functionality, which requires enabling several [Linux capabilities](https://man7.org/linux/man-pages/man7/capabilities.7.html).
162 | 
163 | They are optional and can be enabled using the following [docker command-line arguments](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities):
164 | 
165 | ```bash
166 | docker run -d \
167 |     --cap-add=SYS_NICE --cap-add=NET_ADMIN --cap-add=IPC_LOCK \
168 |     --name some-clickhouse-server --ulimit nofile=262144:262144 clickhouse
169 | ```
170 | 
171 | Read more in [knowledge base](https://clickhouse.com/docs/knowledgebase/configure_cap_ipc_lock_and_cap_sys_nice_in_docker).
172 | 
173 | ## Configuration
174 | 
175 | The container exposes port 8123 for the [HTTP interface](https://clickhouse.com/docs/interfaces/http_interface/) and port 9000 for the [native client](https://clickhouse.com/docs/interfaces/tcp/).
176 | 
177 | ClickHouse configuration is represented with a file "config.xml" ([documentation](https://clickhouse.com/docs/operations/configuration_files/))
178 | 
179 | ### Start server instance with custom configuration
180 | 
181 | ```bash
182 | docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /path/to/your/config.xml:/etc/clickhouse-server/config.xml clickhouse
183 | ```
184 | 
185 | ### Start server as custom user
186 | 
187 | ```bash
188 | # $PWD/data/clickhouse should exist and be owned by current user
189 | docker run --rm --user "${UID}:${GID}" --name some-clickhouse-server --ulimit nofile=262144:262144 -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" clickhouse
190 | ```
191 | 
192 | When you use the image with local directories mounted, you probably want to specify the user to maintain the proper file ownership. Use the `--user` argument and mount `/var/lib/clickhouse` and `/var/log/clickhouse-server` inside the container. Otherwise, the image will complain and not start.
193 | 
194 | ### Start server from root (useful in case of enabled user namespace)
195 | 
196 | ```bash
197 | docker run --rm -e CLICKHOUSE_RUN_AS_ROOT=1 --name clickhouse-server-userns -v "$PWD/logs/clickhouse:/var/log/clickhouse-server" -v "$PWD/data/clickhouse:/var/lib/clickhouse" clickhouse
198 | ```
199 | 
200 | ### How to create default database and user on starting
201 | 
202 | Sometimes you may want to create a user (user named `default` is used by default) and database on a container start. You can do it using environment variables `CLICKHOUSE_DB`, `CLICKHOUSE_USER`, `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT` and `CLICKHOUSE_PASSWORD`:
203 | 
204 | ```bash
205 | docker run --rm -e CLICKHOUSE_DB=my_database -e CLICKHOUSE_USER=username -e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 -e CLICKHOUSE_PASSWORD=password -p 9000:9000/tcp clickhouse
206 | ```
207 | 
208 | #### Managing `default` user
209 | 
210 | The user `default` has disabled network access by default in the case none of `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`, or `CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT` are set.
211 | 
212 | There's a way to make `default` user insecurely available by setting environment variable `CLICKHOUSE_SKIP_USER_SETUP` to 1:
213 | 
214 | ```bash
215 | docker run --rm -e CLICKHOUSE_SKIP_USER_SETUP=1 -p 9000:9000/tcp clickhouse
216 | ```
217 | 
218 | ## How to extend this image
219 | 
220 | To perform additional initialization in an image derived from this one, add one or more `*.sql`, `*.sql.gz`, or `*.sh` scripts under `/docker-entrypoint-initdb.d`. After the entrypoint calls `initdb`, it will run any `*.sql` files, run any executable `*.sh` scripts, and source any non-executable `*.sh` scripts found in that directory to do further initialization before starting the service.  
221 | Also, you can provide environment variables `CLICKHOUSE_USER` & `CLICKHOUSE_PASSWORD` that will be used for clickhouse-client during initialization.
222 | 
223 | For example, to add an additional user and database, add the following to `/docker-entrypoint-initdb.d/init-db.sh`:
224 | 
225 | ```bash
226 | #!/bin/bash
227 | set -e
228 | 
229 | clickhouse client -n <<-EOSQL
230 |     CREATE DATABASE docker;
231 |     CREATE TABLE docker.docker (x Int32) ENGINE = Log;
232 | EOSQL
233 | ```
234 | 
235 | # License
236 | 
237 | View [license information](https://github.com/ClickHouse/ClickHouse/blob/master/LICENSE) for the software contained in this image.
238 | 
239 | As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
240 | 
241 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `clickhouse/` directory](https://github.com/docker-library/repo-info/tree/master/repos/clickhouse).
242 | 
243 | As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
244 | 
```

--------------------------------------------------------------------------------
/haskell/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <!--
  2 | 
  3 | ********************************************************************************
  4 | 
  5 | WARNING:
  6 | 
  7 |     DO NOT EDIT "haskell/README.md"
  8 | 
  9 |     IT IS AUTO-GENERATED
 10 | 
 11 |     (from the other files in "haskell/" combined with a set of templates)
 12 | 
 13 | ********************************************************************************
 14 | 
 15 | -->
 16 | 
 17 | # Quick reference
 18 | 
 19 | -	**Maintained by**:  
 20 | 	[the Docker Community](https://github.com/haskell/docker-haskell)
 21 | 
 22 | -	**Where to get help**:  
 23 | 	[the Docker Community Slack](https://dockr.ly/comm-slack), [Server Fault](https://serverfault.com/help/on-topic), [Unix & Linux](https://unix.stackexchange.com/help/on-topic), or [Stack Overflow](https://stackoverflow.com/help/on-topic)
 24 | 
 25 | # Supported tags and respective `Dockerfile` links
 26 | 
 27 | -	[`9.12.2-bookworm`, `9.12-bookworm`, `9-bookworm`, `bookworm`, `9.12.2`, `9.12`, `9`, `latest`](https://github.com/haskell/docker-haskell/blob/e7f56b0064dea2d53541ca85a9b2d2cb82cf8c13/9.12/bookworm/Dockerfile)
 28 | 
 29 | -	[`9.12.2-slim-bookworm`, `9.12-slim-bookworm`, `9-slim-bookworm`, `slim-bookworm`, `9-slim`, `slim`](https://github.com/haskell/docker-haskell/blob/e7f56b0064dea2d53541ca85a9b2d2cb82cf8c13/9.12/slim-bookworm/Dockerfile)
 30 | 
 31 | -	[`9.10.1-bullseye`, `9.10-bullseye`, `9-bullseye`, `bullseye`, `9.10.1`, `9.10`](https://github.com/haskell/docker-haskell/blob/e7f56b0064dea2d53541ca85a9b2d2cb82cf8c13/9.10/bullseye/Dockerfile)
 32 | 
 33 | -	[`9.10.1-slim-bullseye`, `9.10-slim-bullseye`, `9-slim-bullseye`, `slim-bullseye`](https://github.com/haskell/docker-haskell/blob/e7f56b0064dea2d53541ca85a9b2d2cb82cf8c13/9.10/slim-bullseye/Dockerfile)
 34 | 
 35 | -	[`9.8.4-bullseye`, `9.8-bullseye`, `9.8.4`, `9.8`](https://github.com/haskell/docker-haskell/blob/e7f56b0064dea2d53541ca85a9b2d2cb82cf8c13/9.8/bullseye/Dockerfile)
 36 | 
 37 | -	[`9.8.4-slim-bullseye`, `9.8-slim-bullseye`, `9.8.4-slim`, `9.8-slim`](https://github.com/haskell/docker-haskell/blob/e7f56b0064dea2d53541ca85a9b2d2cb82cf8c13/9.8/slim-bullseye/Dockerfile)
 38 | 
 39 | -	[`9.6.7-bullseye`, `9.6-bullseye`, `9.6.7`, `9.6`](https://github.com/haskell/docker-haskell/blob/e7f56b0064dea2d53541ca85a9b2d2cb82cf8c13/9.6/bullseye/Dockerfile)
 40 | 
 41 | -	[`9.6.7-slim-bullseye`, `9.6-slim-bullseye`, `9.6.7-slim`, `9.6-slim`](https://github.com/haskell/docker-haskell/blob/e7f56b0064dea2d53541ca85a9b2d2cb82cf8c13/9.6/slim-bullseye/Dockerfile)
 42 | 
 43 | # Quick reference (cont.)
 44 | 
 45 | -	**Where to file issues**:  
 46 | 	[https://github.com/haskell/docker-haskell/issues](https://github.com/haskell/docker-haskell/issues?q=)
 47 | 
 48 | -	**Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))  
 49 | 	[`amd64`](https://hub.docker.com/r/amd64/haskell/), [`arm64v8`](https://hub.docker.com/r/arm64v8/haskell/)
 50 | 
 51 | -	**Published image artifact details**:  
 52 | 	[repo-info repo's `repos/haskell/` directory](https://github.com/docker-library/repo-info/blob/master/repos/haskell) ([history](https://github.com/docker-library/repo-info/commits/master/repos/haskell))  
 53 | 	(image metadata, transfer size, etc)
 54 | 
 55 | -	**Image updates**:  
 56 | 	[official-images repo's `library/haskell` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fhaskell)  
 57 | 	[official-images repo's `library/haskell` file](https://github.com/docker-library/official-images/blob/master/library/haskell) ([history](https://github.com/docker-library/official-images/commits/master/library/haskell))
 58 | 
 59 | -	**Source of this description**:  
 60 | 	[docs repo's `haskell/` directory](https://github.com/docker-library/docs/tree/master/haskell) ([history](https://github.com/docker-library/docs/commits/master/haskell))
 61 | 
 62 | # What is Haskell?
 63 | 
 64 | [Haskell](http://www.haskell.org) is a [lazy](http://en.wikibooks.org/wiki/Haskell/Laziness), functional, statically-typed programming language with advanced type system features such as higher-rank, higher-kinded parametric [polymorphism](http://en.wikibooks.org/wiki/Haskell/Polymorphism), monadic [effects](http://en.wikibooks.org/wiki/Haskell/Understanding_monads/IO), generalized algebraic data types ([GADT](http://en.wikibooks.org/wiki/Haskell/GADT)s), flexible [type classes](http://en.wikibooks.org/wiki/Haskell/Advanced_type_classes), associated [type families](http://en.wikipedia.org/wiki/Type_family), and more.
 65 | 
 66 | Haskell's [`ghc`](http://www.haskell.org/ghc) is a [portable](https://gitlab.haskell.org/ghc/ghc/-/wikis/platforms), optimizing compiler with a foreign-function interface ([FFI](http://en.wikibooks.org/wiki/Haskell/FFI)), an LLVM backend, and sophisticated runtime support for [concurrency](http://en.wikibooks.org/wiki/Haskell/Concurrency), explicit/implicit [parallelism](https://simonmar.github.io/pages/pcph.html), runtime [profiling](http://www.haskell.org/haskellwiki/ThreadScope), etc. Other Haskell tools like `criterion`, `quickcheck`, `hpc`, and `haddock` provide advanced benchmarking, property-based testing, code coverage, and documentation generation.
 67 | 
 68 | A large number of production-quality Haskell libraries are available from [Hackage](https://hackage.haskell.org) in the form of [Cabal](https://www.haskell.org/cabal/) packages. The traditional `cabal` tool, or the more recent [`stack`](http://docs.haskellstack.org/en/stable/README.html) tool (available in `7.10.3`+) can be used to streamline working with Cabal packages.
 69 | 
 70 | ![logo](https://raw.githubusercontent.com/docker-library/docs/53e03448d5c2c33124ce24609f6179ddc94873f4/haskell/logo.png)
 71 | 
 72 | ## About this image
 73 | 
 74 | This image ships a minimal Haskell toolchain (`ghc` and `cabal-install`) as well as the `stack` tool ([https://www.haskellstack.org/](https://www.haskellstack.org/)) where possible. [`stack` does not currently support `ARM64`](https://github.com/commercialhaskell/stack/issues/2103) so is not included for that processor architecture.
 75 | 
 76 | ARM64 support is new and should be considered experimental at this stage. Support has been added as of `8.10.7`, `9.0.2` and `9.2.1`.
 77 | 
 78 | Note: The GHC developers do not support legacy release branches (i.e. `7.8.x`). Only the two most recent minor releases will receive updates or be shown in the "Supported tags ..." section at the top of this page.
 79 | 
 80 | Additionally, we aim to support the two most recent versions of Debian (`stable` and `oldstable`) as variants, with the most recent being the default if not specified.
 81 | 
 82 | > Note: Currently `stable` Debian is version 11 bullseye, however it is not yet supported by Haskell tooling. Until that time the default will remain Debian 10 buster. We have dropped support for Debian 9 stretch.
 83 | 
 84 | ## How to use this image
 85 | 
 86 | Start an interactive interpreter session with `ghci`:
 87 | 
 88 | ```console
 89 | $ docker run -it --rm haskell:9
 90 | GHCi, version 9.0.1: http://www.haskell.org/ghc/  :? for help
 91 | Prelude>
 92 | ```
 93 | 
 94 | Dockerize an application using `stack`:
 95 | 
 96 | ```dockerfile
 97 | FROM haskell:8.10
 98 | RUN stack install --resolver lts-17.14 pandoc citeproc
 99 | ENTRYPOINT ["pandoc"]
100 | ```
101 | 
102 | Dockerize an application using `cabal`:
103 | 
104 | ```dockerfile
105 | FROM haskell:8.10
106 | RUN cabal update && cabal install pandoc citeproc
107 | ENTRYPOINT ["pandoc"]
108 | ```
109 | 
110 | Iteratively develop a Haskell application with a `Dockerfile` utilizing the build cache:
111 | 
112 | ```dockerfile
113 | FROM haskell:8
114 | 
115 | WORKDIR /opt/example
116 | 
117 | RUN cabal update
118 | 
119 | # Add just the .cabal file to capture dependencies
120 | COPY ./example.cabal /opt/example/example.cabal
121 | 
122 | # Docker will cache this command as a layer, freeing us up to
123 | # modify source code without re-installing dependencies
124 | # (unless the .cabal file changes!)
125 | RUN cabal build --only-dependencies -j4
126 | 
127 | # Add and Install Application Code
128 | COPY . /opt/example
129 | RUN cabal install
130 | 
131 | CMD ["example"]
132 | ```
133 | 
134 | ### Considerations for `happy`, `alex`, etc
135 | 
136 | Some packages that also act as build dependencies, such as `happy` and `alex`, are no longer included in this image (as of `haskell:8.2.2` & `haskell:8.4.3`). There is a bootstrapping problem where one or more of these tools may be assumed to be available. If you run in to an error about missing dependencies that are not explicitly called out in a Cabal package, you will need to explicitly mark them for installation.
137 | 
138 | ### Considerations for Stack
139 | 
140 | The Stack tool is primarily designed to run directly on the host and comes with many advanced features such as GHC bootstrapping and Docker integration. Within the context of a container image, some of these features (`stack docker`) clash with the Docker abstraction and should be avoided.
141 | 
142 | Another common scenario that can be confusing is the default Stackage snapshot. A Stackage snapshot is a collection of Haskell packages pinned to specific versions for compatibility with a particular GHC release. When you ask Stack to resolve dependencies it refers to a particular snapshot via the `resolver` value. While you should be specifying a `resolver` explicitly in your projects, it is possible to run with the auto-generated default. That default is determined by the value obtained from the [upstream Stackage server](https://www.stackage.org/) at the time it was requested, and points to the latest "LTS" snapshot. If the snapshot refers to a different version of GHC than is provided in the Docker image, you may see a message like the following:
143 | 
144 | ```console
145 | Step 2/3 : RUN stack install pandoc
146 |  ---> Running in e20466d52060
147 | Writing implicit global project config file to: /root/.stack/global-project/stack.yaml
148 | Note: You can change the snapshot via the resolver field there.
149 | Using latest snapshot resolver: lts-11.11
150 | Downloading lts-11.11 build plan ...
151 | Downloaded lts-11.11 build plan.
152 | Compiler version mismatched, found ghc-8.4.3 (x86_64), but expected minor version match with ghc-8.2.2 (x86_64) (based on resolver setting in /root/.stack/global-project/stack.yaml).
153 | To install the correct GHC into /root/.stack/programs/x86_64-linux/, try running "stack setup" or use the "--install-ghc" flag.
154 | ```
155 | 
156 | In this case, the GHC release in the `haskell` Docker image got ahead of the default Stack resolver expected version of GHC. As the output suggests, manually setting the resolver (typically via `stack.yml`) is the recommended approach.
157 | 
158 | ```console
159 | Step 2/3 : RUN stack install --resolver ghc-8.4.3 pandoc
160 |  ---> Running in 0bd7f1fcc8b2
161 | Writing implicit global project config file to: /root/.stack/global-project/stack.yaml
162 | Note: You can change the snapshot via the resolver field there.
163 | Using resolver: ghc-8.4.3 specified on command line
164 | Updating package index Hackage (mirrored at https://s3.amazonaws.com/hackage.fpcomplete.com/) ...
165 | Selected mirror https://s3.amazonaws.com/hackage.fpcomplete.com/
166 | ```
167 | 
168 | The alternative to use `--install-ghc` doesn't make sense in a Docker image context, and hence the global `install-ghc` flag has been set to `false` (as of `haskell:8.2.2` & `haskell:8.4.3`) to avoid the default behavior of bootstrapping a new GHC in the container.
169 | 
170 | # Image Variants
171 | 
172 | The `haskell` images come in many flavors, each designed for a specific use case.
173 | 
174 | ## `haskell:<version>`
175 | 
176 | This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
177 | 
178 | Some of these tags may have names like bookworm or bullseye in them. These are the suite code names for releases of [Debian](https://wiki.debian.org/DebianReleases) and indicate which release the image is based on. If your image needs to install any additional packages beyond what comes with the image, you'll likely want to specify one of these explicitly to minimize breakage when there are new releases of Debian.
179 | 
180 | ## `haskell:<version>-slim`
181 | 
182 | This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run `ghc`, `cabal-install` and `stack`. In addition, [profiling support](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.html) is not included which saves ~ 700MB of space.
183 | 
184 | If image size is of concern, we recommend using the slim images.
185 | 
186 | # License
187 | 
188 | This image is licensed under the MIT License ([LICENSE](https://github.com/haskell/docker-haskell/blob/master/LICENSE)) and includes software licensed under BSD licenses: [Glasgow Haskell Compiler License](https://www.haskell.org/ghc/license), [Stack License](https://github.com/commercialhaskell/stack/blob/master/LICENSE).
189 | 
190 | As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
191 | 
192 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `haskell/` directory](https://github.com/docker-library/repo-info/tree/master/repos/haskell).
193 | 
194 | As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
195 | 
```

--------------------------------------------------------------------------------
/ruby/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | <!--
  2 | 
  3 | ********************************************************************************
  4 | 
  5 | WARNING:
  6 | 
  7 |     DO NOT EDIT "ruby/README.md"
  8 | 
  9 |     IT IS AUTO-GENERATED
 10 | 
 11 |     (from the other files in "ruby/" combined with a set of templates)
 12 | 
 13 | ********************************************************************************
 14 | 
 15 | -->
 16 | 
 17 | # Quick reference
 18 | 
 19 | -	**Maintained by**:  
 20 | 	[the Docker Community](https://github.com/docker-library/ruby)
 21 | 
 22 | -	**Where to get help**:  
 23 | 	[the Docker Community Slack](https://dockr.ly/comm-slack), [Server Fault](https://serverfault.com/help/on-topic), [Unix & Linux](https://unix.stackexchange.com/help/on-topic), or [Stack Overflow](https://stackoverflow.com/help/on-topic)
 24 | 
 25 | # Supported tags and respective `Dockerfile` links
 26 | 
 27 | -	[`3.5.0-preview1-bookworm`, `3.5-rc-bookworm`, `3.5.0-preview1`, `3.5-rc`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/bookworm/Dockerfile)
 28 | 
 29 | -	[`3.5.0-preview1-slim-bookworm`, `3.5-rc-slim-bookworm`, `3.5.0-preview1-slim`, `3.5-rc-slim`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/slim-bookworm/Dockerfile)
 30 | 
 31 | -	[`3.5.0-preview1-bullseye`, `3.5-rc-bullseye`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/bullseye/Dockerfile)
 32 | 
 33 | -	[`3.5.0-preview1-slim-bullseye`, `3.5-rc-slim-bullseye`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/slim-bullseye/Dockerfile)
 34 | 
 35 | -	[`3.5.0-preview1-alpine3.21`, `3.5-rc-alpine3.21`, `3.5.0-preview1-alpine`, `3.5-rc-alpine`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/alpine3.21/Dockerfile)
 36 | 
 37 | -	[`3.5.0-preview1-alpine3.20`, `3.5-rc-alpine3.20`](https://github.com/docker-library/ruby/blob/f0bf5f365387703579af740f915b6f32c4ee4c28/3.5-rc/alpine3.20/Dockerfile)
 38 | 
 39 | -	[`3.4.3-bookworm`, `3.4-bookworm`, `3-bookworm`, `bookworm`, `3.4.3`, `3.4`, `3`, `latest`](https://github.com/docker-library/ruby/blob/235b3ffb2060c837137b32ea55f75816f2f4e4c4/3.4/bookworm/Dockerfile)
 40 | 
 41 | -	[`3.4.3-slim-bookworm`, `3.4-slim-bookworm`, `3-slim-bookworm`, `slim-bookworm`, `3.4.3-slim`, `3.4-slim`, `3-slim`, `slim`](https://github.com/docker-library/ruby/blob/235b3ffb2060c837137b32ea55f75816f2f4e4c4/3.4/slim-bookworm/Dockerfile)
 42 | 
 43 | -	[`3.4.3-bullseye`, `3.4-bullseye`, `3-bullseye`, `bullseye`](https://github.com/docker-library/ruby/blob/235b3ffb2060c837137b32ea55f75816f2f4e4c4/3.4/bullseye/Dockerfile)
 44 | 
 45 | -	[`3.4.3-slim-bullseye`, `3.4-slim-bullseye`, `3-slim-bullseye`, `slim-bullseye`](https://github.com/docker-library/ruby/blob/235b3ffb2060c837137b32ea55f75816f2f4e4c4/3.4/slim-bullseye/Dockerfile)
 46 | 
 47 | -	[`3.4.3-alpine3.21`, `3.4-alpine3.21`, `3-alpine3.21`, `alpine3.21`, `3.4.3-alpine`, `3.4-alpine`, `3-alpine`, `alpine`](https://github.com/docker-library/ruby/blob/235b3ffb2060c837137b32ea55f75816f2f4e4c4/3.4/alpine3.21/Dockerfile)
 48 | 
 49 | -	[`3.4.3-alpine3.20`, `3.4-alpine3.20`, `3-alpine3.20`, `alpine3.20`](https://github.com/docker-library/ruby/blob/235b3ffb2060c837137b32ea55f75816f2f4e4c4/3.4/alpine3.20/Dockerfile)
 50 | 
 51 | -	[`3.3.8-bookworm`, `3.3-bookworm`, `3.3.8`, `3.3`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/bookworm/Dockerfile)
 52 | 
 53 | -	[`3.3.8-slim-bookworm`, `3.3-slim-bookworm`, `3.3.8-slim`, `3.3-slim`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/slim-bookworm/Dockerfile)
 54 | 
 55 | -	[`3.3.8-bullseye`, `3.3-bullseye`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/bullseye/Dockerfile)
 56 | 
 57 | -	[`3.3.8-slim-bullseye`, `3.3-slim-bullseye`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/slim-bullseye/Dockerfile)
 58 | 
 59 | -	[`3.3.8-alpine3.21`, `3.3-alpine3.21`, `3.3.8-alpine`, `3.3-alpine`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/alpine3.21/Dockerfile)
 60 | 
 61 | -	[`3.3.8-alpine3.20`, `3.3-alpine3.20`](https://github.com/docker-library/ruby/blob/fd391a024df0e026b289e60e7bf1ed8db0c41e48/3.3/alpine3.20/Dockerfile)
 62 | 
 63 | -	[`3.2.8-bookworm`, `3.2-bookworm`, `3.2.8`, `3.2`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/bookworm/Dockerfile)
 64 | 
 65 | -	[`3.2.8-slim-bookworm`, `3.2-slim-bookworm`, `3.2.8-slim`, `3.2-slim`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/slim-bookworm/Dockerfile)
 66 | 
 67 | -	[`3.2.8-bullseye`, `3.2-bullseye`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/bullseye/Dockerfile)
 68 | 
 69 | -	[`3.2.8-slim-bullseye`, `3.2-slim-bullseye`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/slim-bullseye/Dockerfile)
 70 | 
 71 | -	[`3.2.8-alpine3.21`, `3.2-alpine3.21`, `3.2.8-alpine`, `3.2-alpine`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/alpine3.21/Dockerfile)
 72 | 
 73 | -	[`3.2.8-alpine3.20`, `3.2-alpine3.20`](https://github.com/docker-library/ruby/blob/00121708b79e89ee4c477dbae3035467ebe2484e/3.2/alpine3.20/Dockerfile)
 74 | 
 75 | # Quick reference (cont.)
 76 | 
 77 | -	**Where to file issues**:  
 78 | 	[https://github.com/docker-library/ruby/issues](https://github.com/docker-library/ruby/issues?q=)
 79 | 
 80 | -	**Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))  
 81 | 	[`amd64`](https://hub.docker.com/r/amd64/ruby/), [`arm32v5`](https://hub.docker.com/r/arm32v5/ruby/), [`arm32v6`](https://hub.docker.com/r/arm32v6/ruby/), [`arm32v7`](https://hub.docker.com/r/arm32v7/ruby/), [`arm64v8`](https://hub.docker.com/r/arm64v8/ruby/), [`i386`](https://hub.docker.com/r/i386/ruby/), [`mips64le`](https://hub.docker.com/r/mips64le/ruby/), [`ppc64le`](https://hub.docker.com/r/ppc64le/ruby/), [`riscv64`](https://hub.docker.com/r/riscv64/ruby/), [`s390x`](https://hub.docker.com/r/s390x/ruby/)
 82 | 
 83 | -	**Published image artifact details**:  
 84 | 	[repo-info repo's `repos/ruby/` directory](https://github.com/docker-library/repo-info/blob/master/repos/ruby) ([history](https://github.com/docker-library/repo-info/commits/master/repos/ruby))  
 85 | 	(image metadata, transfer size, etc)
 86 | 
 87 | -	**Image updates**:  
 88 | 	[official-images repo's `library/ruby` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fruby)  
 89 | 	[official-images repo's `library/ruby` file](https://github.com/docker-library/official-images/blob/master/library/ruby) ([history](https://github.com/docker-library/official-images/commits/master/library/ruby))
 90 | 
 91 | -	**Source of this description**:  
 92 | 	[docs repo's `ruby/` directory](https://github.com/docker-library/docs/tree/master/ruby) ([history](https://github.com/docker-library/docs/commits/master/ruby))
 93 | 
 94 | # What is Ruby?
 95 | 
 96 | Ruby is a dynamic, reflective, object-oriented, general-purpose, open-source programming language. According to its authors, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp. It supports multiple programming paradigms, including functional, object-oriented, and imperative. It also has a dynamic type system and automatic memory management.
 97 | 
 98 | > [wikipedia.org/wiki/Ruby_(programming_language)](https://en.wikipedia.org/wiki/Ruby_%28programming_language%29)
 99 | 
100 | ![logo](https://raw.githubusercontent.com/docker-library/docs/01c12653951b2fe592c1f93a13b4e289ada0e3a1/ruby/logo.png)
101 | 
102 | # How to use this image
103 | 
104 | ## Create a `Dockerfile` in your Ruby app project
105 | 
106 | ```dockerfile
107 | FROM ruby:3.3
108 | 
109 | # throw errors if Gemfile has been modified since Gemfile.lock
110 | RUN bundle config --global frozen 1
111 | 
112 | WORKDIR /usr/src/app
113 | 
114 | COPY Gemfile Gemfile.lock ./
115 | RUN bundle install
116 | 
117 | COPY . .
118 | 
119 | CMD ["./your-daemon-or-script.rb"]
120 | ```
121 | 
122 | Put this file in the root of your app, next to the `Gemfile`.
123 | 
124 | You can then build and run the Ruby image:
125 | 
126 | ```console
127 | $ docker build -t my-ruby-app .
128 | $ docker run -it --name my-running-script my-ruby-app
129 | ```
130 | 
131 | ### Generate a `Gemfile.lock`
132 | 
133 | The above example `Dockerfile` expects a `Gemfile.lock` in your app directory. This `docker run` will help you generate one. Run it in the root of your app, next to the `Gemfile`:
134 | 
135 | ```console
136 | $ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app ruby:3.3 bundle install
137 | ```
138 | 
139 | ## Run a single Ruby script
140 | 
141 | For many simple, single file projects, you may find it inconvenient to write a complete `Dockerfile`. In such cases, you can run a Ruby script by using the Ruby Docker image directly:
142 | 
143 | ```console
144 | $ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp ruby:3.3 ruby your-daemon-or-script.rb
145 | ```
146 | 
147 | ## Encoding
148 | 
149 | By default, Ruby inherits the locale of the environment in which it is run. For most users running Ruby on their desktop systems, that means it's likely using some variation of `*.UTF-8` (`en_US.UTF-8`, etc). In Docker however, the default locale is `C`, which can have unexpected results. If your application needs to interact with UTF-8, it is recommended that you explicitly adjust the locale of your image/container via `-e LANG=C.UTF-8` or `ENV LANG C.UTF-8`.
150 | 
151 | ## Image assumptions
152 | 
153 | This image sets several environment variables which change the behavior of Bundler and Gem for running a single application within a container (especially in such a way that the development sources of the application can be bind-mounted inside a container and not have `.bundle` from the host interfere with the proper functionality of the container).
154 | 
155 | The environment variables we set are canonically listed in the above-linked `Dockerfiles`, but some of them include `GEM_HOME`, `BUNDLE_SILENCE_ROOT_WARNING`, and `BUNDLE_APP_CONFIG`.
156 | 
157 | If these cause issues for your use case (running multiple Ruby applications in a single container, for example), setting them to the empty string *should* be sufficient for undoing their behavior.
158 | 
159 | # Image Variants
160 | 
161 | The `ruby` images come in many flavors, each designed for a specific use case.
162 | 
163 | ## `ruby:<version>`
164 | 
165 | This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
166 | 
167 | Some of these tags may have names like bookworm or bullseye in them. These are the suite code names for releases of [Debian](https://wiki.debian.org/DebianReleases) and indicate which release the image is based on. If your image needs to install any additional packages beyond what comes with the image, you'll likely want to specify one of these explicitly to minimize breakage when there are new releases of Debian.
168 | 
169 | This tag is based off of [`buildpack-deps`](https://hub.docker.com/_/buildpack-deps/). `buildpack-deps` is designed for the average user of Docker who has many images on their system. It, by design, has a large number of extremely common Debian packages. This reduces the number of packages that images that derive from it need to install, thus reducing the overall size of all images on your system.
170 | 
171 | ## `ruby:<version>-slim`
172 | 
173 | This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run `ruby`. Unless you are working in an environment where *only* the `ruby` image will be deployed and you have space constraints, we highly recommend using the default image of this repository.
174 | 
175 | ## `ruby:<version>-alpine`
176 | 
177 | This image is based on the popular [Alpine Linux project](https://alpinelinux.org), available in [the `alpine` official image](https://hub.docker.com/_/alpine). Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.
178 | 
179 | This variant is useful when final image size being as small as possible is your primary concern. The main caveat to note is that it does use [musl libc](https://musl.libc.org) instead of [glibc and friends](https://www.etalabs.net/compare_libcs.html), so software will often run into issues depending on the depth of their libc requirements/assumptions. See [this Hacker News comment thread](https://news.ycombinator.com/item?id=10782897) for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images.
180 | 
181 | To minimize image size, it's uncommon for additional related tools (such as `git` or `bash`) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the [`alpine` image description](https://hub.docker.com/_/alpine/) for examples of how to install packages if you are unfamiliar).
182 | 
183 | # License
184 | 
185 | View [license information](https://www.ruby-lang.org/en/about/license.txt) for the software contained in this image.
186 | 
187 | As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
188 | 
189 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `ruby/` directory](https://github.com/docker-library/repo-info/tree/master/repos/ruby).
190 | 
191 | As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
192 | 
```
Page 6/25FirstPrevNextLast