This is page 10 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
--------------------------------------------------------------------------------
/amazoncorretto/README.md:
--------------------------------------------------------------------------------
```markdown
1 | <!--
2 |
3 | ********************************************************************************
4 |
5 | WARNING:
6 |
7 | DO NOT EDIT "amazoncorretto/README.md"
8 |
9 | IT IS AUTO-GENERATED
10 |
11 | (from the other files in "amazoncorretto/" combined with a set of templates)
12 |
13 | ********************************************************************************
14 |
15 | -->
16 |
17 | # Quick reference
18 |
19 | - **Maintained by**:
20 | [the AWS JDK team](https://github.com/corretto/corretto-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 | - [`8`, `8u452`, `8u452-al2`, `8-al2-full`, `8-al2-jdk`, `8-al2-generic`, `8u452-al2-generic`, `8-al2-generic-jdk`, `latest`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jdk/al2-generic/Dockerfile)
28 |
29 | - [`8-al2023`, `8u452-al2023`, `8-al2023-jdk`, `8-al2023-jre`, `8u452-al2023-jre`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jdk/al2023/Dockerfile)
30 |
31 | - [`8-al2-native-jre`, `8u452-al2-native-jre`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jre/al2/Dockerfile)
32 |
33 | - [`8-al2-native-jdk`, `8u452-al2-native-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jdk/al2/Dockerfile)
34 |
35 | - [`8-alpine3.19`, `8u452-alpine3.19`, `8-alpine3.19-full`, `8-alpine3.19-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jdk/alpine/3.19/Dockerfile)
36 |
37 | - [`8-alpine3.19-jre`, `8u452-alpine3.19-jre`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jre/alpine/3.19/Dockerfile)
38 |
39 | - [`8-alpine3.20`, `8u452-alpine3.20`, `8-alpine3.20-full`, `8-alpine3.20-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jdk/alpine/3.20/Dockerfile)
40 |
41 | - [`8-alpine3.20-jre`, `8u452-alpine3.20-jre`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jre/alpine/3.20/Dockerfile)
42 |
43 | - [`8-alpine3.21`, `8u452-alpine3.21`, `8-alpine3.21-full`, `8-alpine3.21-jdk`, `8-alpine`, `8u452-alpine`, `8-alpine-full`, `8-alpine-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jdk/alpine/3.21/Dockerfile)
44 |
45 | - [`8-alpine3.21-jre`, `8u452-alpine3.21-jre`, `8-alpine-jre`, `8u452-alpine-jre`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/8/jre/alpine/3.21/Dockerfile)
46 |
47 | - [`11`, `11.0.27`, `11.0.27-al2`, `11-al2-full`, `11-al2-jdk`, `11-al2-generic`, `11.0.27-al2-generic`, `11-al2-generic-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/jdk/al2-generic/Dockerfile)
48 |
49 | - [`11-al2023`, `11.0.27-al2023`, `11-al2023-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/jdk/al2023/Dockerfile)
50 |
51 | - [`11-al2023-headless`, `11.0.27-al2023-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/headless/al2023/Dockerfile)
52 |
53 | - [`11-al2023-headful`, `11.0.27-al2023-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/headful/al2023/Dockerfile)
54 |
55 | - [`11-al2-native-headless`, `11.0.27-al2-native-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/headless/al2/Dockerfile)
56 |
57 | - [`11-al2-native-jdk`, `11.0.27-al2-native-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/jdk/al2/Dockerfile)
58 |
59 | - [`11-alpine3.19`, `11.0.27-alpine3.19`, `11-alpine3.19-full`, `11-alpine3.19-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/jdk/alpine/3.19/Dockerfile)
60 |
61 | - [`11-alpine3.20`, `11.0.27-alpine3.20`, `11-alpine3.20-full`, `11-alpine3.20-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/jdk/alpine/3.20/Dockerfile)
62 |
63 | - [`11-alpine3.21`, `11.0.27-alpine3.21`, `11-alpine3.21-full`, `11-alpine3.21-jdk`, `11-alpine`, `11.0.27-alpine`, `11-alpine-full`, `11-alpine-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/11/jdk/alpine/3.21/Dockerfile)
64 |
65 | - [`17`, `17.0.15`, `17.0.15-al2`, `17-al2-full`, `17-al2-jdk`, `17-al2-generic`, `17.0.15-al2-generic`, `17-al2-generic-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/jdk/al2-generic/Dockerfile)
66 |
67 | - [`17-al2023`, `17.0.15-al2023`, `17-al2023-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/jdk/al2023/Dockerfile)
68 |
69 | - [`17-al2023-headless`, `17.0.15-al2023-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/headless/al2023/Dockerfile)
70 |
71 | - [`17-al2023-headful`, `17.0.15-al2023-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/headful/al2023/Dockerfile)
72 |
73 | - [`17-al2-native-headless`, `17.0.15-al2-native-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/headless/al2/Dockerfile)
74 |
75 | - [`17-al2-native-headful`, `17.0.15-al2-native-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/headful/al2/Dockerfile)
76 |
77 | - [`17-al2-native-jdk`, `17.0.15-al2-native-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/jdk/al2/Dockerfile)
78 |
79 | - [`17-alpine3.19`, `17.0.15-alpine3.19`, `17-alpine3.19-full`, `17-alpine3.19-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/jdk/alpine/3.19/Dockerfile)
80 |
81 | - [`17-alpine3.20`, `17.0.15-alpine3.20`, `17-alpine3.20-full`, `17-alpine3.20-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/jdk/alpine/3.20/Dockerfile)
82 |
83 | - [`17-alpine3.21`, `17.0.15-alpine3.21`, `17-alpine3.21-full`, `17-alpine3.21-jdk`, `17-alpine`, `17.0.15-alpine`, `17-alpine-full`, `17-alpine-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/17/jdk/alpine/3.21/Dockerfile)
84 |
85 | - [`21`, `21.0.7`, `21.0.7-al2`, `21-al2-full`, `21-al2-jdk`, `21-al2-generic`, `21.0.7-al2-generic`, `21-al2-generic-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/jdk/al2-generic/Dockerfile)
86 |
87 | - [`21-al2023`, `21.0.7-al2023`, `21-al2023-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/jdk/al2023/Dockerfile)
88 |
89 | - [`21-al2023-headless`, `21.0.7-al2023-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/headless/al2023/Dockerfile)
90 |
91 | - [`21-al2023-headful`, `21.0.7-al2023-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/headful/al2023/Dockerfile)
92 |
93 | - [`21-alpine3.19`, `21.0.7-alpine3.19`, `21-alpine3.19-full`, `21-alpine3.19-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/jdk/alpine/3.19/Dockerfile)
94 |
95 | - [`21-alpine3.20`, `21.0.7-alpine3.20`, `21-alpine3.20-full`, `21-alpine3.20-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/jdk/alpine/3.20/Dockerfile)
96 |
97 | - [`21-alpine3.21`, `21.0.7-alpine3.21`, `21-alpine3.21-full`, `21-alpine3.21-jdk`, `21-alpine`, `21.0.7-alpine`, `21-alpine-full`, `21-alpine-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/21/jdk/alpine/3.21/Dockerfile)
98 |
99 | - [`24-al2023`, `24.0.1-al2023`, `24-al2023-jdk`, `24`, `24-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/24/jdk/al2023/Dockerfile)
100 |
101 | - [`24-al2023-headless`, `24.0.1-al2023-headless`, `24-headless`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/24/headless/al2023/Dockerfile)
102 |
103 | - [`24-al2023-headful`, `24.0.1-al2023-headful`, `24-headful`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/24/headful/al2023/Dockerfile)
104 |
105 | - [`24-alpine3.19`, `24.0.1-alpine3.19`, `24-alpine3.19-full`, `24-alpine3.19-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/24/jdk/alpine/3.19/Dockerfile)
106 |
107 | - [`24-alpine3.20`, `24.0.1-alpine3.20`, `24-alpine3.20-full`, `24-alpine3.20-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/24/jdk/alpine/3.20/Dockerfile)
108 |
109 | - [`24-alpine3.21`, `24.0.1-alpine3.21`, `24-alpine3.21-full`, `24-alpine3.21-jdk`, `24-alpine`, `24.0.1-alpine`, `24-alpine-full`, `24-alpine-jdk`](https://github.com/corretto/corretto-docker/blob/90f5eeb1cfe4c83eb0bc36e4c79b62700b5a45a9/24/jdk/alpine/3.21/Dockerfile)
110 |
111 | # Quick reference (cont.)
112 |
113 | - **Where to file issues**:
114 | [https://github.com/corretto/corretto-docker/issues](https://github.com/corretto/corretto-docker/issues?q=)
115 |
116 | - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))
117 | [`amd64`](https://hub.docker.com/r/amd64/amazoncorretto/), [`arm64v8`](https://hub.docker.com/r/arm64v8/amazoncorretto/)
118 |
119 | - **Published image artifact details**:
120 | [repo-info repo's `repos/amazoncorretto/` directory](https://github.com/docker-library/repo-info/blob/master/repos/amazoncorretto) ([history](https://github.com/docker-library/repo-info/commits/master/repos/amazoncorretto))
121 | (image metadata, transfer size, etc)
122 |
123 | - **Image updates**:
124 | [official-images repo's `library/amazoncorretto` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Famazoncorretto)
125 | [official-images repo's `library/amazoncorretto` file](https://github.com/docker-library/official-images/blob/master/library/amazoncorretto) ([history](https://github.com/docker-library/official-images/commits/master/library/amazoncorretto))
126 |
127 | - **Source of this description**:
128 | [docs repo's `amazoncorretto/` directory](https://github.com/docker-library/docs/tree/master/amazoncorretto) ([history](https://github.com/docker-library/docs/commits/master/amazoncorretto))
129 |
130 | ### What is Amazon Corretto?
131 |
132 | Corretto is a binary distribution of the Open Java Development Kit (OpenJDK) with long-term support from Amazon. Corretto is certified using the Java Technical Compatibility Kit (TCK) to ensure it meets the Java SE standard and is available on Linux, Windows, and macOS. It includes [patches from Amazon](https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/patches.html) that have proven useful in running our own services.
133 |
134 | 
135 |
136 | ### Why should I use Corretto?
137 |
138 | Corretto is a reliable binary distribution of OpenJDK with the assurance of long-term support provided at no cost to you. Amazon runs Corretto internally on thousands of production services. Every modification we make to Corretto fixes or mitigates a problem we found running OpenJDK. Amazon also plans to apply urgent fixes (including security) when they are available and ready to use, outside of the regular quarterly cycle.
139 |
140 | ### How is Corretto different from OpenJDK?
141 |
142 | Corretto is a distribution of Open JDK with patches included by Amazon that are not yet integrated in the corresponding OpenJDK update projects. We focus on patches that improve performance or stability in OpenJDK, chosen based on Amazon's observations running large services.
143 |
144 | ### What kinds of patches does Amazon intend to include in Corretto?
145 |
146 | Patches will include security fixes, performance enhancements (e.g., speeding up frequently used functions), garbage collection scheduling, and preventing out-of-memory situations, as well as improved monitoring, reporting, and thread management.
147 |
148 | ### Is there any cost associated with using Corretto?
149 |
150 | Corretto is distributed by Amazon under an Open Source license at no cost to you. It is licensed under the terms of the GNU Public License version 2 with the Class Path Exception (GPLv2 with CPE). Amazon does not charge for its use or distribution.
151 |
152 | ### What is included in Corretto's long-term support?
153 |
154 | Amazon will provide security updates for Corretto 8 until at least June 2023. Updates are planned to be released quarterly. Corretto 11, corresponding to OpenJDK 11, will be available during the first half of 2019. Amazon will support Corretto 11 with quarterly updates until at least August 2024.
155 |
156 | ### Can I use Corretto as a drop-in replacement for other JDKs?
157 |
158 | Corretto is designed as a drop-in replacement for all Java SE distributions unless you are using features (e.g., Java Flight Recorder) not available in OpenJDK. Once Corretto binaries are installed on a host and correctly invoked to run your Java applications (e.g., using the alternatives command on Linux), existing command-line options, tuning parameters, monitoring, and anything else in place will continue to work as before.
159 |
160 | ### Why does security scanner show that a docker image has a CVE?
161 |
162 | If a security scanner reports that an amazoncorretto image includes a CVE, the first recommended action is to pull an updated version of this image.
163 |
164 | If no updated image is available, run the appropriate command to update packages for the platform, ie. run "apk -U upgrade" for Alpine or "yum update -y --security" for AmazonLinux in your Dockerfiles or systems to resolve the issue immediately.
165 |
166 | If no updated package is available, please treat this as a potential security issue and follow [these instructions](https://aws.amazon.com/security/vulnerability-reporting/) or email AWS security directly at [[email protected]](mailto:[email protected]).
167 |
168 | It is the responsibility of the base docker image supplier to provide timely security updates to images and packages. The amazoncorretto images are automatically rebuilt when a new base image is made available, but we do not make changes to our Dockerfiles to pull in one-off package updates. If a new base image has not yet been made generally available by a base docker image maintainer, please contact that maintainer to request that the issue be addressed.
169 |
170 | Note that there are multiple reasons why a CVE may appear to be present in a docker image, as explained in the [docker library FAQs](https://github.com/docker-library/faq/tree/73f10b0daf2fb8e7b38efaccc0e90b3510919d51#why-does-my-security-scanner-show-that-an-image-has-cves).
171 |
172 | # Image Variants
173 |
174 | The `amazoncorretto` images come in many flavors, each designed for a specific use case.
175 |
176 | ## `amazoncorretto:<version>`
177 |
178 | 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.
179 |
180 | ## `amazoncorretto:<version>-alpine`
181 |
182 | 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.
183 |
184 | 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.
185 |
186 | 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).
187 |
188 | # License
189 |
190 | Amazon Corretto is released under the same open source license as OpenJDK, which is licensed under the GNU Public License version 2 with the Class Path Exception ([GPLv2 with CPE](https://openjdk.java.net/legal/gplv2+ce.html)).
191 |
192 | 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).
193 |
194 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `amazoncorretto/` directory](https://github.com/docker-library/repo-info/tree/master/repos/amazoncorretto).
195 |
196 | 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.
197 |
```
--------------------------------------------------------------------------------
/maven/README.md:
--------------------------------------------------------------------------------
```markdown
1 | <!--
2 |
3 | ********************************************************************************
4 |
5 | WARNING:
6 |
7 | DO NOT EDIT "maven/README.md"
8 |
9 | IT IS AUTO-GENERATED
10 |
11 | (from the other files in "maven/" combined with a set of templates)
12 |
13 | ********************************************************************************
14 |
15 | -->
16 |
17 | # Quick reference
18 |
19 | - **Maintained by**:
20 | [Carlos Sanchez](https://github.com/carlossg/docker-maven)
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.9.9-eclipse-temurin-11`, `3.9-eclipse-temurin-11`, `3-eclipse-temurin-11`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-11/Dockerfile)
28 |
29 | - [`3.9.9-eclipse-temurin-11-alpine`, `3.9-eclipse-temurin-11-alpine`, `3-eclipse-temurin-11-alpine`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-11-alpine/Dockerfile)
30 |
31 | - [`3.9.9-eclipse-temurin-11-focal`, `3.9-eclipse-temurin-11-focal`, `3-eclipse-temurin-11-focal`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-11-focal/Dockerfile)
32 |
33 | - [`3.9.9-eclipse-temurin-17`, `3.9-eclipse-temurin-17`, `3-eclipse-temurin-17`](https://github.com/carlossg/docker-maven/blob/289ad67772f6dfad22c5362b863a29ec7373f501/eclipse-temurin-17/Dockerfile)
34 |
35 | - [`3.9.9-eclipse-temurin-17-alpine`, `3.9-eclipse-temurin-17-alpine`, `3-eclipse-temurin-17-alpine`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-17-alpine/Dockerfile)
36 |
37 | - [`3.9.9-eclipse-temurin-17-focal`, `3.9-eclipse-temurin-17-focal`, `3-eclipse-temurin-17-focal`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-17-focal/Dockerfile)
38 |
39 | - [`3.9.9-eclipse-temurin-21`, `3.9.9`, `3.9.9-eclipse-temurin`, `3.9-eclipse-temurin-21`, `3.9`, `3.9-eclipse-temurin`, `3-eclipse-temurin-21`, `3`, `latest`, `3-eclipse-temurin`, `eclipse-temurin`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-21/Dockerfile)
40 |
41 | - [`3.9.9-eclipse-temurin-21-alpine`, `3.9-eclipse-temurin-21-alpine`, `3-eclipse-temurin-21-alpine`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-21-alpine/Dockerfile)
42 |
43 | - [`3.9.9-eclipse-temurin-21-jammy`, `3.9-eclipse-temurin-21-jammy`, `3-eclipse-temurin-21-jammy`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-21-jammy/Dockerfile)
44 |
45 | - [`3.9.9-eclipse-temurin-24`, `3.9-eclipse-temurin-24`, `3-eclipse-temurin-24`](https://github.com/carlossg/docker-maven/blob/289ad67772f6dfad22c5362b863a29ec7373f501/eclipse-temurin-24/Dockerfile)
46 |
47 | - [`3.9.9-eclipse-temurin-24-alpine`, `3.9-eclipse-temurin-24-alpine`, `3-eclipse-temurin-24-alpine`](https://github.com/carlossg/docker-maven/blob/289ad67772f6dfad22c5362b863a29ec7373f501/eclipse-temurin-24-alpine/Dockerfile)
48 |
49 | - [`3.9.9-eclipse-temurin-24-noble`, `3.9-eclipse-temurin-24-noble`, `3-eclipse-temurin-24-noble`](https://github.com/carlossg/docker-maven/blob/289ad67772f6dfad22c5362b863a29ec7373f501/eclipse-temurin-24-noble/Dockerfile)
50 |
51 | - [`3.9.9-eclipse-temurin-8`, `3.9-eclipse-temurin-8`, `3-eclipse-temurin-8`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-8/Dockerfile)
52 |
53 | - [`3.9.9-eclipse-temurin-8-alpine`, `3.9-eclipse-temurin-8-alpine`, `3-eclipse-temurin-8-alpine`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-8-alpine/Dockerfile)
54 |
55 | - [`3.9.9-eclipse-temurin-8-focal`, `3.9-eclipse-temurin-8-focal`, `3-eclipse-temurin-8-focal`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/eclipse-temurin-8-focal/Dockerfile)
56 |
57 | - [`3.9.9-ibmjava-8`, `3.9.9-ibmjava`, `3.9-ibmjava-8`, `3.9-ibmjava`, `3-ibmjava-8`, `3-ibmjava`, `ibmjava`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/ibmjava-8/Dockerfile)
58 |
59 | - [`3.9.9-ibm-semeru-11-focal`, `3.9-ibm-semeru-11-focal`, `3-ibm-semeru-11-focal`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/ibm-semeru-11-focal/Dockerfile)
60 |
61 | - [`3.9.9-ibm-semeru-17-focal`, `3.9-ibm-semeru-17-focal`, `3-ibm-semeru-17-focal`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/ibm-semeru-17-focal/Dockerfile)
62 |
63 | - [`3.9.9-ibm-semeru-21-jammy`, `3.9-ibm-semeru-21-jammy`, `3-ibm-semeru-21-jammy`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/ibm-semeru-21-jammy/Dockerfile)
64 |
65 | - [`3.9.9-amazoncorretto-11`, `3.9-amazoncorretto-11`, `3-amazoncorretto-11`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-11/Dockerfile)
66 |
67 | - [`3.9.9-amazoncorretto-11-al2023`, `3.9-amazoncorretto-11-al2023`, `3-amazoncorretto-11-al2023`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-11-al2023/Dockerfile)
68 |
69 | - [`3.9.9-amazoncorretto-11-alpine`, `3.9-amazoncorretto-11-alpine`, `3-amazoncorretto-11-alpine`](https://github.com/carlossg/docker-maven/blob/8db2ffe029454a39edce973ce06b21fcab59a4d5/amazoncorretto-11-alpine/Dockerfile)
70 |
71 | - [`3.9.9-amazoncorretto-11-debian`, `3.9.9-amazoncorretto-11-debian-bookworm`, `3.9-amazoncorretto-11-debian`, `3.9-amazoncorretto-11-debian-bookworm`, `3-amazoncorretto-11-debian`, `3-amazoncorretto-11-debian-bookworm`](https://github.com/carlossg/docker-maven/blob/b5ddd7190544dd759fb71bf56b6105ffcf4ee6ad/amazoncorretto-11-debian/Dockerfile)
72 |
73 | - [`3.9.9-amazoncorretto-17`, `3.9.9-amazoncorretto`, `3.9-amazoncorretto-17`, `3.9-amazoncorretto`, `3-amazoncorretto-17`, `3-amazoncorretto`, `amazoncorretto`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-17/Dockerfile)
74 |
75 | - [`3.9.9-amazoncorretto-17-al2023`, `3.9-amazoncorretto-17-al2023`, `3-amazoncorretto-17-al2023`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-17-al2023/Dockerfile)
76 |
77 | - [`3.9.9-amazoncorretto-17-alpine`, `3.9-amazoncorretto-17-alpine`, `3-amazoncorretto-17-alpine`](https://github.com/carlossg/docker-maven/blob/8db2ffe029454a39edce973ce06b21fcab59a4d5/amazoncorretto-17-alpine/Dockerfile)
78 |
79 | - [`3.9.9-amazoncorretto-17-debian`, `3.9.9-amazoncorretto-17-debian-bookworm`, `3.9-amazoncorretto-17-debian`, `3.9-amazoncorretto-17-debian-bookworm`, `3-amazoncorretto-17-debian`, `3-amazoncorretto-17-debian-bookworm`](https://github.com/carlossg/docker-maven/blob/b5ddd7190544dd759fb71bf56b6105ffcf4ee6ad/amazoncorretto-17-debian/Dockerfile)
80 |
81 | - [`3.9.9-amazoncorretto-21`, `3.9-amazoncorretto-21`, `3-amazoncorretto-21`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-21/Dockerfile)
82 |
83 | - [`3.9.9-amazoncorretto-21-al2023`, `3.9-amazoncorretto-21-al2023`, `3-amazoncorretto-21-al2023`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-21-al2023/Dockerfile)
84 |
85 | - [`3.9.9-amazoncorretto-21-alpine`, `3.9-amazoncorretto-21-alpine`, `3-amazoncorretto-21-alpine`](https://github.com/carlossg/docker-maven/blob/8db2ffe029454a39edce973ce06b21fcab59a4d5/amazoncorretto-21-alpine/Dockerfile)
86 |
87 | - [`3.9.9-amazoncorretto-21-debian`, `3.9.9-amazoncorretto-21-debian-bookworm`, `3.9-amazoncorretto-21-debian`, `3.9-amazoncorretto-21-debian-bookworm`, `3-amazoncorretto-21-debian`, `3-amazoncorretto-21-debian-bookworm`](https://github.com/carlossg/docker-maven/blob/b5ddd7190544dd759fb71bf56b6105ffcf4ee6ad/amazoncorretto-21-debian/Dockerfile)
88 |
89 | - [`3.9.9-amazoncorretto-24`, `3.9-amazoncorretto-24`, `3-amazoncorretto-24`](https://github.com/carlossg/docker-maven/blob/289ad67772f6dfad22c5362b863a29ec7373f501/amazoncorretto-24/Dockerfile)
90 |
91 | - [`3.9.9-amazoncorretto-24-alpine`, `3.9-amazoncorretto-24-alpine`, `3-amazoncorretto-24-alpine`](https://github.com/carlossg/docker-maven/blob/289ad67772f6dfad22c5362b863a29ec7373f501/amazoncorretto-24-alpine/Dockerfile)
92 |
93 | - [`3.9.9-amazoncorretto-8`, `3.9-amazoncorretto-8`, `3-amazoncorretto-8`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-8/Dockerfile)
94 |
95 | - [`3.9.9-amazoncorretto-8-al2023`, `3.9-amazoncorretto-8-al2023`, `3-amazoncorretto-8-al2023`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/amazoncorretto-8-al2023/Dockerfile)
96 |
97 | - [`3.9.9-amazoncorretto-8-alpine`, `3.9-amazoncorretto-8-alpine`, `3-amazoncorretto-8-alpine`](https://github.com/carlossg/docker-maven/blob/8db2ffe029454a39edce973ce06b21fcab59a4d5/amazoncorretto-8-alpine/Dockerfile)
98 |
99 | - [`3.9.9-amazoncorretto-8-debian`, `3.9.9-amazoncorretto-8-debian-bookworm`, `3.9-amazoncorretto-8-debian`, `3.9-amazoncorretto-8-debian-bookworm`, `3-amazoncorretto-8-debian`, `3-amazoncorretto-8-debian-bookworm`](https://github.com/carlossg/docker-maven/blob/b5ddd7190544dd759fb71bf56b6105ffcf4ee6ad/amazoncorretto-8-debian/Dockerfile)
100 |
101 | - [`3.9.9-sapmachine-11`, `3.9-sapmachine-11`, `3-sapmachine-11`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/sapmachine-11/Dockerfile)
102 |
103 | - [`3.9.9-sapmachine-17`, `3.9-sapmachine-17`, `3-sapmachine-17`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/sapmachine-17/Dockerfile)
104 |
105 | - [`3.9.9-sapmachine-21`, `3.9.9-sapmachine`, `3.9-sapmachine-21`, `3.9-sapmachine`, `3-sapmachine-21`, `3-sapmachine`, `sapmachine`](https://github.com/carlossg/docker-maven/blob/8cfe24baffa5b250f7bb2d31ce233fc28f3c4f20/sapmachine-21/Dockerfile)
106 |
107 | - [`3.9.9-sapmachine-24`, `3.9-sapmachine-24`, `3-sapmachine-24`](https://github.com/carlossg/docker-maven/blob/289ad67772f6dfad22c5362b863a29ec7373f501/sapmachine-24/Dockerfile)
108 |
109 | # Quick reference (cont.)
110 |
111 | - **Where to file issues**:
112 | [https://github.com/carlossg/docker-maven/issues](https://github.com/carlossg/docker-maven/issues?q=)
113 |
114 | - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))
115 | [`amd64`](https://hub.docker.com/r/amd64/maven/), [`arm32v7`](https://hub.docker.com/r/arm32v7/maven/), [`arm64v8`](https://hub.docker.com/r/arm64v8/maven/), [`ppc64le`](https://hub.docker.com/r/ppc64le/maven/), [`riscv64`](https://hub.docker.com/r/riscv64/maven/), [`s390x`](https://hub.docker.com/r/s390x/maven/)
116 |
117 | - **Published image artifact details**:
118 | [repo-info repo's `repos/maven/` directory](https://github.com/docker-library/repo-info/blob/master/repos/maven) ([history](https://github.com/docker-library/repo-info/commits/master/repos/maven))
119 | (image metadata, transfer size, etc)
120 |
121 | - **Image updates**:
122 | [official-images repo's `library/maven` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fmaven)
123 | [official-images repo's `library/maven` file](https://github.com/docker-library/official-images/blob/master/library/maven) ([history](https://github.com/docker-library/official-images/commits/master/library/maven))
124 |
125 | - **Source of this description**:
126 | [docs repo's `maven/` directory](https://github.com/docker-library/docs/tree/master/maven) ([history](https://github.com/docker-library/docs/commits/master/maven))
127 |
128 | # What is Maven?
129 |
130 | [Apache Maven](http://maven.apache.org) is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
131 |
132 | 
133 |
134 | # How to use this image
135 |
136 | You can run a Maven project by using the Maven Docker image directly, passing a Maven command to `docker run`:
137 |
138 | ```console
139 | $ docker run -it --rm --name my-maven-project -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.3-jdk-8 mvn clean install
140 | ```
141 |
142 | ## Building local Docker image (optional)
143 |
144 | This is a base image that you can extend, so it has the bare minimum packages needed. If you add custom package(s) to the `Dockerfile`, then you can build your local Docker image like this:
145 |
146 | ```console
147 | $ docker build --tag my_local_maven:3.5.2-jdk-8 .
148 | ```
149 |
150 | # Reusing the Maven local repository
151 |
152 | The local Maven repository can be reused across containers by creating a volume and mounting it in `/root/.m2`.
153 |
154 | ```console
155 | $ docker volume create --name maven-repo
156 | $ docker run -it -v maven-repo:/root/.m2 maven mvn archetype:generate # will download artifacts
157 | $ docker run -it -v maven-repo:/root/.m2 maven mvn archetype:generate # will reuse downloaded artifacts
158 | ```
159 |
160 | Or you can just use your home .m2 cache directory that you share e.g. with your Eclipse/IDEA:
161 |
162 | ```console
163 | $ docker run -it --rm -v "$PWD":/usr/src/mymaven -v "$HOME/.m2":/root/.m2 -v "$PWD/target:/usr/src/mymaven/target" -w /usr/src/mymaven maven mvn clean package
164 | ```
165 |
166 | # Packaging a local repository with the image
167 |
168 | The `$MAVEN_CONFIG` dir (default to `/root/.m2`) could be configured as a volume so anything copied there in a Dockerfile at build time is lost. For that reason the dir `/usr/share/maven/ref/` exists, and anything in that directory will be copied on container startup to `$MAVEN_CONFIG`.
169 |
170 | To create a pre-packaged repository, create a `pom.xml` with the dependencies you need and use this in your `Dockerfile`. `/usr/share/maven/ref/settings-docker.xml` is a settings file that changes the local repository to `/usr/share/maven/ref/repository`, but you can use your own settings file as long as it uses `/usr/share/maven/ref/repository` as local repo.
171 |
172 | ```dockerfile
173 | COPY pom.xml /tmp/pom.xml
174 | RUN mvn -B -f /tmp/pom.xml -s /usr/share/maven/ref/settings-docker.xml dependency:resolve
175 | ```
176 |
177 | To add your custom `settings.xml` file to the image use
178 |
179 | ```dockerfile
180 | COPY settings.xml /usr/share/maven/ref/
181 | ```
182 |
183 | For an example, check the `tests` dir
184 |
185 | # Running as non-root
186 |
187 | Maven needs the user home to download artifacts to, and if the user does not exist in the image an extra `user.home` Java property needs to be set.
188 |
189 | For example, to run as user `1000` mounting the host' Maven repo
190 |
191 | ```console
192 | $ docker run -v ~/.m2:/var/maven/.m2 -ti --rm -u 1000 -e MAVEN_CONFIG=/var/maven/.m2 maven mvn -Duser.home=/var/maven archetype:generate
193 | ```
194 |
195 | # Image Variants
196 |
197 | The `maven` images come in many flavors, each designed for a specific use case.
198 |
199 | ## `maven:<version>`
200 |
201 | 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.
202 |
203 | Some of these tags may have names like bookworm 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.
204 |
205 | Some of these tags may have names like focal, jammy, or noble in them. These are the suite code names for releases of [Ubuntu](https://wiki.ubuntu.com/Releases) 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 Ubuntu.
206 |
207 | ## `maven:<version>-alpine`
208 |
209 | 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.
210 |
211 | 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.
212 |
213 | 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).
214 |
215 | # License
216 |
217 | View [license information](https://www.apache.org/licenses/) for the software contained in this image.
218 |
219 | 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).
220 |
221 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `maven/` directory](https://github.com/docker-library/repo-info/tree/master/repos/maven).
222 |
223 | 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.
224 |
```
--------------------------------------------------------------------------------
/docker/README.md:
--------------------------------------------------------------------------------
```markdown
1 | <!--
2 |
3 | ********************************************************************************
4 |
5 | WARNING:
6 |
7 | DO NOT EDIT "docker/README.md"
8 |
9 | IT IS AUTO-GENERATED
10 |
11 | (from the other files in "docker/" combined with a set of templates)
12 |
13 | ********************************************************************************
14 |
15 | -->
16 |
17 | # Quick reference
18 |
19 | - **Maintained by**:
20 | [Tianon (of the Docker Project)](https://github.com/docker-library/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 | (See ["What's the difference between 'Shared' and 'Simple' tags?" in the FAQ](https://github.com/docker-library/faq#whats-the-difference-between-shared-and-simple-tags).)
28 |
29 | ## Simple Tags
30 |
31 | - [`28.1.1-cli`, `28.1-cli`, `28-cli`, `cli`, `28.1.1-cli-alpine3.21`](https://github.com/docker-library/docker/blob/3dba50562769bdfb0ed701bcfc2bbbde4304c72a/28/cli/Dockerfile)
32 |
33 | - [`28.1.1-dind`, `28.1-dind`, `28-dind`, `dind`, `28.1.1-dind-alpine3.21`, `28.1.1`, `28.1`, `28`, `latest`, `28.1.1-alpine3.21`](https://github.com/docker-library/docker/blob/84fa8e735cf571bd16f439e8431ad23913dd19f4/28/dind/Dockerfile)
34 |
35 | - [`28.1.1-dind-rootless`, `28.1-dind-rootless`, `28-dind-rootless`, `dind-rootless`](https://github.com/docker-library/docker/blob/84fa8e735cf571bd16f439e8431ad23913dd19f4/28/dind-rootless/Dockerfile)
36 |
37 | - [`28.1.1-windowsservercore-ltsc2025`, `28.1-windowsservercore-ltsc2025`, `28-windowsservercore-ltsc2025`, `windowsservercore-ltsc2025`](https://github.com/docker-library/docker/blob/3dba50562769bdfb0ed701bcfc2bbbde4304c72a/28/windows/windowsservercore-ltsc2025/Dockerfile)
38 |
39 | - [`28.1.1-windowsservercore-ltsc2022`, `28.1-windowsservercore-ltsc2022`, `28-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/3dba50562769bdfb0ed701bcfc2bbbde4304c72a/28/windows/windowsservercore-ltsc2022/Dockerfile)
40 |
41 | - [`28.1.1-windowsservercore-1809`, `28.1-windowsservercore-1809`, `28-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/docker-library/docker/blob/3dba50562769bdfb0ed701bcfc2bbbde4304c72a/28/windows/windowsservercore-1809/Dockerfile)
42 |
43 | ## Shared Tags
44 |
45 | - `28.1.1-windowsservercore`, `28.1-windowsservercore`, `28-windowsservercore`, `windowsservercore`:
46 |
47 | - [`28.1.1-windowsservercore-ltsc2025`](https://github.com/docker-library/docker/blob/3dba50562769bdfb0ed701bcfc2bbbde4304c72a/28/windows/windowsservercore-ltsc2025/Dockerfile)
48 | - [`28.1.1-windowsservercore-ltsc2022`](https://github.com/docker-library/docker/blob/3dba50562769bdfb0ed701bcfc2bbbde4304c72a/28/windows/windowsservercore-ltsc2022/Dockerfile)
49 | - [`28.1.1-windowsservercore-1809`](https://github.com/docker-library/docker/blob/3dba50562769bdfb0ed701bcfc2bbbde4304c72a/28/windows/windowsservercore-1809/Dockerfile)
50 |
51 | # Quick reference (cont.)
52 |
53 | - **Where to file issues**:
54 | [https://github.com/docker-library/docker/issues](https://github.com/docker-library/docker/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/docker/), [`arm32v6`](https://hub.docker.com/r/arm32v6/docker/), [`arm32v7`](https://hub.docker.com/r/arm32v7/docker/), [`arm64v8`](https://hub.docker.com/r/arm64v8/docker/), [`windows-amd64`](https://hub.docker.com/r/winamd64/docker/)
58 |
59 | - **Published image artifact details**:
60 | [repo-info repo's `repos/docker/` directory](https://github.com/docker-library/repo-info/blob/master/repos/docker) ([history](https://github.com/docker-library/repo-info/commits/master/repos/docker))
61 | (image metadata, transfer size, etc)
62 |
63 | - **Image updates**:
64 | [official-images repo's `library/docker` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fdocker)
65 | [official-images repo's `library/docker` file](https://github.com/docker-library/official-images/blob/master/library/docker) ([history](https://github.com/docker-library/official-images/commits/master/library/docker))
66 |
67 | - **Source of this description**:
68 | [docs repo's `docker/` directory](https://github.com/docker-library/docs/tree/master/docker) ([history](https://github.com/docker-library/docs/commits/master/docker))
69 |
70 | # What is Docker in Docker?
71 |
72 | Although running Docker inside Docker is generally not recommended, there are some legitimate use cases, such as development of Docker itself.
73 |
74 | *Docker is an open-source project that automates the deployment of applications inside software containers, by providing an additional layer of abstraction and automation of operating-system-level virtualization on Linux, Mac OS and Windows.*
75 |
76 | > [wikipedia.org/wiki/Docker_(software)](https://en.wikipedia.org/wiki/Docker_%28software%29)
77 |
78 | 
79 |
80 | Before running Docker-in-Docker, be sure to read through [Jérôme Petazzoni's excellent blog post on the subject](https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/), where he outlines some of the pros and cons of doing so (and some nasty gotchas you might run into).
81 |
82 | If you are still convinced that you need Docker-in-Docker and not just access to a container's host Docker server, then read on.
83 |
84 | # How to use this image
85 |
86 | [](https://asciinema.org/a/378669)
87 |
88 | ## TLS
89 |
90 | Starting in 18.09+, the `dind` variants of this image will automatically generate TLS certificates in the directory specified by the `DOCKER_TLS_CERTDIR` environment variable.
91 |
92 | **Warning:** in 18.09, this behavior is disabled by default (for compatibility). If you use `--network=host`, shared network namespaces (as in Kubernetes pods), or otherwise have network access to the container (including containers started within the `dind` instance via their gateway interface), this is a potential security issue (which can lead to access to the host system, for example). It is recommended to enable TLS by setting the variable to an appropriate value (`-e DOCKER_TLS_CERTDIR=/certs` or similar). In 19.03+, this behavior is enabled by default.
93 |
94 | When enabled, the Docker daemon will be started with `--host=tcp://0.0.0.0:2376 --tlsverify ...` (and when disabled, the Docker daemon will be started with `--host=tcp://0.0.0.0:2375`).
95 |
96 | Inside the directory specified by `DOCKER_TLS_CERTDIR`, the entrypoint scripts will create/use three directories:
97 |
98 | - `ca`: the certificate authority files (`cert.pem`, `key.pem`)
99 | - `server`: the `dockerd` (daemon) certificate files (`cert.pem`, `ca.pem`, `key.pem`)
100 | - `client`: the `docker` (client) certificate files (`cert.pem`, `ca.pem`, `key.pem`; suitable for `DOCKER_CERT_PATH`)
101 |
102 | In order to make use of this functionality from a "client" container, at least the `client` subdirectory of the `$DOCKER_TLS_CERTDIR` directory needs to be shared (as illustrated in the following examples).
103 |
104 | To disable this image behavior, simply override the container command or entrypoint to run `dockerd` directly (`... docker:dind dockerd ...` or `... --entrypoint dockerd docker:dind ...`).
105 |
106 | ## Start a daemon instance
107 |
108 | ```console
109 | $ docker run --privileged --name some-docker -d \
110 | --network some-network --network-alias docker \
111 | -e DOCKER_TLS_CERTDIR=/certs \
112 | -v some-docker-certs-ca:/certs/ca \
113 | -v some-docker-certs-client:/certs/client \
114 | docker:dind
115 | ```
116 |
117 | **Note:** `--privileged` is required for Docker-in-Docker to function properly, but it should be used with care as it provides full access to the host environment, as explained [in the relevant section of the Docker documentation](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities).
118 |
119 | ## Connect to it from a second container
120 |
121 | ```console
122 | $ docker run --rm --network some-network \
123 | -e DOCKER_TLS_CERTDIR=/certs \
124 | -v some-docker-certs-client:/certs/client:ro \
125 | docker:latest version
126 | Client: Docker Engine - Community
127 | Version: 18.09.8
128 | API version: 1.39
129 | Go version: go1.10.8
130 | Git commit: 0dd43dd87f
131 | Built: Wed Jul 17 17:38:58 2019
132 | OS/Arch: linux/amd64
133 | Experimental: false
134 |
135 | Server: Docker Engine - Community
136 | Engine:
137 | Version: 18.09.8
138 | API version: 1.39 (minimum version 1.12)
139 | Go version: go1.10.8
140 | Git commit: 0dd43dd87f
141 | Built: Wed Jul 17 17:48:49 2019
142 | OS/Arch: linux/amd64
143 | Experimental: false
144 | ```
145 |
146 | ```console
147 | $ docker run -it --rm --network some-network \
148 | -e DOCKER_TLS_CERTDIR=/certs \
149 | -v some-docker-certs-client:/certs/client:ro \
150 | docker:latest sh
151 | / # docker version
152 | Client: Docker Engine - Community
153 | Version: 18.09.8
154 | API version: 1.39
155 | Go version: go1.10.8
156 | Git commit: 0dd43dd87f
157 | Built: Wed Jul 17 17:38:58 2019
158 | OS/Arch: linux/amd64
159 | Experimental: false
160 |
161 | Server: Docker Engine - Community
162 | Engine:
163 | Version: 18.09.8
164 | API version: 1.39 (minimum version 1.12)
165 | Go version: go1.10.8
166 | Git commit: 0dd43dd87f
167 | Built: Wed Jul 17 17:48:49 2019
168 | OS/Arch: linux/amd64
169 | Experimental: false
170 | ```
171 |
172 | ```console
173 | $ docker run --rm --network some-network \
174 | -e DOCKER_TLS_CERTDIR=/certs \
175 | -v some-docker-certs-client:/certs/client:ro \
176 | docker:latest info
177 | Containers: 0
178 | Running: 0
179 | Paused: 0
180 | Stopped: 0
181 | Images: 0
182 | Server Version: 18.09.8
183 | Storage Driver: overlay2
184 | Backing Filesystem: extfs
185 | Supports d_type: true
186 | Native Overlay Diff: true
187 | Logging Driver: json-file
188 | Cgroup Driver: cgroupfs
189 | Plugins:
190 | Volume: local
191 | Network: bridge host macvlan null overlay
192 | Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
193 | Swarm: inactive
194 | Runtimes: runc
195 | Default Runtime: runc
196 | Init Binary: docker-init
197 | containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
198 | runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
199 | init version: fec3683
200 | Security Options:
201 | apparmor
202 | seccomp
203 | Profile: default
204 | Kernel Version: 4.19.0-5-amd64
205 | Operating System: Alpine Linux v3.10 (containerized)
206 | OSType: linux
207 | Architecture: x86_64
208 | CPUs: 12
209 | Total Memory: 62.79GiB
210 | Name: e174d61a4a12
211 | ID: HJXG:3OT7:MGDL:Y2BL:WCYP:CKSP:CGAM:4BLH:NEI4:IURF:4COF:AH6N
212 | Docker Root Dir: /var/lib/docker
213 | Debug Mode (client): false
214 | Debug Mode (server): false
215 | Registry: https://index.docker.io/v1/
216 | Labels:
217 | Experimental: false
218 | Insecure Registries:
219 | 127.0.0.0/8
220 | Live Restore Enabled: false
221 | Product License: Community Engine
222 |
223 | WARNING: bridge-nf-call-iptables is disabled
224 | WARNING: bridge-nf-call-ip6tables is disabled
225 | ```
226 |
227 | ```console
228 | $ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock docker:latest version
229 | Client: Docker Engine - Community
230 | Version: 18.09.8
231 | API version: 1.39
232 | Go version: go1.10.8
233 | Git commit: 0dd43dd87f
234 | Built: Wed Jul 17 17:38:58 2019
235 | OS/Arch: linux/amd64
236 | Experimental: false
237 |
238 | Server: Docker Engine - Community
239 | Engine:
240 | Version: 18.09.7
241 | API version: 1.39 (minimum version 1.12)
242 | Go version: go1.10.8
243 | Git commit: 2d0083d
244 | Built: Thu Jun 27 17:23:02 2019
245 | OS/Arch: linux/amd64
246 | Experimental: false
247 | ```
248 |
249 | ## Custom daemon flags
250 |
251 | ```console
252 | $ docker run --privileged --name some-docker -d \
253 | --network some-network --network-alias docker \
254 | -e DOCKER_TLS_CERTDIR=/certs \
255 | -v some-docker-certs-ca:/certs/ca \
256 | -v some-docker-certs-client:/certs/client \
257 | docker:dind --storage-driver overlay2
258 | ```
259 |
260 | ## Runtime Settings Considerations
261 |
262 | Inspired by the [official systemd `docker.service` configuration](https://github.com/docker/docker-ce-packaging/blob/57ae892b13de399171fc33f878b70e72855747e6/systemd/docker.service#L30-L45), you may want to consider different values for the following runtime configuration options, especially for production Docker instances:
263 |
264 | ```console
265 | $ docker run --privileged --name some-docker -d \
266 | ... \
267 | --ulimit nofile=-1 \
268 | --ulimit nproc=-1 \
269 | --ulimit core=-1 \
270 | --pids-limit -1 \
271 | --oom-score-adj -500 \
272 | docker:dind
273 | ```
274 |
275 | Some of these will not be supported based on the settings on the host's `dockerd`, such as `--ulimit nofile=-1`, giving errors that look like `error setting rlimit type 7: operation not permitted`, and some may inherit sane values from the host `dockerd` instance or may not apply for your usage of Docker-in-Docker (for example, you likely want to set `--oom-score-adj` to a value that's higher than `dockerd` on the host so that your Docker-in-Docker instance is killed before the host Docker instance is).
276 |
277 | ## Where to Store Data
278 |
279 | Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the `docker` images to familiarize themselves with the options available, including:
280 |
281 | - Let Docker manage the storage of your data [by writing to disk on the host system using its own internal volume management](https://docs.docker.com/storage/volumes/). This is the default and is easy and fairly transparent to the user. The downside is that the files may be hard to locate for tools and applications that run directly on the host system, i.e. outside containers.
282 | - Create a data directory on the host system (outside the container) and [mount this to a directory visible from inside the container](https://docs.docker.com/storage/bind-mounts/). This places the files in a known location on the host system, and makes it easy for tools and applications on the host system to access the files. The downside is that the user needs to make sure that the directory exists, and that e.g. directory permissions and other security mechanisms on the host system are set up correctly.
283 |
284 | The Docker documentation is a good starting point for understanding the different storage options and variations, and there are multiple blogs and forum postings that discuss and give advice in this area. We will simply show the basic procedure here for the latter option above:
285 |
286 | 1. Create a data directory on a suitable volume on your host system, e.g. `/my/own/var-lib-docker`.
287 | 2. Start your `docker` container like this:
288 |
289 | ```console
290 | $ docker run --privileged --name some-docker -v /my/own/var-lib-docker:/var/lib/docker -d docker:dind
291 | ```
292 |
293 | The `-v /my/own/var-lib-docker:/var/lib/docker` part of the command mounts the `/my/own/var-lib-docker` directory from the underlying host system as `/var/lib/docker` inside the container, where Docker by default will write its data files.
294 |
295 | # Image Variants
296 |
297 | The `docker` images come in many flavors, each designed for a specific use case.
298 |
299 | ## `docker:<version>`
300 |
301 | 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.
302 |
303 | ## `docker:<version>-rootless`
304 |
305 | For more information about using the experimental "rootless" image variants, see [docker-library/docker#174](https://github.com/docker-library/docker/pull/174).
306 |
307 | **Note:** just like the regular `dind` images, `--privileged` is required for Docker-in-Docker to function properly ([docker-library/docker#151](https://github.com/docker-library/docker/issues/151#issuecomment-483185972) & [docker-library/docker#281](https://github.com/docker-library/docker/issues/281#issuecomment-744766015)), which is a security issue that needs to be treated appropriately.
308 |
309 | Basic example usage:
310 |
311 | ```console
312 | $ docker run -d --name some-docker --privileged docker:dind-rootless
313 | $ docker logs --tail=3 some-docker # to verify the daemon has finished generating TLS certificates and is listening successfully
314 | time="xxx" level=info msg="Daemon has completed initialization"
315 | time="xxx" level=info msg="API listen on /run/user/1000/docker.sock"
316 | time="xxx" level=info msg="API listen on [::]:2376"
317 | $ docker exec -it some-docker docker-entrypoint.sh sh # using "docker-entrypoint.sh" which auto-sets "DOCKER_HOST" appropriately
318 | / $ docker info --format '{{ json .SecurityOptions }}'
319 | ["name=seccomp,profile=default","name=rootless"]
320 | ```
321 |
322 | To run with a different UID/GID than the one baked into the image, modify `/etc/passwd`, `/etc/group`, and filesystem permissions (especially for the `rootless` user's home directory) as appropriate; for example:
323 |
324 | ```dockerfile
325 | FROM docker:dind-rootless
326 | USER root
327 | RUN set -eux; \
328 | sed -i -e 's/^rootless:x:1000:1000:/rootless:x:1234:5678:/' /etc/passwd; \
329 | sed -i -e 's/^rootless:x:1000:/rootless:x:5678:/' /etc/group; \
330 | chown -R rootless ~rootless
331 | USER rootless
332 | ```
333 |
334 | ## `docker:<version>-windowsservercore`
335 |
336 | Unfortunately, Windows does not support nested containers, so this image variant only contains the client (intended for use against an existing Docker engine, ala `-v //./pipe/docker_engine://./pipe/docker_engine`).
337 |
338 | # License
339 |
340 | View [license information](https://github.com/docker/docker/blob/eb7b2ed6bbe3fbef588116d362ce595d6e35fc43/LICENSE) for the software contained in this image.
341 |
342 | 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).
343 |
344 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `docker/` directory](https://github.com/docker-library/repo-info/tree/master/repos/docker).
345 |
346 | 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.
347 |
```
--------------------------------------------------------------------------------
/bonita/README.md:
--------------------------------------------------------------------------------
```markdown
1 | <!--
2 |
3 | ********************************************************************************
4 |
5 | WARNING:
6 |
7 | DO NOT EDIT "bonita/README.md"
8 |
9 | IT IS AUTO-GENERATED
10 |
11 | (from the other files in "bonita/" combined with a set of templates)
12 |
13 | ********************************************************************************
14 |
15 | -->
16 |
17 | # Quick reference
18 |
19 | - **Maintained by**:
20 | [Bonitasoft Community](https://github.com/bonitasoft/bonita-distrib)
21 |
22 | - **Where to get help**:
23 | [Bonita official documentation](https://documentation.bonitasoft.com), [StackOverflow](https://stackoverflow.com/tags/bonita), [Bonitasoft Community forum](https://community.bonitasoft.com/questions-and-answers)
24 |
25 | # Supported tags and respective `Dockerfile` links
26 |
27 | - [`2022.2-u0`, `2022.2`, `7.15.0`, `7.15`](https://github.com/bonitasoft/bonita-distrib/blob/0fbc47d8fcb6629b943b4c1e00052ca14c3d1e1b/docker/Dockerfile)
28 |
29 | - [`2023.1-u0`, `2023.1`, `8.0.0`, `8.0`](https://github.com/bonitasoft/bonita-distrib/blob/31dcebbf22ebcce11f8e3a9b9444802136c36c03/docker/Dockerfile)
30 |
31 | - [`2023.2-u0`, `2023.2`, `9.0.0`, `9.0`](https://github.com/bonitasoft/bonita-distrib/blob/397824cf4f302c37f3534908728a2b8321a31565/docker/Dockerfile)
32 |
33 | - [`2024.3-u0`, `2024.3`, `10.2.0`, `10.2`, `latest`](https://github.com/bonitasoft/bonita-distrib/blob/634a6e462dbcc7da8ec7ed47adf419b9a24bf744/docker/Dockerfile)
34 |
35 | # Quick reference (cont.)
36 |
37 | - **Where to file issues**:
38 | [Jira](https://bonita.atlassian.net/jira/software/c/projects/BBPMC/issues)
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/bonita/), [`arm64v8`](https://hub.docker.com/r/arm64v8/bonita/), [`ppc64le`](https://hub.docker.com/r/ppc64le/bonita/)
42 |
43 | - **Published image artifact details**:
44 | [repo-info repo's `repos/bonita/` directory](https://github.com/docker-library/repo-info/blob/master/repos/bonita) ([history](https://github.com/docker-library/repo-info/commits/master/repos/bonita))
45 | (image metadata, transfer size, etc)
46 |
47 | - **Image updates**:
48 | [official-images repo's `library/bonita` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fbonita)
49 | [official-images repo's `library/bonita` file](https://github.com/docker-library/official-images/blob/master/library/bonita) ([history](https://github.com/docker-library/official-images/commits/master/library/bonita))
50 |
51 | - **Source of this description**:
52 | [docs repo's `bonita/` directory](https://github.com/docker-library/docs/tree/master/bonita) ([history](https://github.com/docker-library/docs/commits/master/bonita))
53 |
54 | # What is Bonita?
55 |
56 | Bonita is an open-source business process management and workflow suite created in 2001. It was started in France National Institute for Research in Computer Science, and then had incubated several years inside the French computer science company Groupe Bull. Since 2009, the development of Bonita is supported by a company dedicated to this activity: Bonitasoft.
57 |
58 | > [wikipedia.org/wiki/Bonita_BPM](http://en.wikipedia.org/wiki/Bonita_BPM)
59 |
60 | 
61 |
62 | # How to use this image
63 |
64 | ## Quick start
65 |
66 | ```console
67 | $ docker run --name bonita -d -p 8080:8080 bonita
68 | ```
69 |
70 | This will start a container running [Bonita runtime](https://documentation.bonitasoft.com/bonita/latest/tomcat-bundle): a Tomcat bundle with Bonita Engine + Bonita Portal. With no environment variables specified, it's as if you have launched the bundle on your host using startup.{sh|bat} (with security hardening on REST and HTTP APIs, cf Security part). Bonita uses a H2 database here.
71 |
72 | You can access the Bonita Portal on http://localhost:8080/bonita and login using the default credentials: install / install
73 |
74 | ## Link Bonita to a database
75 |
76 | The H2 database allows the Bonita container to work out of the box, but it is not recommended outside a development environment.
77 |
78 | As PostgreSQL is the recommended database for qualification and production environments, follow one of these next sections to configure your Bonita container to run on PostgreSQL database. You can work with either a PostgreSQL Container, or PostgreSQL as an installed service.
79 |
80 | ### PostgreSQL Container
81 |
82 | From Bonita 2022.1 onwards, the Bonita docker image does not include configuration scripts to automatically create databases and users anymore.
83 |
84 | Therefore the PostgreSQL container needs to be configured to work with Bonita before starting the Bonita container. The configuration of a PostgreSQL database to work with Bonita is described in details in the [database configuration page](https://documentation.bonitasoft.com/bonita/latest/runtime/database-configuration#postgres_setup). + Alternatively, Bonita provides a preconfigured [PostgreSQL image](https://hub.docker.com/r/bonitasoft/bonita-postgres) on docker-hub. + You can run the image with the following command:
85 |
86 | ```bash
87 | docker run --name mydbpostgres -h <hostname> -d bonitasoft/bonita-postgres:16.4
88 | ```
89 |
90 | This image is built from the following [GitHub repository](https://github.com/Bonitasoft-Community/bonita-database-docker/tree/main/postgres/16), which can be further adapted/customized to suit your needs.
91 |
92 | ## ... via [`docker compose`](https://github.com/docker/compose)
93 |
94 | Example `compose.yaml` for `bonita`:
95 |
96 | ```yaml
97 | services:
98 | db:
99 | image: bonitasoft/bonita-postgres:16.4
100 | ports:
101 | - 5432:5432
102 | environment:
103 | POSTGRES_PASSWORD: example
104 | restart: always
105 | bonita:
106 | image: bonita:2024.3
107 | hostname: custom-hostname.example.com
108 | ports:
109 | - 8080:8080
110 | environment:
111 | - DB_VENDOR=postgres
112 | - DB_HOST=db
113 | - DB_PORT=5432
114 | - DB_NAME=bonita
115 | - DB_USER=bonita
116 | - DB_PASS=bpm
117 | - BIZ_DB_NAME=business_data
118 | - BIZ_DB_USER=business_data
119 | - BIZ_DB_PASS=bpm
120 | - BONITA_RUNTIME_ADMIN_USERNAME=tech_user
121 | - BONITA_RUNTIME_ADMIN_PASSWORD=secret
122 | - PLATFORM_LOGIN=pfadmin
123 | - PLATFORM_PASSWORD=pfsecret
124 | restart: on-failure:2
125 | depends_on:
126 | db:
127 | condition: service_healthy
128 | ```
129 |
130 | Run `docker compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080` (as appropriate).
131 |
132 | - Replace `<hostname>` with the one used in the licence generation command
133 | - leave double `$$` untouched
134 |
135 | ### PostgreSQL as an installed service
136 |
137 | If you don't want to run your database in a docker container, the following `env.txt` file needs to be configured and provided to the docker run command:
138 |
139 | ```properties
140 | DB_VENDOR=postgres
141 | DB_HOST=172.17.0.2
142 | DB_PORT=5432
143 | DB_NAME=custombonitadb
144 | DB_USER=custombonitauser
145 | DB_PASS=custombonitapass
146 | BIZ_DB_NAME=custombusinessdb
147 | BIZ_DB_USER=custombusinessuser
148 | BIZ_DB_PASS=custombusinesspass
149 | ```
150 |
151 | ```bash
152 | docker run --name=bonita -h <hostname> --env-file=env.txt -d -p 8080:8080 bonita
153 | ```
154 |
155 | ## Start Bonita with custom security credentials
156 |
157 | ```bash
158 | docker run --name=bonita -h <hostname> -e "BONITA_RUNTIME_ADMIN_USERNAME=tech_user" -e "BONITA_RUNTIME_ADMIN_PASSWORD=secret" -e "PLATFORM_LOGIN=pfadmin" -e "PLATFORM_PASSWORD=pfsecret" -d -p 8080:8080 bonita
159 | ```
160 |
161 | Now you can access the Bonita Runtime on localhost:8080/bonita and login using: tech_user / secret
162 |
163 | ## Where data are stored
164 |
165 | Bonita uses tomcat that writes file to a working directory and a temp directory.
166 |
167 | It can be a good practice to mount the following folders into volumes
168 |
169 | - `/opt/bonita/server/temp`
170 | - `/opt/bonita/server/work`
171 |
172 | ## Environment variables
173 |
174 | When you start the bonita image, you can adjust the configuration of the Bonita instance by passing one or more environment variables on the docker run command line.
175 |
176 | ### PLATFORM_LOGIN
177 |
178 | This optional environment variable is used in conjunction with PLATFORM_PASSWORD to define the username for the platform administrator. If it is not specified, the default username `platformAdmin` will be used.
179 |
180 | ### PLATFORM_PASSWORD
181 |
182 | This environment variable is recommended for you to use the Bonita image. It sets the platform administrator password for Bonita. If it is not specified, the default password `platform` will be used.
183 |
184 | ### BONITA_RUNTIME_ADMIN_USERNAME
185 |
186 | This optional environment variable is used in conjunction with BONITA_RUNTIME_ADMIN_PASSWORD to define the username for the tenant administrator. If it is not specified, the default username `install` will be used.
187 |
188 | ### BONITA_RUNTIME_ADMIN_PASSWORD
189 |
190 | This environment variable is recommended for you to use the Bonita image. It sets the tenant administrator password for Bonita. If it is not specified, the default password `install` will be used.
191 |
192 | ### MONITORING_USERNAME
193 |
194 | This optional environment variable is used in conjunction with `MONITORING_PASSWORD` to define the access to endpoints protected with [BASIC Auth access](https://en.wikipedia.org/wiki/Basic_access_authentication): it is used for the JMX remote access. If it is not specified, the default monitoring username `monitoring` will be used.
195 |
196 | ### MONITORING_PASSWORD
197 |
198 | This optional environment variable is used in conjunction with `MONITORING_USERNAME` to define the access to endpoints protected with [BASIC Auth access](https://en.wikipedia.org/wiki/Basic_access_authentication): it is used for the JMX remote access. If it is not specified, the default monitoring password `mon1tor1ng_adm1n` will be used.
199 |
200 | ### HTTP_API
201 |
202 | This optional environment variable is used to enable/disable the Bonita HTTP API. The default value is false, which will deactivate the HTTP API. From Bonita 2022.1, HTTP API is protected with [Basic access authentication](https://en.wikipedia.org/wiki/Basic_access_authentication). See the following 2 parameters to configure Basic access authentication.
203 |
204 | ### HTTP_API_USERNAME
205 |
206 | This optional environment variable is used to configure the HTTP API Basic access authentication username. The default value is `http-api`.
207 |
208 | ### HTTP_API_PASSWORD
209 |
210 | This optional environment variable is used to configure the HTTP API Basic access authentication password. There is no default value, and providing a value is mandatory if `HTTP_API=true`.
211 |
212 | ### JMX_REMOTE_ACCESS
213 |
214 | This optional environment variable is used to enable/disable the access to the [JMX console](https://docs.oracle.com/en/java/javase/11/management/using-jconsole.html) from a remote machine. + Default value is `false`. + The host to connect to is the name / IP address of the bonita server, the port to connect to is 9000. + The credentials to connect are the environment variables [MONITORING_USERNAME](#MONITORING_USERNAME), [MONITORING_PASSWORD](#MONITORING_PASSWORD).
215 |
216 | ### REMOTE_IP_VALVE_ENABLED
217 |
218 | This optional environment variable allows to activate/deactivate [reverse proxy redirection](https://documentation.bonitasoft.com/bonita/latest/runtime/reverse-proxy-configuration). Default value is `false`.
219 |
220 | ### ACCESSLOGS_STDOUT_ENABLED
221 |
222 | This optional environment variable allows to activate/deactivate writing Tomcat access logs to standard output. Default value is `false`.
223 |
224 | ### ACCESSLOGS_FILES_ENABLED
225 |
226 | This optional environment variable allows to activate/deactivate writing Tomcat access logs to a specific file. When activated, will write those logs to `/opt/bonita/logs/` *inside* the docker container. In practice, it is only useful when mounting a volume to the aforementioned directory. Default value is `false`.
227 |
228 | ### ACCESSLOGS_PATH
229 |
230 | If `ACCESSLOGS_FILES_ENABLED=true`, this optional environment variable overrides the default path to the access log files. Default value is `/opt/bonita/logs`.
231 |
232 | ### ACCESSLOGS_PATH_APPEND_HOSTNAME
233 |
234 | If `ACCESSLOGS_FILES_ENABLED=true`, this optional environment variable allows to append a subdirectory with the *hostname* to the full path of the directory to put access log files into. Default value is `false`.
235 |
236 | ### ACCESSLOGS_MAX_DAYS
237 |
238 | If `ACCESSLOGS_FILES_ENABLED=true`, this optional environment variable allows to automatically delete access log files after a certain number of days. Default value is `30`.
239 |
240 | ### HTTP_MAX_THREADS
241 |
242 | This optional environment variable allows to specify the maximum Http thread number Tomcat will use to serve HTTP/1.1 requests. Directly modifies the *maxThreads* parameter in the *server.xml* file of the Tomcat inside the docker container. More information on the usefulness of this parameter can be found [here](https://tomcat.apache.org/tomcat-9.0-doc/config/http.html). Default value is `20`.
243 |
244 | ### JAVA_OPTS
245 |
246 | This optional environment variable is used to customize JAVA_OPTS. The default value is -Xms1024m -Xmx1024m -XX:MaxPermSize=256m. The syntax to use is `-e JAVA_OPTS="-Xms2048m -Xmx2048m -XX:MaxPermSize=1024m"`
247 |
248 | ### DB_VENDOR
249 |
250 | This environment variable is automatically set to postgres or mysql if the Bonita container is linked to a PostgreSQL or MySQL database using --link. The default value is h2. It can be overridden if you don't use the --link capability.
251 |
252 | ### DB_HOST, DB_PORT
253 |
254 | These variables are optional, used in conjunction to configure the bonita image to reach the database instance. There are automatically set if --link is used to run the container.
255 |
256 | ### DB_NAME, DB_USER, DB_PASS
257 |
258 | These variables are used in conjunction to define how Bonita should access its database for internal functioning.
259 |
260 | `DB_NAME` default value is bonitadb.
261 |
262 | `DB_USER` default value is bonitauser.
263 |
264 | `DB_PASS` default value is bonitapass.
265 |
266 | ### BIZ_DB_NAME, BIZ_DB_USER, BIZ_DB_PASS
267 |
268 | These variables are used in conjunction to define how Bonita should access the [Business Data](https://documentation.bonitasoft.com/bonita/latest/data/define-and-deploy-the-bdm) database.
269 |
270 | `BIZ_DB_NAME` default value is businessdb.
271 |
272 | `BIZ_DB_USER` default value is businessuser.
273 |
274 | `BIZ_DB_PASS` default value is businesspass.
275 |
276 | ## Logger configuration
277 |
278 | **Since 2022.1**
279 |
280 | The logger can be configured by mounting a volume on folder `/opt/bonita/conf/logs` containing the configuration files.
281 |
282 | the volume must contain the 2 files [log4j2-loggers.xml](https://raw.githubusercontent.com/bonitasoft/bonita-distrib/10.2.0/tomcat-resources/tomcat-distrib-for-bonita/src/main/resources/tomcat/server/conf/log4j2-loggers.xml) and [log4j2-appenders.xml](https://raw.githubusercontent.com/bonitasoft/bonita-distrib/10.2.0/docker/files/log4j2/log4j2-appenders.xml)
283 |
284 | Any change made to one of this 2 files is automatically hot-reloaded and taken into account immediately.
285 |
286 | ## Security
287 |
288 | This Docker image activates both static and dynamic authorization checks by default on REST API. To be consistent, it also deactivates the HTTP API.
289 |
290 | - REST API authorization
291 |
292 | - [Static authorization checking](https://documentation.bonitasoft.com/bonita/latest/rest-api-authorization#static_authorization)
293 |
294 | - [HTTP API](https://documentation.bonitasoft.com/bonita/latest/rest-api-authorization#_activating_and_deactivating_authorization)
295 |
296 | For specific needs you can override this behavior by setting HTTP_API to true:
297 |
298 | ```console
299 | $ docker run -e HTTP_API=true -e HTTP_API_PASSWORD="My-Cust0m_S3cR3T" --name bonita -d -p 8080:8080 bonita
300 | ```
301 |
302 | ## Update from an earlier version of Bonita
303 |
304 | For updating from a version before 7.10.0, please refer to the [documentation](https://documentation.bonitasoft.com/bonita/latest/version-update/update-with-migration-tool)
305 |
306 | - Stop the container to perform a database backup
307 |
308 | ```console
309 | $ docker stop bonita
310 | ```
311 |
312 | - Retrieve the DB container IP
313 |
314 | ```console
315 | $ docker inspect --format '{{ .NetworkSettings.IPAddress }}' mydbpostgres
316 | 172.17.0.26
317 | ```
318 |
319 | - Dump the database
320 |
321 | ```console
322 | $ export PGPASSWORD=mysecretpassword
323 | $ pg_dump -O -x -h 172.17.0.26 -U postgres bonitadb > /tmp/bonitadb.sql
324 | ```
325 |
326 | Note that businessdb won't be updated by the update tool but you may want to also backup/move it.
327 |
328 | - Load the dump
329 |
330 | ```console
331 | $ export PGPASSWORD=mysecretpassword
332 | $ psql -U postgres -h 172.17.0.26 -d postgres -c "CREATE USER newbonitauser WITH PASSWORD 'newbonitapass';"
333 | $ psql -U postgres -h 172.17.0.26 -d postgres -c "CREATE DATABASE newbonitadb OWNER newbonitauser;"
334 | $ export PGPASSWORD=newbonitapass
335 | $ cat /tmp/bonitadb.sql | psql -U newbonitauser -h 172.17.0.26 newbonitadb
336 | ```
337 |
338 | - Retrieve the last update tool archive from https://www.bonitasoft.com/downloads
339 |
340 | ```console
341 | unzip bonita-update-tool-3.6.0.zip
342 | ```
343 |
344 | - Configure the update tool
345 |
346 | ```console
347 | $ cd bonita-update-tool-3.6.0
348 | ```
349 |
350 | edit the update tool configuration file `Config.properties` to point towards the database.
351 |
352 | ```console
353 | $ vim Config.properties
354 | ```
355 |
356 | For example :
357 |
358 | ```properties
359 | db.vendor=postgres
360 | db.url=jdbc:postgresql://172.17.0.26:5432/newbonitadb
361 | db.driverClass=org.postgresql.Driver
362 | db.user=newbonitauser
363 | db.password=newbonitapass
364 | ```
365 |
366 | - Launch the update tool
367 |
368 | ```console
369 | $ cd bin
370 | $ ./bonita-update-tool
371 | ```
372 |
373 | - Launch the new container pointing towards the copy of the database.
374 |
375 | ```console
376 | $ docker run --name=bonita --link mydbpostgres:postgres -e "DB_NAME=newbonitadb" -e "DB_USER=newbonitauser" -e "DB_PASS=newbonitapass" -d -p 8081:8080 bonita:2024.3-u0
377 | ```
378 |
379 | For more details regarding Bonita update and for version before 7.10.0, see the [documentation](https://documentation.bonitasoft.com/bonita/latest/version-update/migrate-from-an-earlier-version-of-bonita).
380 |
381 | # License
382 |
383 | Bonita image includes two parts :
384 |
385 | - Bonita Engine under [LGPL v2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)
386 |
387 | - Bonita Portal under [GPL v2.0](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
388 |
389 | 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).
390 |
391 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `bonita/` directory](https://github.com/docker-library/repo-info/tree/master/repos/bonita).
392 |
393 | 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.
394 |
```
--------------------------------------------------------------------------------
/perl/README.md:
--------------------------------------------------------------------------------
```markdown
1 | <!--
2 |
3 | ********************************************************************************
4 |
5 | WARNING:
6 |
7 | DO NOT EDIT "perl/README.md"
8 |
9 | IT IS AUTO-GENERATED
10 |
11 | (from the other files in "perl/" combined with a set of templates)
12 |
13 | ********************************************************************************
14 |
15 | -->
16 |
17 | # Quick reference
18 |
19 | - **Maintained by**:
20 | [the Perl Community](https://github.com/Perl/docker-perl)
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 | - [`5.40.2`, `5.40`, `5`, `latest`, `stable`, `5.40.2-bookworm`, `5.40-bookworm`, `5-bookworm`, `bookworm`, `stable-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.040.002-main-bookworm/Dockerfile)
28 |
29 | - [`5.40.2-bullseye`, `5.40-bullseye`, `5-bullseye`, `bullseye`, `stable-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.040.002-main-bullseye/Dockerfile)
30 |
31 | - [`5.40.2-slim`, `5.40-slim`, `5-slim`, `slim`, `stable-slim`, `5.40.2-slim-bookworm`, `5.40-slim-bookworm`, `5-slim-bookworm`, `slim-bookworm`, `stable-slim-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.040.002-slim-bookworm/Dockerfile)
32 |
33 | - [`5.40.2-slim-bullseye`, `5.40-slim-bullseye`, `5-slim-bullseye`, `slim-bullseye`, `stable-slim-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.040.002-slim-bullseye/Dockerfile)
34 |
35 | - [`5.40.2-threaded`, `5.40-threaded`, `5-threaded`, `threaded`, `stable-threaded`, `5.40.2-threaded-bookworm`, `5.40-threaded-bookworm`, `5-threaded-bookworm`, `threaded-bookworm`, `stable-threaded-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.040.002-main,threaded-bookworm/Dockerfile)
36 |
37 | - [`5.40.2-threaded-bullseye`, `5.40-threaded-bullseye`, `5-threaded-bullseye`, `threaded-bullseye`, `stable-threaded-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.040.002-main,threaded-bullseye/Dockerfile)
38 |
39 | - [`5.40.2-slim-threaded`, `5.40-slim-threaded`, `5-slim-threaded`, `slim-threaded`, `stable-slim-threaded`, `5.40.2-slim-threaded-bookworm`, `5.40-slim-threaded-bookworm`, `5-slim-threaded-bookworm`, `slim-threaded-bookworm`, `stable-slim-threaded-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.040.002-slim,threaded-bookworm/Dockerfile)
40 |
41 | - [`5.40.2-slim-threaded-bullseye`, `5.40-slim-threaded-bullseye`, `5-slim-threaded-bullseye`, `slim-threaded-bullseye`, `stable-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.040.002-slim,threaded-bullseye/Dockerfile)
42 |
43 | - [`5.38.4`, `5.38`, `5.38.4-bookworm`, `5.38-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.038.004-main-bookworm/Dockerfile)
44 |
45 | - [`5.38.4-bullseye`, `5.38-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.038.004-main-bullseye/Dockerfile)
46 |
47 | - [`5.38.4-slim`, `5.38-slim`, `5.38.4-slim-bookworm`, `5.38-slim-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.038.004-slim-bookworm/Dockerfile)
48 |
49 | - [`5.38.4-slim-bullseye`, `5.38-slim-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.038.004-slim-bullseye/Dockerfile)
50 |
51 | - [`5.38.4-threaded`, `5.38-threaded`, `5.38.4-threaded-bookworm`, `5.38-threaded-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.038.004-main,threaded-bookworm/Dockerfile)
52 |
53 | - [`5.38.4-threaded-bullseye`, `5.38-threaded-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.038.004-main,threaded-bullseye/Dockerfile)
54 |
55 | - [`5.38.4-slim-threaded`, `5.38-slim-threaded`, `5.38.4-slim-threaded-bookworm`, `5.38-slim-threaded-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.038.004-slim,threaded-bookworm/Dockerfile)
56 |
57 | - [`5.38.4-slim-threaded-bullseye`, `5.38-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.038.004-slim,threaded-bullseye/Dockerfile)
58 |
59 | - [`5.36.3`, `5.36`, `5.36.3-bookworm`, `5.36-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.036.003-main-bookworm/Dockerfile)
60 |
61 | - [`5.36.3-bullseye`, `5.36-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.036.003-main-bullseye/Dockerfile)
62 |
63 | - [`5.36.3-slim`, `5.36-slim`, `5.36.3-slim-bookworm`, `5.36-slim-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.036.003-slim-bookworm/Dockerfile)
64 |
65 | - [`5.36.3-slim-bullseye`, `5.36-slim-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.036.003-slim-bullseye/Dockerfile)
66 |
67 | - [`5.36.3-threaded`, `5.36-threaded`, `5.36.3-threaded-bookworm`, `5.36-threaded-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.036.003-main,threaded-bookworm/Dockerfile)
68 |
69 | - [`5.36.3-threaded-bullseye`, `5.36-threaded-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.036.003-main,threaded-bullseye/Dockerfile)
70 |
71 | - [`5.36.3-slim-threaded`, `5.36-slim-threaded`, `5.36.3-slim-threaded-bookworm`, `5.36-slim-threaded-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.036.003-slim,threaded-bookworm/Dockerfile)
72 |
73 | - [`5.36.3-slim-threaded-bullseye`, `5.36-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.036.003-slim,threaded-bullseye/Dockerfile)
74 |
75 | - [`5.41.12`, `5.41`, `devel`, `5.41.12-bookworm`, `5.41-bookworm`, `devel-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.041.012-main-bookworm/Dockerfile)
76 |
77 | - [`5.41.12-bullseye`, `5.41-bullseye`, `devel-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.041.012-main-bullseye/Dockerfile)
78 |
79 | - [`5.41.12-slim`, `5.41-slim`, `devel-slim`, `5.41.12-slim-bookworm`, `5.41-slim-bookworm`, `devel-slim-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.041.012-slim-bookworm/Dockerfile)
80 |
81 | - [`5.41.12-slim-bullseye`, `5.41-slim-bullseye`, `devel-slim-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.041.012-slim-bullseye/Dockerfile)
82 |
83 | - [`5.41.12-threaded`, `5.41-threaded`, `devel-threaded`, `5.41.12-threaded-bookworm`, `5.41-threaded-bookworm`, `devel-threaded-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.041.012-main,threaded-bookworm/Dockerfile)
84 |
85 | - [`5.41.12-threaded-bullseye`, `5.41-threaded-bullseye`, `devel-threaded-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.041.012-main,threaded-bullseye/Dockerfile)
86 |
87 | - [`5.41.12-slim-threaded`, `5.41-slim-threaded`, `devel-slim-threaded`, `5.41.12-slim-threaded-bookworm`, `5.41-slim-threaded-bookworm`, `devel-slim-threaded-bookworm`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.041.012-slim,threaded-bookworm/Dockerfile)
88 |
89 | - [`5.41.12-slim-threaded-bullseye`, `5.41-slim-threaded-bullseye`, `devel-slim-threaded-bullseye`](https://github.com/perl/docker-perl/blob/08148bb42b17f1c418f8f16bd5f20c894538cf64/5.041.012-slim,threaded-bullseye/Dockerfile)
90 |
91 | # Quick reference (cont.)
92 |
93 | - **Where to file issues**:
94 | [https://github.com/Perl/docker-perl/issues](https://github.com/Perl/docker-perl/issues?q=)
95 |
96 | - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))
97 | [`amd64`](https://hub.docker.com/r/amd64/perl/), [`arm32v5`](https://hub.docker.com/r/arm32v5/perl/), [`arm32v7`](https://hub.docker.com/r/arm32v7/perl/), [`arm64v8`](https://hub.docker.com/r/arm64v8/perl/), [`i386`](https://hub.docker.com/r/i386/perl/), [`mips64le`](https://hub.docker.com/r/mips64le/perl/), [`ppc64le`](https://hub.docker.com/r/ppc64le/perl/), [`s390x`](https://hub.docker.com/r/s390x/perl/)
98 |
99 | - **Published image artifact details**:
100 | [repo-info repo's `repos/perl/` directory](https://github.com/docker-library/repo-info/blob/master/repos/perl) ([history](https://github.com/docker-library/repo-info/commits/master/repos/perl))
101 | (image metadata, transfer size, etc)
102 |
103 | - **Image updates**:
104 | [official-images repo's `library/perl` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fperl)
105 | [official-images repo's `library/perl` file](https://github.com/docker-library/official-images/blob/master/library/perl) ([history](https://github.com/docker-library/official-images/commits/master/library/perl))
106 |
107 | - **Source of this description**:
108 | [docs repo's `perl/` directory](https://github.com/docker-library/docs/tree/master/perl) ([history](https://github.com/docker-library/docs/commits/master/perl))
109 |
110 | # What is Perl?
111 |
112 | Perl is a high-level, general-purpose, interpreted, dynamic programming language. The Perl language borrows features from other programming languages, including C, shell scripting (sh), AWK, and sed.
113 |
114 | > [wikipedia.org/wiki/Perl](https://en.wikipedia.org/wiki/Perl)
115 |
116 | 
117 |
118 | # How to use this image
119 |
120 | ## Create a `Dockerfile` in your Perl app project
121 |
122 | ```dockerfile
123 | FROM perl:5.34
124 | COPY . /usr/src/myapp
125 | WORKDIR /usr/src/myapp
126 | CMD [ "perl", "./your-daemon-or-script.pl" ]
127 | ```
128 |
129 | Then, build and run the Docker image:
130 |
131 | ```console
132 | $ docker build -t my-perl-app .
133 | $ docker run -it --rm --name my-running-app my-perl-app
134 | ```
135 |
136 | ## Run a single Perl script
137 |
138 | For many simple, single file projects, you may find it inconvenient to write a complete `Dockerfile`. In such cases, you can run a Perl script by using the Perl Docker image directly:
139 |
140 | ```console
141 | $ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp perl:5.34 perl your-daemon-or-script.pl
142 | ```
143 |
144 | ## Coexisting with Debian's `/usr/bin/perl`
145 |
146 | The *perl* binary built for this image is installed in `/usr/local/bin/perl`, along with other standard tools in the Perl distribution such as `prove` and `perldoc`, as well as [`cpanm`](https://metacpan.org/pod/App::cpanminus) for installing [CPAN](https://www.cpan.org) modules. Containers running this image will also have their `PATH` enviroment set like `/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin` to ensure that this *perl* binary will be found *first* in normal usage.
147 |
148 | As this official image of Docker is built using the [buildpack-deps](https://hub.docker.com/_/buildpack-deps) image (or [debian:slim](https://hub.docker.com/_/debian) for `:slim` variants,) this image also contains a `/usr/bin/perl` as supplied by the [Debian](https://www.debian.org) project. This is needed for the underlying [dpkg](https://en.wikipedia.org/wiki/Dpkg)/[apt](https://en.wikipedia.org/wiki/APT_(software)) package management tools to work correctly, as docker-perl cannot be used here due to different configuration (such as `@INC` and installation paths, as well as other differences like whether `-Dusethreads` is included or not.)
149 |
150 | See also [Perl/docker-perl#26](https://github.com/Perl/docker-perl/issues/26) for an extended discussion.
151 |
152 | ## Signal handling behavior notice
153 |
154 | As Perl will run as PID 1 by default in containers (unless an [ENTRYPOINT](https://docs.docker.com/reference/dockerfile/#entrypoint) is set,) special care needs to be considered when expecting to send signals (particularly SIGINT or SIGTERM) to it. For example, running
155 |
156 | ```console
157 | $ docker run -it --name sleeping_beauty --rm perl:5.34 perl -E 'sleep 300'
158 | ```
159 |
160 | and doing on another terminal,
161 |
162 | ```console
163 | $ docker exec sleeping_beauty kill 1
164 | ```
165 |
166 | will *not* stop the perl running on the `sleeping_beauty` container (it will keep running until the `sleep 300` finishes.) To do so, one must set a signal handler like this:
167 |
168 | ```console
169 | $ docker run -it --name quick_nap --rm perl:5.34 perl -E '$SIG{TERM} = sub { $sig++; say "recv TERM" }; sleep 300; say "waking up" if $sig'
170 | ```
171 |
172 | so doing `docker exec quick_nap kill 1` (or the simpler `docker stop quick_nap`) will immediately stop the container, and print `recv TERM` in the other terminal. Note that the signal handler does not stop the perl process itself unless it calls a `die` or `exit`; in this case, perl will continue and print `waking up` *after* it receives the signal.
173 |
174 | If your Perl program is expected to handle signals and fork child processes, it is encouraged to use an init-like program for ENTRYPOINT, such as [dumb-init](https://github.com/Yelp/dumb-init) or [tini](https://github.com/krallin/tini) (the latter is available since Docker 1.13 via the `docker run --init` flag.)
175 |
176 | See also [Signals in perlipc](https://perldoc.pl/perlipc#Signals) as well as [Perl/docker-perl#44](https://github.com/Perl/docker-perl/issues/44).
177 |
178 | ### `COPY` and `WORKDIR` behavior in Debian Bookworm based images (Perl >= 5.38)
179 |
180 | As our Perl images are based on the standard `buildpack-deps` and `debian` images, these inherit the new [merged-usr root filesystem layout](https://wiki.debian.org/UsrMerge) introduced in Debian 12 (Bookworm) which may affect certain build contexts that `COPY` their own `bin`, `sbin`, or `lib` directories into a `WORKDIR /`. Users are encouraged to set `WORKDIR` explicitly to a path other than `/` as much as possible, such as the `/usr/src/app` shown here in the examples, though as of current release our images now default to `WORKDIR /usr/src/app`.
181 |
182 | See also [Perl/docker-perl#140](https://github.com/Perl/docker-perl/issues/140) for further information.
183 |
184 | ## Example: Creating a reusable Carton image for Perl projects
185 |
186 | Suppose you have a project that uses [Carton](https://metacpan.org/pod/Carton) to manage Perl dependencies. You can create a `perl:carton` image that makes use of the [ONBUILD](https://docs.docker.com/reference/dockerfile/#onbuild) instruction in its `Dockerfile`, like this:
187 |
188 | ```dockerfile
189 | FROM perl:5.34
190 |
191 | RUN cpanm Carton \
192 | && mkdir -p /usr/src/app
193 | WORKDIR /usr/src/app
194 |
195 | ONBUILD COPY cpanfile* /usr/src/app
196 | ONBUILD RUN carton install
197 |
198 | ONBUILD COPY . /usr/src/app
199 | ```
200 |
201 | Then, in your Carton project, you can now reduce your project's `Dockerfile` into a single line of `FROM perl:carton`, which may be enough to build a stand-alone image.
202 |
203 | Having a single `perl:carton` base image is useful especially if you have multiple Carton-based projects in development, to avoid "boilerplate" coding of installing Carton and/or copying the project source files into the derived image. Keep in mind, though, about certain things to consider when using the Perl image in this way:
204 |
205 | - This kind of base image will hide the useful bits (such as the`COPY`/`RUN` above) in the image, separating it from more specific Dockerfiles using the base image. This might lead to confusion when creating further derived images, so be aware of how [ONBUILD triggers](https://docs.docker.com/reference/dockerfile/#onbuild) work and plan appropriately.
206 | - There is the cost of maintaining an extra base image build, so if you're working on a single Carton project and/or plan to publish it, then it may be more preferable to derive directly from a versioned `perl` image instead.
207 |
208 | # Image Variants
209 |
210 | The `perl` images come in many flavors, each designed for a specific use case.
211 |
212 | ## `perl:<version>`
213 |
214 | 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.
215 |
216 | 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.
217 |
218 | 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.
219 |
220 | ## `perl:<version>-slim`
221 |
222 | This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run `perl`. Unless you are working in an environment where *only* the `perl` image will be deployed and you have space constraints, we highly recommend using the default image of this repository.
223 |
224 | # License
225 |
226 | View [license information](http://dev.perl.org/licenses/) for the software contained in this image.
227 |
228 | 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).
229 |
230 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `perl/` directory](https://github.com/docker-library/repo-info/tree/master/repos/perl).
231 |
232 | 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.
233 |
```
--------------------------------------------------------------------------------
/pypy/README.md:
--------------------------------------------------------------------------------
```markdown
1 | <!--
2 |
3 | ********************************************************************************
4 |
5 | WARNING:
6 |
7 | DO NOT EDIT "pypy/README.md"
8 |
9 | IT IS AUTO-GENERATED
10 |
11 | (from the other files in "pypy/" 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/pypy)
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 | (See ["What's the difference between 'Shared' and 'Simple' tags?" in the FAQ](https://github.com/docker-library/faq#whats-the-difference-between-shared-and-simple-tags).)
28 |
29 | ## Simple Tags
30 |
31 | - [`3.11-7.3.19-bookworm`, `3.11-7.3-bookworm`, `3.11-7-bookworm`, `3.11-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/bookworm/Dockerfile)
32 |
33 | - [`3.11-7.3.19-slim`, `3.11-7.3-slim`, `3.11-7-slim`, `3.11-slim`, `3.11-7.3.19-slim-bookworm`, `3.11-7.3-slim-bookworm`, `3.11-7-slim-bookworm`, `3.11-slim-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/slim-bookworm/Dockerfile)
34 |
35 | - [`3.11-7.3.19-windowsservercore-ltsc2025`, `3.11-7.3-windowsservercore-ltsc2025`, `3.11-7-windowsservercore-ltsc2025`, `3.11-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2025/Dockerfile)
36 |
37 | - [`3.11-7.3.19-windowsservercore-ltsc2022`, `3.11-7.3-windowsservercore-ltsc2022`, `3.11-7-windowsservercore-ltsc2022`, `3.11-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2022/Dockerfile)
38 |
39 | - [`3.11-7.3.19-windowsservercore-1809`, `3.11-7.3-windowsservercore-1809`, `3.11-7-windowsservercore-1809`, `3.11-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-1809/Dockerfile)
40 |
41 | - [`3.10-7.3.19-bookworm`, `3.10-7.3-bookworm`, `3.10-7-bookworm`, `3.10-bookworm`, `3-7.3.19-bookworm`, `3-7.3-bookworm`, `3-7-bookworm`, `3-bookworm`, `bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/bookworm/Dockerfile)
42 |
43 | - [`3.10-7.3.19-slim`, `3.10-7.3-slim`, `3.10-7-slim`, `3.10-slim`, `3-7.3.19-slim`, `3-7.3-slim`, `3-7-slim`, `3-slim`, `slim`, `3.10-7.3.19-slim-bookworm`, `3.10-7.3-slim-bookworm`, `3.10-7-slim-bookworm`, `3.10-slim-bookworm`, `3-7.3.19-slim-bookworm`, `3-7.3-slim-bookworm`, `3-7-slim-bookworm`, `3-slim-bookworm`, `slim-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/slim-bookworm/Dockerfile)
44 |
45 | - [`3.10-7.3.19-bullseye`, `3.10-7.3-bullseye`, `3.10-7-bullseye`, `3.10-bullseye`, `3-7.3.19-bullseye`, `3-7.3-bullseye`, `3-7-bullseye`, `3-bullseye`, `bullseye`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/bullseye/Dockerfile)
46 |
47 | - [`3.10-7.3.19-slim-bullseye`, `3.10-7.3-slim-bullseye`, `3.10-7-slim-bullseye`, `3.10-slim-bullseye`, `3-7.3.19-slim-bullseye`, `3-7.3-slim-bullseye`, `3-7-slim-bullseye`, `3-slim-bullseye`, `slim-bullseye`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/slim-bullseye/Dockerfile)
48 |
49 | - [`3.10-7.3.19-windowsservercore-ltsc2025`, `3.10-7.3-windowsservercore-ltsc2025`, `3.10-7-windowsservercore-ltsc2025`, `3.10-windowsservercore-ltsc2025`, `3-7.3.19-windowsservercore-ltsc2025`, `3-7.3-windowsservercore-ltsc2025`, `3-7-windowsservercore-ltsc2025`, `3-windowsservercore-ltsc2025`, `windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2025/Dockerfile)
50 |
51 | - [`3.10-7.3.19-windowsservercore-ltsc2022`, `3.10-7.3-windowsservercore-ltsc2022`, `3.10-7-windowsservercore-ltsc2022`, `3.10-windowsservercore-ltsc2022`, `3-7.3.19-windowsservercore-ltsc2022`, `3-7.3-windowsservercore-ltsc2022`, `3-7-windowsservercore-ltsc2022`, `3-windowsservercore-ltsc2022`, `windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2022/Dockerfile)
52 |
53 | - [`3.10-7.3.19-windowsservercore-1809`, `3.10-7.3-windowsservercore-1809`, `3.10-7-windowsservercore-1809`, `3.10-windowsservercore-1809`, `3-7.3.19-windowsservercore-1809`, `3-7.3-windowsservercore-1809`, `3-7-windowsservercore-1809`, `3-windowsservercore-1809`, `windowsservercore-1809`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-1809/Dockerfile)
54 |
55 | - [`2.7-7.3.19-bookworm`, `2.7-7.3-bookworm`, `2.7-7-bookworm`, `2.7-bookworm`, `2-7.3.19-bookworm`, `2-7.3-bookworm`, `2-7-bookworm`, `2-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/bookworm/Dockerfile)
56 |
57 | - [`2.7-7.3.19-slim`, `2.7-7.3-slim`, `2.7-7-slim`, `2.7-slim`, `2-7.3.19-slim`, `2-7.3-slim`, `2-7-slim`, `2-slim`, `2.7-7.3.19-slim-bookworm`, `2.7-7.3-slim-bookworm`, `2.7-7-slim-bookworm`, `2.7-slim-bookworm`, `2-7.3.19-slim-bookworm`, `2-7.3-slim-bookworm`, `2-7-slim-bookworm`, `2-slim-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/slim-bookworm/Dockerfile)
58 |
59 | - [`2.7-7.3.19-bullseye`, `2.7-7.3-bullseye`, `2.7-7-bullseye`, `2.7-bullseye`, `2-7.3.19-bullseye`, `2-7.3-bullseye`, `2-7-bullseye`, `2-bullseye`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/bullseye/Dockerfile)
60 |
61 | - [`2.7-7.3.19-slim-bullseye`, `2.7-7.3-slim-bullseye`, `2.7-7-slim-bullseye`, `2.7-slim-bullseye`, `2-7.3.19-slim-bullseye`, `2-7.3-slim-bullseye`, `2-7-slim-bullseye`, `2-slim-bullseye`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/slim-bullseye/Dockerfile)
62 |
63 | - [`2.7-7.3.19-windowsservercore-ltsc2025`, `2.7-7.3-windowsservercore-ltsc2025`, `2.7-7-windowsservercore-ltsc2025`, `2.7-windowsservercore-ltsc2025`, `2-7.3.19-windowsservercore-ltsc2025`, `2-7.3-windowsservercore-ltsc2025`, `2-7-windowsservercore-ltsc2025`, `2-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2025/Dockerfile)
64 |
65 | - [`2.7-7.3.19-windowsservercore-ltsc2022`, `2.7-7.3-windowsservercore-ltsc2022`, `2.7-7-windowsservercore-ltsc2022`, `2.7-windowsservercore-ltsc2022`, `2-7.3.19-windowsservercore-ltsc2022`, `2-7.3-windowsservercore-ltsc2022`, `2-7-windowsservercore-ltsc2022`, `2-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2022/Dockerfile)
66 |
67 | - [`2.7-7.3.19-windowsservercore-1809`, `2.7-7.3-windowsservercore-1809`, `2.7-7-windowsservercore-1809`, `2.7-windowsservercore-1809`, `2-7.3.19-windowsservercore-1809`, `2-7.3-windowsservercore-1809`, `2-7-windowsservercore-1809`, `2-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-1809/Dockerfile)
68 |
69 | ## Shared Tags
70 |
71 | - `3.11-7.3.19`, `3.11-7.3`, `3.11-7`, `3.11`:
72 |
73 | - [`3.11-7.3.19-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/bookworm/Dockerfile)
74 | - [`3.11-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2025/Dockerfile)
75 | - [`3.11-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2022/Dockerfile)
76 | - [`3.11-7.3.19-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-1809/Dockerfile)
77 |
78 | - `3.11-7.3.19-windowsservercore`, `3.11-7.3-windowsservercore`, `3.11-7-windowsservercore`, `3.11-windowsservercore`:
79 |
80 | - [`3.11-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2025/Dockerfile)
81 | - [`3.11-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-ltsc2022/Dockerfile)
82 | - [`3.11-7.3.19-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.11/windows/windowsservercore-1809/Dockerfile)
83 |
84 | - `3.10-7.3.19`, `3.10-7.3`, `3.10-7`, `3.10`, `3-7.3.19`, `3-7.3`, `3-7`, `3`, `latest`:
85 |
86 | - [`3.10-7.3.19-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/bookworm/Dockerfile)
87 | - [`3.10-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2025/Dockerfile)
88 | - [`3.10-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2022/Dockerfile)
89 | - [`3.10-7.3.19-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-1809/Dockerfile)
90 |
91 | - `3.10-7.3.19-windowsservercore`, `3.10-7.3-windowsservercore`, `3.10-7-windowsservercore`, `3.10-windowsservercore`, `3-7.3.19-windowsservercore`, `3-7.3-windowsservercore`, `3-7-windowsservercore`, `3-windowsservercore`, `windowsservercore`:
92 |
93 | - [`3.10-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2025/Dockerfile)
94 | - [`3.10-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-ltsc2022/Dockerfile)
95 | - [`3.10-7.3.19-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/3.10/windows/windowsservercore-1809/Dockerfile)
96 |
97 | - `2.7-7.3.19`, `2.7-7.3`, `2.7-7`, `2.7`, `2-7.3.19`, `2-7.3`, `2-7`, `2`:
98 |
99 | - [`2.7-7.3.19-bookworm`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/bookworm/Dockerfile)
100 | - [`2.7-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2025/Dockerfile)
101 | - [`2.7-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2022/Dockerfile)
102 | - [`2.7-7.3.19-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-1809/Dockerfile)
103 |
104 | - `2.7-7.3.19-windowsservercore`, `2.7-7.3-windowsservercore`, `2.7-7-windowsservercore`, `2.7-windowsservercore`, `2-7.3.19-windowsservercore`, `2-7.3-windowsservercore`, `2-7-windowsservercore`, `2-windowsservercore`:
105 |
106 | - [`2.7-7.3.19-windowsservercore-ltsc2025`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2025/Dockerfile)
107 | - [`2.7-7.3.19-windowsservercore-ltsc2022`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-ltsc2022/Dockerfile)
108 | - [`2.7-7.3.19-windowsservercore-1809`](https://github.com/docker-library/pypy/blob/36a974d67789b4535820e4673345c79740c1a4e2/2.7/windows/windowsservercore-1809/Dockerfile)
109 |
110 | # Quick reference (cont.)
111 |
112 | - **Where to file issues**:
113 | [https://github.com/docker-library/pypy/issues](https://github.com/docker-library/pypy/issues?q=)
114 |
115 | - **Supported architectures**: ([more info](https://github.com/docker-library/official-images#architectures-other-than-amd64))
116 | [`amd64`](https://hub.docker.com/r/amd64/pypy/), [`arm64v8`](https://hub.docker.com/r/arm64v8/pypy/), [`i386`](https://hub.docker.com/r/i386/pypy/), [`windows-amd64`](https://hub.docker.com/r/winamd64/pypy/)
117 |
118 | - **Published image artifact details**:
119 | [repo-info repo's `repos/pypy/` directory](https://github.com/docker-library/repo-info/blob/master/repos/pypy) ([history](https://github.com/docker-library/repo-info/commits/master/repos/pypy))
120 | (image metadata, transfer size, etc)
121 |
122 | - **Image updates**:
123 | [official-images repo's `library/pypy` label](https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fpypy)
124 | [official-images repo's `library/pypy` file](https://github.com/docker-library/official-images/blob/master/library/pypy) ([history](https://github.com/docker-library/official-images/commits/master/library/pypy))
125 |
126 | - **Source of this description**:
127 | [docs repo's `pypy/` directory](https://github.com/docker-library/docs/tree/master/pypy) ([history](https://github.com/docker-library/docs/commits/master/pypy))
128 |
129 | # What is PyPy?
130 |
131 | PyPy is a Python interpreter and just-in-time compiler. PyPy focuses on speed, efficiency and compatibility with the original CPython interpreter.
132 |
133 | PyPy started out as a Python interpreter written in the Python language itself. Current PyPy versions are translated from RPython to C code and compiled. The PyPy JIT (short for "Just In Time") compiler is capable of turning Python code into machine code at run time.
134 |
135 | > [wikipedia.org/wiki/PyPy](https://en.wikipedia.org/wiki/PyPy)
136 |
137 | 
138 |
139 | # How to use this image
140 |
141 | ## Create a `Dockerfile` in your Python app project
142 |
143 | ```dockerfile
144 | FROM pypy:3
145 |
146 | WORKDIR /usr/src/app
147 |
148 | COPY requirements.txt ./
149 | RUN pip install --no-cache-dir -r requirements.txt
150 |
151 | COPY . .
152 |
153 | CMD [ "pypy3", "./your-daemon-or-script.py" ]
154 | ```
155 |
156 | or (if you need to use Python 2):
157 |
158 | ```dockerfile
159 | FROM pypy:2
160 |
161 | WORKDIR /usr/src/app
162 |
163 | COPY requirements.txt ./
164 | RUN pip install --no-cache-dir -r requirements.txt
165 |
166 | COPY . .
167 |
168 | CMD [ "pypy", "./your-daemon-or-script.py" ]
169 | ```
170 |
171 | You can then build and run the Docker image:
172 |
173 | ```console
174 | $ docker build -t my-python-app .
175 | $ docker run -it --rm --name my-running-app my-python-app
176 | ```
177 |
178 | ## Run a single Python script
179 |
180 | For many simple, single file projects, you may find it inconvenient to write a complete `Dockerfile`. In such cases, you can run a Python script by using the Python Docker image directly:
181 |
182 | ```console
183 | $ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp pypy:3 pypy3 your-daemon-or-script.py
184 | ```
185 |
186 | or (again, if you need to use Python 2):
187 |
188 | ```console
189 | $ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp pypy:2 pypy your-daemon-or-script.py
190 | ```
191 |
192 | # Image Variants
193 |
194 | The `pypy` images come in many flavors, each designed for a specific use case.
195 |
196 | ## `pypy:<version>`
197 |
198 | 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.
199 |
200 | 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.
201 |
202 | 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.
203 |
204 | ## `pypy:<version>-slim`
205 |
206 | This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run `pypy`. Unless you are working in an environment where *only* the `pypy` image will be deployed and you have space constraints, we highly recommend using the default image of this repository.
207 |
208 | ## `pypy:<version>-windowsservercore`
209 |
210 | 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.
211 |
212 | For information about how to get Docker running on Windows, please see the relevant "Quick Start" guide provided by Microsoft:
213 |
214 | - [Windows Server Quick Start](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_server)
215 | - [Windows 10 Quick Start](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_10)
216 |
217 | # License
218 |
219 | View [license information](https://bitbucket.org/pypy/pypy/src/c3ff0dd6252b6ba0d230f3624dbb4aab8973a1d0/LICENSE?at=default) for software contained in this image.
220 |
221 | 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).
222 |
223 | Some additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `pypy/` directory](https://github.com/docker-library/repo-info/tree/master/repos/pypy).
224 |
225 | 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.
226 |
```